From f3d1a80985bd6c52aa2bef4bf5b88c076da1a134 Mon Sep 17 00:00:00 2001 From: olebeck <31539311+olebeck@users.noreply.github.com> Date: Tue, 27 Jun 2023 22:07:21 +0200 Subject: [PATCH] fix pool being nil before the server connection finishes --- handlers/packet_logger.go | 12 +++++++++++- subcommands/resourcepack-d/resourcepack-d.go | Bin 6963 -> 6993 bytes 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/handlers/packet_logger.go b/handlers/packet_logger.go index b85ad3d..9788bff 100644 --- a/handlers/packet_logger.go +++ b/handlers/packet_logger.go @@ -70,13 +70,23 @@ func NewDebugLogger(extraVerbose bool) *utils.ProxyHandler { var proxy *utils.ProxyContext + serverPool := packet.NewServerPool() + clientPool := packet.NewClientPool() + pool := make(packet.Pool) + for k, v := range serverPool { + pool[k] = v + } + for k, v := range clientPool { + pool[k] = v + } + return &utils.ProxyHandler{ Name: "Debug", ProxyRef: func(pc *utils.ProxyContext) { proxy = pc }, PacketFunc: func(header packet.Header, payload []byte, src, dst net.Addr) { - pk := utils.DecodePacket(proxy.Server.Pool(), header, payload) + pk := utils.DecodePacket(pool, header, payload) if pk == nil { return } diff --git a/subcommands/resourcepack-d/resourcepack-d.go b/subcommands/resourcepack-d/resourcepack-d.go index 1a71341683f68568420410877c66aedd32c57fe3..571045a7ecebac589fc61ee7599a62005c25aa51 100644 GIT binary patch literal 6993 zcmV-X8?NL4M@dveQdv+`09f`$iyDS|`kXTj6f?jIlXU>s8z@LcM8IKxoLU@1E~V*I zKU7L4H%5Thq8D^V(Zr~YyR}{b6OuFdYV1nsMo3WIn|u1pmH`YZG*|`jV89XCwQL*U zb*=S*%@aB1t;?E_Rc8ZD51n9u0!Brp zeSabOYSrVR+c?GfQ@=XLjor_ze#YJ4;v2iN_)gGJt$od?BOp`)0V%y%eZpu_LjBGm zuAh-+te){0-^Jsi6KiW1?8={TCYIDh+0zFmI_9CFk6@ffML;64|36)zHAVi&wwj7y zp~%8j&9>xPpOJ*a53ZJEx*pkHN)|L4jvO;vRjPJRoPXD&E1J+=Z@d-iBp_@TJ|FRh zAGM$GTX3wI1}WK&hagPZN<%AhjX4yV@(%FlBh)w}2!(o5$;|k|M~0NwJsgUL7>-Fc z&yN{zpw8tkZEkMFb8081CIS=P&Wlzn!4nX@U83NAUBvbaL>Ts9-05o%+DieYQ5FuG|W@9r7x>bW5Nkz(Bx4@G9jy z3m&D2#Jgox%^3Zzd!PHxmXwud^^UKd-xl^>Tl z{Lij?2Qmvk>GQ3^Mp2p%eRwmj0eJ~M)3teiJ zx13u6Y_`yT~>q2{dUo;QI zVcJcvz%G`&&lus70KE^1@gEdd#9&H`H}SUl%a#z)1FC-RY~n}YOI@X1l8O3uVb zoQd(?eWrmnp|Mi$KuB+Y$jqfa8Ge3B_SuL2g^#;mj@!+khfrsTVAF-7b!V0?82xP1 z0R9d?P_{)%A{>G9`r_h(tyi&$2OSWIar%@Pcn98jy`#=-Fl&TWw~js_h$W)wh!E>w! zq+cKi^s#Mf6c}QE8&GB!Qt4_7Y9$obt))3q<2MU2=~)fZFm^`i$^F@Tk{cJ&gp0S; zrEZ3Hk_3561-R%m9(bS+#!POaY|%5YL()<(Dgw`-=RtX4U*J9 zeFwiNZTI!~iMVEWQHWCgra-yECV0YxhRLj)_nn82BuF;rtbP6F)V7;0VVfq)#2~Fw zT{dvOK+}*eSir&v?aeCYbhAx8pKwpuFo<&|EU+|B4P)u`0IG6U21G~YWBZ$CbcE(M z*YKaG0XXPeEf`#OwU1I&TEyw*bKc2YA@{(ty=KIK58?z){{axLDsO}U2QYZ)sL+H;?rXIf!5#>($p?soAhqBm zO4UVa#;)bs8=L~T)eYsrBOlC+U>e3v%?S=vlBmJFF@#v2&<${v)~lIO8*g>N;R}7* zKwhKGjxO3q4apRM_LvzxlpmiK3`-YYqR&Ph*lK1aUZS}Vmk_(q(>~{h{1xy?hnzp% zH=S)-KO$O@C+22v5DkPsw^h8)MsaSL0|)Z?`KMEo*Yv{*ISXfaME6#XJIG zT+;QC%~4N;?J)Gqb#_a<%#88}pEVYozt(exA2>J)nyK8ge&`w8$ov9f`UaXd9ST%s zE2Bf>Wp3oko-N>j7&mC(k#{0z7+H?tNyly{3AM4n0#tbBNE04cPuACMwMSfOB7Rp*g5#aL0){Jo!LY z1nM^2H95)99(eTrHiRsfra*X<&QJjkWgK1Sj?Z|6mzpv6j85dm1Hy9*c}x$I&zD|H zVWsc9E}G`Asm9qf8(hf;wD%j8R)J$i32W1-aCSLEDzFDGqYpVWnwt(*eO^d94xP^k zw_nddu;%@eXP;+cnUqWhN6i$!t9h5S7?GBq3$|>qjYLZPn&tf;Dy%=GwG?(^s+X;I zux@jpT=#v2bEb|RXw>64j+2Pqrz5YhIj@s~L08{j7)F8@g?i+EYY zUa`Z2p%oIoN9TDiZNU0r^XT9HYJ#TTAvC>8 z>3GV9X9%YA`DtIb>CO} z>*7|a{vuKg)f*&IiQqt8Gs=9lSD$_e{lQ2UjCVYt^6AQpKiEo?5Y>*r)BN9zXh0V7 zw>XLP04j2qp*dt{ADdwDv%?jEH`!W}((UBAa&3-InY&@&MpaP zTWp8;3%e|m@1yBhH-rh?C{yM%W+B1>yrHVGOrcwAZik*a_SEYDL=(N$^kp0g;d!K5 zDG9(E!8x1B`Oj@!unRR1WNlBTha0WHfDgq%>gq8KwCt$m+I!jJ8PBamuhbVfX>=Ct zqILkNCSa2!r5iA}pu2zW+yZT=+MljnEvobbErpBCo6@2~qxh=9JBd`@;U~`s8mGLl9 zR?5cBrB$RlV9eBhBf(x1M6v8-tz9SeFxk}nVf~`NKf$o?x0$i!Tu9LtG9&gBKjWET z4jm+RFpD+=%hV?}aAO2fK++~3@uCJ;&&F=$#V(ra5saw1k^R@oU5PmNNdbuK%>}g2 zWWn*YO%>e}RD#M3_>H%+w1f9F-NtSzTuTGJgLJmy*7Wrqm+7>~QZ9OJezpEw;LVe7 z1yK9%=i1pyN!nC5p2TKF*c{L5wnkPjVh+lTEqD=_xlmxwE@A12&oJo}3PgcN3(q(- zU5RPe_~?f2Z-xJfGNO}#x7A_5y*=DGgh;2Fz%U)@=|29I6_6=FT`@=PPeSGfRo$BKp1R@H+rW!*|v{MxFj2ala zs|J@jmT<0*p{~lP`>CH9|4)upan0of6qAv+swrcALK4xtx%o;-0CSXQ z6@gO?Rl+y9&0Q7qyUpckc?Gt?sbkj?x>0yYEv3$*@2-M?-B))X7`hsj(??ZS7dlZ; z&3$;i@CkBjl)~w==K3kHQurEhHh_(pM28(hIA*If9;Jvg!*Bl{XPUufeVHqZlDWi` zEHMwClQo4~b44nX=nB$A!MrPQ9aVa0i&9k*dX!*sVJaup@5zQ{Y0=ozTXrNBiBaQ? z3GV>2(X1SB|yxEN=qjg2nBVJY?@lEk7(F2;m(I~43ci^Cl z0xnrjkg5cf$zD(IzAL4QD$5Gr_Cy7c>UL#xm-MdPa3@O_H!$W$=ovtpL`{|3TVNiX z+SgtI)X6)oA^^}}c%nLoP9Uh@i7Ng(HlZoEDq?*ul`_VIu=HE;!#pzNpgLYg1b8;E zM?goXri7h|CN!glD2qjn#r8^L%R8~$wXZncKGrN+1{S+t-eeBfnXEv)2jo!NCGp=C z-l>yv?gbI{GRy*746rX9;Dhahplln1osHv)w38om{!2x|qje^-P(R4(D}8zdZ9;-9 zJ|^|;k9+MazEo`8q}cEs*gwC|x*}N)TTSd>lcdU1+GQ`;>H2rpvXD9H0GwRQ$Vu~C z%eFNAPDr8A_J=dojl2Pr-P)If5)^NO9-CvUHyVzK;1^mW+ zpMGRJi2b`yg0QZiHarvwrYBQ*&T?ga5dzbWSD-LW(|2!nOa)wVo2N5%S@`)b895+v zb@wzfcqm%-nE$;1se7|tD?Pb}Q^t{9m3wqcD9U z*e#GLx!ZYt!NRw7?@3|TFHRdR{e?C^_rs<$>Y|+MH%j}$b}<8qM#AV2SS-=een<4O zazY8IVBtUO`YZ&=xxNYqHu3=q#T=!V)I~tm>kJw);~vJbDHqY6J1tI8ZTW+N+I^yF zP_7&daCpe*1mgdw+Kpc>Lo83eTM82RpGy4*u(4tgsKMfJvDOU4)8jzC;qPnQhDFoI zV>hGIKGCWG9<*WydmO;KOi1sIT)u&p2ZN_e&>&Ib!cvJxmM{`OBgH#x4Z)n#T;M4K zAalmpl?7_Z#<|Q+HaIG(-GZn4| zA?;9sUgLigCwrmEYT`E|;Gp7l`_cQz(x#!uL_P1e{T`8I0gM}bE$IDq{#L#43_hw> z3-Itv8_w#XZa;vgg3E7Lb^ITMJfmSh_mCh`_}VK3v(R)Y)q3Rj2gY z0H5iU0q|oE4L$1ZZMr?sndR7kw9}a45!Hd-(9pWed2ySfS3qmFuHz& zvhjsFq&X#wz^wDwc<+0FfR_>?=qp{Y*0FcmeRi~ECViquCF_chd&Y4^W_r^nwA=PnJ&^o$M{+l77b-3xf;V$o^oL5BfwSXp7Jgv>2K4aMN6%M9bW zV4)d?%E{}r?h-hZ+q_tU7P1(w`CwbGz(;yi!`2U3ua~kn_Y4kY%pTe5clgPyKLJC! z<{_?>Q#ah>#*bDpJ|mt~ZU+>ir0XRBek-#+wkrQ6XVp`|n4D$?UnA9%rvKDzBQT?8 zaX2vU(b;$JCzWqsWdj1npCx$bBM@2t+wd7|?RjtMWF{2cg`-^in_W=ZQ(nLJ!9JCz zJqqUYbuyyyH?%+FV4?*iI=f)l#?=7=+<%xuw(Fx4y!3SwNv)wsOXMD&r5G!~(|`!> z@pNS9cpQDuN$FDr%Dwiy2Vxceg^%Fqzorn4?{A?5HIOo5zt902^66&#_5wN*ru%ZD z&p`ZjR4*+PW3~q!giElmY9m#E&|HX&3r`?Dnqc(y$V2FNq3`mTKK{sEbg?Qr1$%|o zyT`+VFt5E$mm05RdE{sldvX=sUBasclitq?&RuO$JNc2VXl2*PF_C2$C{_o4&gjAr zxhkYtfyxKZqW$FF=sTZ~pOa*gF9^c>S!H!>@WEB~Xpb%=c{1Jw23yP2GXM!c)2l@D zme+*gVme#>|4GR)ZE&&9JyAbo>Ng?L$1T<%p*{5@=yZY10NVav(t(KpPU^J~@np8p z)~?No7DgN6Md#=4P&ScwRR7s$GlYDce(||%`8U;^Qa{YumX!;S3K6O!vB9s0oY`8f z4wXMJX!zK2DqJe=BiWi)w?s1{i(2oa$GJQUI_-rwVg>QFOZ@arQ9CH4lmBT%(>F*j z;+!9S>Md82n5cfIGC!z$F6hw}!P53JEqMg-O4K$;O0oe?iGG+18b_9ckz~nW1K&i< ztUcY8T+8zBBua8wUi|bkyz+%t0!XGpXM>mUFNAfZ>C_CsDoEvs^ps?w{hXT7#z)|% zx@XE-4in01=QO{Wbo#Aonev{;D89ndoV_Q+$AyA+!OpH@)n*E;R@($Fs)0SMjdnfp0QiyuF=RuU*%3^s_sh-ga@p};{rGis| z4Kqp~_Wf6eHK8UP?@EsYFcM5OGK*xmzh zAT1&ESXy(uiIvsOgKHY}F91TNF=d;)t|YpaZ%WbUD2uElOvabFBU~!9-e-Bh9dXEo zNjpHH{ht==6Q;9>H^u72u0go7yIh2v$1vhO8hz4z|3Z<+*Oswu22i4;ID(f}(JVtH zqw3}U4{f?{zlOPvc`4D$E59A{YMrlpKMTOP1^2CRz2&mi3(2#p;Uqy2gO({gT>2_Bf$TbTj ze$R71Li?NMF%bxMP3MVH;Uinn1um2;!p?F2eD2=h7#LF~We4;3I1Sr~k^-qIC&f3< z!q2p#_$jP$od?|R@zAcfx+W<02NA#-ASo@?#05JfdQK#tubDYpBMu||n1sty=x-{O zifa7x?1l5t{8|woapMz$7F+<>?1I(wr^cg3+xu&qLBOBFZ&x*?J8}IU<0ZZI#zWZD zt7r}~)6SqE7TZX=`Q?-%x8IIViOn5Ub_B4}OZl#)BqANc8dAMi63sQRO@11us?fH zL-;nbnyG=N=pjX5qyOktV6g%UeD%a2*>1#qxTm%6A`&65hOT$@^sMtngJ|`id$Oy_ zIoD54Y}B|Y1CQQVnjiuj#u}OL{b1DgKZpc9UoUAm*PiROM-Ns(Vq?t#<6GhI8@T2m z>V=~7OXBaBQcz14kBdrTC2@1XaFEI!Xn}9>@Oph8imd#oJj?Zahr9!e;yzgYw+eE? z+W;=7=xI_PMvG}u0Lqb9(^q5_VC(V8ZYeTym#w*NYy9fk>J#2tP}7__%i0YJx39)Y z7PQiEaVGn2@9U^d4RVOweK`=T#&PZI9bS0qJxh~rGP3vPkZB2f1H(J|8W@sm1@b{! zO51=-O%2P1-7Qd&r?=`4=* jENl^8O6M%e!N04t08Y1yegt1uipcZeKaGU%xNDmUMLVmP literal 6963 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