From 59ef6eff12afc885c54cd379955c8d5ad434cb44 Mon Sep 17 00:00:00 2001 From: Lain Iwakura Date: Sun, 13 Jul 2025 01:10:45 +0300 Subject: [PATCH] upd --- files/cursping.zip.tar.gz | Bin 0 -> 2491 bytes main.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 files/cursping.zip.tar.gz diff --git a/files/cursping.zip.tar.gz b/files/cursping.zip.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b099f4d51f0bda9d04ba5fcc21220ccc9b89444 GIT binary patch literal 2491 zcmV;s2}JfEiwFQ7+;V6D1MOIMR8v_R4I00=l7LOALX@V|}#W^N74&9MkH9>C)8 zcsv1*LjY(T7J~yJfN$f@mk99ZdU6D=u=ja#S-xM_6R7Rk^E-Ctwu1QQ_`d?M5(Fd) z0$F=f5w;EpXT)z1UIQ%?2u2`&0uior{yme#?c42tn+h2x1R}LSMP&ZEB9+BNda~L3 zXh=4P6-e{-^rg~3BBG!a!yQLQ-|as6Cv0*FUjxN6*qr9+MdP5pT^{(u_(uZ^;-3KE zF(5?npX0Fs7CBp91^>cpuZ7=!(pL#J%p8oG0}dTxrGx6 z8SKgBa*&IKs}a%8g1Fa&>%5QVi*siCKymsA2LZ{-<@ZRR#W?i8eGY$BeEaJEhw+aG zaF~VlAB{#Y)&KtlC}c75x!^OA9CQ8rjx=cQ?Vx$-3SSV^ye3a#%(cuxFHZP;gd)E{ zlTPzR(phXzs*fj~hG2R!e4$Vjiq0|++@NthxirN0>^&Gd3nA2|aS*{?Y$O#bv=0|p zk_7FAjJfVQ@M(6ZV8vL>J`2fYd0DsB!(stxP~FYEanS(DLmp@3-Kbji2OlT-x=-E@ zb1%IoMSaT;iBPGOidHsVsh}R+lIKH(*AUz_cfwqfLt)h_sPOOL^rWb+Hvi?<$-do>^&bvYs9Lj@HtrADUYR4k3*prAR)+BP*j@um@kQN=ScII6=t(w+7 zE=230;*Wip2F|%{x5VSSN^+;IiyGVsLH6^}5q3T`y z5IlF|1+7+9grt)qS$xRV!-XgdwY%b|?k(F(h}1aScmU&}GDSQzv{lQvUQ%;e<)w@C zt!>&czKc8~tqlC`+^e5T`1<3jmdeZP!VAwXAJl+lKOr4kr|C`y_e$>pCSvNrSxrP%Qo-Z#b&j=@-Y!GvCgb6! ztf7g7#2c=u=Eu@dE)zkwNjI{GIF9Ot6WXm#LpU9-W~WMS*nc0O%A>SN1~t2Gcg*$yN@ZKM2WDn3eNC`k{FPCC|b12AXY6g?cC zmB|mU;)!g!aMASnuG|XyL1P0F}8s-LAqpql}7^Dv_`wvN=KE&7|$%xW@ z%~HJDTkbT^mb)o!7dySQ1JHHN4RlQb}p z-5nl&QwGiw_uHxc_+)8htyLE6*l7?&&9Ccm`m@H6J14yoy&`JdK2E-U#bifJjs#)# z*4v?0zK69Ny~n@RM{6!`tO&lHpECH~*=N(r5stJ3!+fAUbk~5+Kse=KfAe0SI7nrS zoNhcs;&pgDtNxAINk?$Dne&RrfxHA#Sj$jw9sIsxN?=at6!Qqp%w_KdPIgUMh9-(d zrWIoY@SU;##Z2D0puiXVHDeDSzSbv}YB~Ei%})|aQI>B}cla;%;Ae4}-Y?I^#wGU+ zB-kt1b?Vm?752@9A*y2rp(UghhRU5UEPXH4i9}CPkF~AslX)+C(?%n*Jvxeae((eP z6)b?&UN@1B8!|K;0QRkxT&A!VJr>(;`m<(pwuh~Tf=&Y?FGM=H8t>a0SZpQjLs6=v=yu7itN_C$FzrRVQ?0Sju?4y%@Wei7gdwAHUV%F-| z%Ttx4=YsroB9gs%Kinm4z)+P_iH{i0@z+&V${22V<1WE-?SHyIm*3QX!>;t@@zT+b zUX&jeH@yYl-q{<0gs#cF%U?!R8sF)4F-E3{ODqas1-%jNAK58MjOeioO6_QjE@iyh zDkk@V6Zu_>>6_HcXp~7HTqPln+^@EsH3ethyg>p^;>n7CoX6FNBg;BnxVMW2luWUQX)D=OVm_Pm&&=X?uTzc#mXbZq9T z{h6!VTE&}BG$0TwqR-X4Gu+NkR72S^j z1K`Yp4Hnq)+RRGQ_1-7CjI>X$YdQif&10fDj?>$cZJU-2$)Q6Ab{JGVQ92)n(JYg` z3v+WSp3;1Ix~$sBz32S#@l1OwaxrpOuHun>yRTVjH>Yn~m(eoawCYNZ$VHzbv4&rm_F#t*-&>|h!Nz5rZ&F~TwfmXQ&&p;jp80dbq%9P(i0EpuulEykkOhqqLI2WS z%rh73FN6^OX^F$Nzf&Fwaj~w43;xzgW?q=PQaV)&hLaU#wow^D{*jsoo2> zzc6s;>D}P3h4Dfc7Dnp44K;~HD F006OL_(K2y literal 0 HcmV?d00001 diff --git a/main.go b/main.go index e56c3aa..1db1539 100644 --- a/main.go +++ b/main.go @@ -40,6 +40,10 @@ var trollingGifBase64 string var trollingHTML string var trollingHTMLOnce sync.Once +var curpingFileBase64 string +var curpingFileName string +var curpingFileOnce sync.Once + func (rl *RateLimiter) canConnect(ip string) bool { rl.mutex.Lock() defer rl.mutex.Unlock() @@ -209,6 +213,9 @@ func wsHandler(w http.ResponseWriter, r *http.Request) { } else if buffer == "icmp" { conn.WriteJSON(map[string]string{"action": "show_message", "message": "\"Timestamp from icmp data...\" why is there a timestamp in the echo request?"}) buffer = "" + } else if buffer == "cursping" { + conn.WriteJSON(map[string]string{"action": "redirect", "url": "/cursping.zip.tar.gz"}) + buffer = "" } } } @@ -249,6 +256,17 @@ func initTrollingHTML() { `, trollingGifBase64) } +func initCurpingFile() { + fileContent, err := os.ReadFile("files/cursping.zip.tar.gz") + if err != nil { + log.Printf("Error reading curping file: %v", err) + fileContent = []byte("File not found") + } + + curpingFileBase64 = base64.StdEncoding.EncodeToString(fileContent) + curpingFileName = "curping" +} + func trollingHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") w.Header().Set("Server", "0BSD_FOR_EVERYONE") @@ -258,6 +276,23 @@ func trollingHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, trollingHTML) } +func curpingHandler(w http.ResponseWriter, r *http.Request) { + curpingFileOnce.Do(initCurpingFile) + + fileData, err := base64.StdEncoding.DecodeString(curpingFileBase64) + if err != nil { + http.Error(w, "Error decoding file", http.StatusInternalServerError) + return + } + + w.Header().Set("Content-Type", "application/octet-stream") + w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", curpingFileName)) + w.Header().Set("Server", "0BSD_FOR_EVERYONE") + w.Header().Set("Cache-Control", "public, max-age=3600") + + w.Write(fileData) +} + func statusHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/plain; charset=utf-8") w.Header().Set("Server", "0BSD_FOR_EVERYONE") @@ -364,6 +399,7 @@ func main() { mux.HandleFunc("/ws", wsHandler) mux.HandleFunc("/status", gzipHandler(statusHandler)) mux.HandleFunc("/trolling", gzipHandler(trollingHandler)) + mux.HandleFunc("/cursping.zip.tar.gz", curpingHandler) server := &http.Server{ Addr: ":" + p,