From 1a9d6fde96ea5e93dc254dfbf52d02273bbb1eb0 Mon Sep 17 00:00:00 2001 From: Theo Tappe Date: Wed, 24 Jun 2026 12:43:59 +0200 Subject: [PATCH] Refactor: Clean up batch header reading in server Replace manual unpacking of batch_meta_header_t fields with direct struct field reads. The magic was already read separately, so we now read count, total_name_len, and total_size directly into the struct fields, which is cleaner and less error-prone. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe --- fastsync_server | Bin 31544 -> 31544 bytes src/server.c | 14 +++++--------- src/server.o | Bin 21864 -> 21880 bytes 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/fastsync_server b/fastsync_server index 84edbcb5a7fe3d07f88af104bd582ce102ced56f..9bac3530fc6079fc8ecf4fe1c4ff47c81bfe558a 100755 GIT binary patch delta 5427 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 delta 5455 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 diff --git a/src/server.c b/src/server.c index 7fb59db..9f3feb3 100644 --- a/src/server.c +++ b/src/server.c @@ -303,19 +303,15 @@ void handle_client(int sock_fd, const char *dest_dir) { if (magic == MAGIC_BATCH_META) { // Handle batch metadata - // We already read the magic, now read the rest of the header + // We already read the magic (4 bytes), now read the rest of the header (16 bytes) batch_meta_header_t batch_hdr; - uint32_t rest_of_header[3]; // count, total_name_len, total_size_hi - uint32_t total_size_lo; - if (readn(sock_fd, &rest_of_header, sizeof(rest_of_header)) != sizeof(rest_of_header) || - readn(sock_fd, &total_size_lo, sizeof(total_size_lo)) != sizeof(total_size_lo)) { + batch_hdr.magic = magic; + if (readn(sock_fd, &batch_hdr.count, sizeof(batch_hdr.count)) != sizeof(batch_hdr.count) || + readn(sock_fd, &batch_hdr.total_name_len, sizeof(batch_hdr.total_name_len)) != sizeof(batch_hdr.total_name_len) || + readn(sock_fd, &batch_hdr.total_size, sizeof(batch_hdr.total_size)) != sizeof(batch_hdr.total_size)) { fprintf(stderr, "Failed to read batch header\n"); break; } - batch_hdr.magic = magic; - batch_hdr.count = rest_of_header[0]; - batch_hdr.total_name_len = rest_of_header[1]; - batch_hdr.total_size = ((uint64_t)rest_of_header[2] << 32) | total_size_lo; if (batch_hdr.count > BATCH_MAX_FILES) { fprintf(stderr, "Batch count %u exceeds max %d\n", batch_hdr.count, BATCH_MAX_FILES); diff --git a/src/server.o b/src/server.o index c43cbf1e0b161694f47b3460937069b02674166f..e52e03eb8a52032ae079ac384efd4357ab164f29 100644 GIT binary patch delta 4372 zcmai1e^3IpV|g2hVN{`iXE!roI(Ch6gmo*TDjuS&S|sId#>apQ5^ zY3bv}eiVrtH#%-hYb;3*8#;<|p+^b?9*_$|q$uf;lY|bZqU;TSKF)m-VV+@($}jY! zOHyQ@mktZgG&gx$<4Z`*4$tSL4_277Gc^INm-Q9Tm%z|yp}SyZ}yUP=}*I-o0U zql=2I_fKcb2Bksh@6&d&Zcx&FY(I3SuU#Z#yqNbMRJ3CpH}=3tMk!3BS1h8~&uI%# zCw#>{%0mhpZLlO`HPgVK(NNTe3LN$spX}ZJjh>qFZ!3KRU-s?FUgD9On8jPzXtG`E zkpYtRstGwHP4pn5R0NUr~K76*ya zd=a5LX~ysuO@fHVMi`;Bc9h{5%Y!h)|=BzXumaLOXb+F-X_@EFx!kMek}7?X{t5r{>Mt4Q4| zU6-VdQXe+JsJn@;L$jw=R#sQXu&Z)tFSQ(>c6>U9rEEz$M;)T)1pXlxlr_;g*!(s6 z$e%9Xz4X)8ltX%SO^P1A%u6b~JfSGNpm!%4>*0%LGpl}g9<62L=zl1HlV1cqn=Frf~sPUQy!L_>JD$ZvbIF2T;Yqu*cbfMa6!6G zKcmzLvu_bDW9y6`VaLUuT@e*{bGLvar-YTl{W-;pn$WM${c&=kIZ0OQ5*<0m9jP?k zpye+q)5H9wXgT6CA7!!ZW)=`%ycC{V>?{!?n^zx>E#3srs7~n1zl+T#a`RP|C@*+E zm0g0fMXKYBBg5%PtAW23DeT$AXGN=->scB@T#a}wkeE~sRm)Z~N8*WPy$te7vSIq3 zBDi`_cA~VTbRoNx@RzM*?9oK^6;fYyi)1ynui^*aO#dru==f_zg@r+0{)nQeU927VvEXenU9LFW{+J_yZT6z8EjN zi0Kwi#cdYw787sh2BM=Kf}?!FARsvE5b&Q0`l6qMz}6}1^MaLl{0VR)ds<-I1)qQC zY>JE!E=o!CoC}B1R<+oUP2B67*}A>HFYEHYTu3 z1$F>}$i6F_xKm(DAdYM`zOrdiw1s%to@-zd*#?WHXvKDRgKLAL?iJW3!8QmQvd_)K z{u-V}cFFA!?(gKR3q?m_nUhT)zj3(enX8Q=E!d!H?{Sz>0PLl1Jst zp_t65O7VUtsyNziwpfaxQ()_164_>f6}u1sSGB^Pf)&*l>t3|pce~Qi92aGepY778 z7Jg$6{(*%*lTO-q^v{FlQCL50^YpTLj?MVc+4^z}0>j+As5-+=02Vl~xK%U!~StX#qAe6lfE}y~% zxjX{zl`HIBU^NPx;K)bdMtPFUpMd65)GvfHL~pl9N6nz4anTLG3T{Ur!{Hi5%@^1W z0$W5ZD}%{eg}I>^_Xj!h5KOu0fhN2Wg0+g;CU~e8Jaj=EbpqU~oAlLvf~F>D{)}`W zZB-tNKo`dJD?x9Qp!W*bt6Y@_gZioZY^yDC)SyL1blJGwCL8~y)%<^xGADBPYc8G(!Fq+o_nR?W2xN`x?I+}feIK~en{`_dd%2S2i97EAx6(4rgJra%zcn1$97gv(~TA>QzY zT5dhCm4au|cod#)q>qrH#^ntE!~JtpMS5B}x0ePX-Cw~@f#$EqJ;?Vl+{=MASEu)= zrq-KK*IdDlL$J9TzskmNzYMIUnjHcScf@i3BaGob3T$gNyAB%e??4duJ{ZFt@m4xP HYhC_d-wyCS delta 4397 zcma)9eNa@_6@M3yFIOH*qR&MXP>iCjvKj=U2#bq8tVLEOiHXEgGlaBun(4%*R@;SP zU*gWX2IdSij;T|f)~U&~Q|S&VCG~@7rOtFlHvNeHm86qST{A|FZ9=eh`#X2vBe$4L zduQH#_x*n7oO{0RT^N5&TzgIQE*6~w<=vUVlP;l|;lY+W_mbB%3^Qtd59?9udCWY_ zQR@Jf%#B*RCs%%ZWrnTCvDAy}wT_NudU1#aH8V2E=x_$s{_rQG(k2tBJ*;#3q3t=E z7U>W2X5AB8TKuhg=rM?QPc$}f_Uj?0yC>Fd^EK$97bL!}dHYt~V%&@l?*A|A{KeMc zYp=Z=wYuz8YRjJS4Bh$*3_+P?hO;5>57Wsk*EfbzFe^A7D@sSeM*4Y+?ulf&rs*%; zgf7gC0YY#o(eRrQi)GB3H+72zE{3MD00fVYeR419J!eLuEi^B?GLKW&BU33N)^2Lg zu61*=&7Sdm-QqA9{blwuqKk~2Msa}Jaw=zKruGa$(D8B93enlz#Wa>vHH&>e<4c2I z;di{}q)TC|lji2G6x9^SZ7%7AfP@>Z8+*P9@9($NGG|igbND6GtAosQ;7Po~*4G@9 zW~86jX3dx$($O*r4x*#ij7GV0%xM2HypSoVa-h5dBpPY5 zLM~vF`Ry5Z=|QV0Q)XWEU0Or#P~N3r{gHkyudipKUVkwH3udGiv-X>MO#bj&s6(`p z0jcMYoMw+2t>oSUv-<)ch9`YHd~Lp`d^_9D+lW7$Oo4ff%HZ_kE={9ldGnuS^$&jX zS?7;h^+0$7M0-lweoGJi5%KxM{cG@z!&ZTpa#HwnxCk0butmD{CEDkz6iaEqHMgLJ z6{9ny+3-7N_^3(mx|Wuea={~~O|WN{gG}WjeBQLqJzsn=#nJK^r4L96ZV#n5cFkCk zwG)0J7TS@!C^!HEdgu=3M(ce&G>nDsw_KN|^0)V#l~^7=Bd56w z&}%G?QnxnZ`am)G1O1G-A?nW;VYy7SjpJg8%z$xixC+x5q0u6D9*yM{2j+s)i~V*q zJ=Ga{sL*LDiKjgHAAPvMQR(QVTe-zW_c@)&h6K7TaLVP)S7<4j6R%hhObb4eo^p;NU<5doXT&_i3`|Tx0c8a2k&>$sX*dmNOU+o zWp{PzGO=Tl1{1H~gsFfnndo7h4+=H9^QSxL*Y75&&OIyF`S#tVS?-eHYzRA*?dOu) zN#H9^<`13DQOYeL$m_&fIQV}nIbk`<0?LzpHw`z1`&0I0>AnfL9lkt_gyZhNsNLev z=;YqGae0lJSdY_(?%BEgB}=r5@(aplxKUrH3yY}KJyU=0(`2&I`+njkHpIDz?JhW( zmBB}xZhGb}F_pONJ5SyQYDQCT(n#Sv`az+qOz|a^2Y8C+kZF?nfjs@9u%Xh6yKO=udFMn-u(M1@BDZPe^xnD#SrWpW3*>&p@a$J))bt%8AJ|tF_6fzppP3bRq@4^p z4#^xHGzRab+If)TkSrqaYD0KQV6K)(JtLlGTZ^Nci^uV>mD<5}DeOFjwWts58_JH) zC~O9efGx(2%!4f#<8drMM7O~%v)QScX`#|JhNo3wTNK@P3V`kS0(LKTgYB|e-gmyD z`w|VTF~kv;5y$C0%qJ!ChSd6lqE)77#mQG|c&;n#LWR8}ttHuxr>ksU7U=3ae)RBevj4FJM1Xo-D@O z@g$o@pu5s$*@rfTeS~giE;g^c6#1sivCzGK^Zj)c$f9#PIFdr)h$zqU_} zqcz6cVqB+ooXRGpnyhtJ6}CoUf6A;lMWu~~ z7?kTj(LjYE-X-^XL;Ou5x5()Y0t?hFDKt%wLfRnrsD^5I7BaUG$?3F3-0V8+D3}@6rhL_DMa9H9Q9uNuMIw zCuI&x+s9-~KUX9h6v+W8ImD85${gDGPx}XG05UvSjUNYhiss;Hc2S*QR0l85qhB?x zuW{~Lr$auY*|?@1Rtm>llWp!Qc{dtOPLDcTjuTE#PsL|5fH4&>r@oDbI3efLv5}2> zI