From c8f5c9f6f0ea33be2677c83fff7fa43654ba8a86 Mon Sep 17 00:00:00 2001 From: Ugo Cirmignani Date: Tue, 11 Dec 2018 23:00:03 +0100 Subject: [PATCH] thread hang up fix --- Makefile | 8 ++++---- build/modules/configRead.o | Bin 40328 -> 40328 bytes build/modules/connection.o | Bin 51576 -> 51552 bytes build/modules/daemon.o | Bin 14296 -> 14296 bytes build/modules/dynamicVectors.o | Bin 15704 -> 15704 bytes build/modules/fileManagement.o | Bin 31480 -> 31480 bytes build/modules/ftpCommandElaborate.o | Bin 70640 -> 71016 bytes build/modules/ftpData.o | Bin 44656 -> 44664 bytes build/modules/ftpServer.o | Bin 62008 -> 62536 bytes build/modules/logFunctions.o | Bin 7328 -> 7328 bytes build/modules/openSsl.o | Bin 16136 -> 16136 bytes build/modules/signals.o | Bin 11200 -> 11200 bytes build/uFTP | Bin 195528 -> 195552 bytes ftpCommandElaborate.c | 15 +++++++++------ ftpServer.c | 11 +++++++++-- library/connection.c | 4 ++-- testNotes.txt | 13 ++++++++++++- uftpd.cfg | 2 +- 18 files changed, 37 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index f8d0a71..e6710f2 100644 --- a/Makefile +++ b/Makefile @@ -4,9 +4,9 @@ CC=gcc OUTPATH=./build/ SOURCE_MODULES_PATH=./library/ -#FOR DEBUG PURPOSE -#CFLAGSTEMP=-c -Wall -I. -g -O0 -CFLAGSTEMP=-c -Wall -I. +#FOR DEBUG PURPOSE +CFLAGSTEMP=-c -Wall -I. -g -O0 +#CFLAGSTEMP=-c -Wall -I. OPTIMIZATION=-O3 HEADERS=-I LIBPATH=./build/modules/ @@ -38,7 +38,7 @@ end: @echo Build process end uFTP: uFTP.c fileManagement.o configRead.o logFunctions.o ftpCommandElaborate.o ftpData.o ftpServer.o daemon.o signals.o connection.o openSsl.o - @$(CC) $(ENABLE_LARGE_FILE_SUPPORT) $(ENABLE_OPENSSL_SUPPORT) uFTP.c $(LIBPATH)dynamicVectors.o $(LIBPATH)fileManagement.o $(LIBPATH)configRead.o $(LIBPATH)logFunctions.o $(LIBPATH)ftpCommandElaborate.o $(LIBPATH)ftpData.o $(LIBPATH)ftpServer.o $(LIBPATH)daemon.o $(LIBPATH)signals.o $(LIBPATH)connection.o $(LIBPATH)openSsl.o -o $(OUTPATH)uFTP $(LIBS) + @$(CC) $(ENABLE_LARGE_FILE_SUPPORT) $(ENABLE_OPENSSL_SUPPORT) uFTP.c $(LIBPATH)dynamicVectors.o $(LIBPATH)fileManagement.o $(LIBPATH)configRead.o $(LIBPATH)logFunctions.o $(LIBPATH)ftpCommandElaborate.o $(LIBPATH)ftpData.o $(LIBPATH)ftpServer.o $(LIBPATH)daemon.o $(LIBPATH)signals.o $(LIBPATH)connection.o $(LIBPATH)openSsl.o -o $(OUTPATH)uFTP $(LIBS) daemon.o: @$(CC) $(CFLAGS) $(SOURCE_MODULES_PATH)daemon.c -o $(LIBPATH)daemon.o diff --git a/build/modules/configRead.o b/build/modules/configRead.o index 380e94b9e8d50c6619aefb1bc88cfa8a278a9570..441ccb46ba7da63c84f0b88f9aea83918a7ba0d8 100644 GIT binary patch delta 2164 zcmZ9MYiOHQ9LC=#UEMNwF_U^cQ<*_TVv%FOA;V4S#&)zH#MTW_w}s3P+i=6Cm!(

&?`ez-VJX_0D?ItL0t9^a?(^}!2zWnkx4>+zl`QBUm<*N18?Pq)OWv#X> zYn^3T`{-&AaMIJDnw%Lal>247i;g*&ls+n#Pj*8X1)Upd_=sM=Z z2m{B2blqFDTc{{6JjaP+T7F-co@H5UR+OuM5J4^9Hv`&fQzz*U1~JK8urLmHtB_9_ za=}JcvaVI(5W}qsN11L_h%nzOWUka?WqI8wT_GVeW~^bG8evW7&bRN_)F=ZXjo+CG z#pNTW>&eN{*W9M{VQ|208_* z80%CBGSjKx;bN!89KBr%FVWwn;Af&s$c<*F)*Gk7t580~Y?lvL=?*KbWnK8J{Blh( z&3PMngsyHaGi!_Lf=%7bK(`NZ&UXu3=VJHm3=xe#8H#A^Wi}$@Su^2rGp$mFeO!tZ zE(K?gk~60IH5)_L_4x20(>+24jnCtTE%^*G-y@{MtiEPbAEv8Ufb{hG0rcQFcSL02}J|&+t4i)BI%CL?8K815k^eH^VY@d)`<8stS=D5@+aEZ>S z#wON91&;7=RO39;(L&C-s757S{b#YjOuxn#L`-2by)hyGHq%d=6I81HA^kChJxs&| zQk;q@e9c@e=&dsRGv*YO_!-mb^S1RWh6jXCS) zz@WkoP7DgU$8^2&p7OJu;{0IYTEvhKH|QS{=w)a~$pOUzSvRcZ zq9L3nd#RUkriX9eTEkjiH?uxuV?JWdh?YCeYRaZ=<-|xF)%3=N+-=U-vW;n@Kd$93 zX7vd}l``C9HeUFdep8v9vC z1u{&H8O~8*hPSA(n>8m3(PJl-ES0=iRldyu&Yx6B5y^tHOe$RF3(108D0%0rH|{I{ cs(w0~{IwE0ICbi2oM!&ibGS6^9zTfx0b1R#i2wiq delta 2162 zcmZ9MeQ29S9LJwuy0^^DEjm5Vjg1J3Eyyi6kusUKxSbY6V~60J#wcvgIZT?hNxG$J z(l%}SmL}hZsGWmob#{svQlYiJ1^r_kLaG0_&JN9_xFR?^r!d`6vfRVSJ^vis_jBLh z%l)3~nX>duSw7j(09V5v>}c4MpJ=$lnxAQ$-e`GfHQsvt1-^2fas8_=FUD%aFm5&s zV=rtTMypWm5&Q>RS=_5J0eC%3a+8u;ZPpNES=JOM5K1Oa-`vjfEvp&HsH6)GW@b5W#p&iYia3YnD~2zk~dezpWayQ&UIb_WNlRbN*60>;cB_SLD1# zE`u{5Xg?wWL9Zbf5EMl*!1x)n$mNxBW3UAopHOX$XlfL7!5e2Yni_*QDCsv$1{3@) zRrLcaD*dm*-73k4u~tFfW3JUjS5bS!@3>$sbFr0`{LiXCDQ*88iboiIhbu<}IZ=I7 z(gM6k1&ttk)J4Of5Tg*n zPAr84orb+l(s3MU6V!+|+XVky<$SlQ$sEefD7Fc@3|pAdBd87wo>0*bX=FXTVMZGe z4-0C+WLVI>SPV-#1xLG}C*f`v^dge&jB|BU>y(ojD}X|~i_XCw5wr%*$O-=CnsTKd zY2-oJqLNRnEvxgIx((i_iv}?pWwe0B==B^rB>jnChot9F=wSSP)!}2RTV@V>vD8s| z6s(C=m1C*!1c_h{-C*t!^{P~GL?|Een9(U=Uf zU5sB+|Hzc4j$*b;(yQPx!G&_DQmdK6Cb(mQP9hl-vA&oqPr5K}WSi2={ zhO?W|K^*9o^dWNHr97v*B`t%k=LG$T$sS2xfZ~F-!4YTtFV+2=njka!dvM1E?M5=r zD1))Mpl>l3_d71Dx!JC!z~skOrH^U*8xZMbJgV;CB~A4r*URV|O!o@fg)6<1wxh03 z&{lZ+1l1$k$M|kl^~&|-c`+kqFxw|+1*qRe7vb(_)QMof;Bi$+x5l4DpybJpfqcm!VBxMj8V!TFGG^des$PG#UjEcq8 zOKHaX8@42)epDwDbQY6IapykO^N%(1KN~EmT|A`{x~9oBaHkmULonr{8qB2xJq0Ty zJr5@Yr4WInaZE$dIIciaBkG1rsmF%}H$#4XTje!-Fgq+L14@^id0Nm69#5Ctg6SKl gUcSBZlrvvQ|GJ#&F*fob9Y=BGVVcg{kL{=b0diTf>;M1& diff --git a/build/modules/connection.o b/build/modules/connection.o index 8c1a3041070f885d8b847af75cb1718f93a3077e..dcd83527166c26d44254aca41aa1aeee444c527d 100644 GIT binary patch delta 7559 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 F{12*nP>28k diff --git a/build/modules/daemon.o b/build/modules/daemon.o index d372df36c6fa915e6d86b501c6b70b59ecaaac98..5336d71c9689ada6175fa3275b64ceb5abae316e 100644 GIT binary patch delta 1706 zcmZ9MZD`GL6vyw`E^AA;p3cr*V7qs_&;Q@O9yU*5X}E7_q&%bA~9CB{daeld!45t6nxa@c$M32-F11|6dhlVWrXc ztKMex0ffSiuAnu{REce2M|J28I}!C?H2zB%39~d;mgQT94uB$D@i&ONh$me-^e1DQ zgU$%cO>Obl(1+-caNW#FWjRFUr@!9!Af81$x`0xI=@qIQ9R;wou|wLl;F>8oi$WvI z6WwOW&>I+STt{;eZ*sCtJ5;IHkKB!X(>mFy<1RP!5k{IE6+lr(tC5YeywHqZbs{XwG49ifAvh39vKA75jC`DO*D;+mNTdU|FkuYYlyk{shZqeXS#g_Mwn--(WnSHFvwwYjoc(qn|-{(oqV9B-25>OgdSpogWxy4?-!X zX^5wsOz3U@7|%lFQ=IEjb(&`Sck`TCy19o(Po3({RoEN-E1 O$TqK{*@OA!ee@5|EX@@F delta 1732 zcmZ9MU1-y16vlhf)KVR4igG-9F>BK1qs{+K*lcNq&MNAHPWvGnD?%G2bsuaY)`DJm zQHzBlOzJ~-vm2#|;>Buh9SG}1h8DaSBfaQk!?Ai{6-5Z5MRp@B=YMkoA^e};^FGfx zZ$cjBALVbqtpCt`mH#g1Mo#73(cGDRx$O7D-KX>4N57&g z%oN6#VMiU92s>$4{}tn(M=8wmxwhOibO99Mz>XShk9d+>SE2tHQ!BC&mPL*D&(LK| zMtJ*2H5ECei~H+ssKIX$kA6lu!t?@ljgEGry>UQtdf=KlFpk+qmdCoyJwxwfrSTAT zBHrZWoF>$&*RQ;QLen8RujB49^e>c}9F;&(M}tU5S)OW#f8&1646;#{U$kY~fPOW4Wa42je-6P@JVk)p4@c3sFzPwFgjtW}cm3WA#xsHykLd*7c}{L9 zyJtK%(dAekYr>MDAEV$L_2Zi340MwA+R9&?KkWwH;(*cpyX!IfRZz;&-$4Rz@O^5(uyUk=g?-tBIq=Sa7HLR;nvt*7Wc D?1k49 diff --git a/build/modules/dynamicVectors.o b/build/modules/dynamicVectors.o index 8c121dc7c564e60d0e74c9e6e7c300f1210abc5b..e5a967bdb5740f9c54ee262f840907030b2a47ff 100644 GIT binary patch delta 1323 zcmZ9KPe@c@6vf~5UnoKv!S!>}8iH#6IN!YIjA24LU=6mYToeRl3>D#Q%63{U1UK5E z?0``%L?WSG<1ETWq+npsLMh2I2#IRZq9zcMAYz<5Sodw-jMwcX3%_qWY8uXFFE?~l(^F&uwz9L_*?0_6EqpuJK@X7#vg?%=+J)Y5k_M3pGgaVa*wPWKhpjnZQW!F&PHjV?iA}PsKwl|( z6n#x>P6+*?=xIzeu{kHykqN~1^wBB`-ua#H+;cDQt*`VN-7vDw>br`iVw-@YLd$rw(>&U+!jWtU=|G?J)H<%G$d$l3g_E?Zazd9s0eE z&iTp`NR)2Y0n4)LEz3GqQ4-Dx{T|X@qpo1V8+Q*@mEeT%Y;oqa&}%E<`Yt<1d2B`C zsp^vOL+Be=^pX06RbO27pv_PE0y}NqRk^eW1AbC{81~2246=Sw?Re)m>Kb1RRLFk+L6AZ;6+U{=NZ zD0j$U*(N>9v_;TOD90!VjzjtZpU;BuJVnwWWh3Pny~{bjg=ZU!4(UdwC;2-qcNj#$ zF=`iWE~zneyT#{WH?DS(bxF_j)RLHbfpwSE7IxhIbsK6*KS??H3}T(dw2@BI+nf^@ zo+xHI_q(M8eTn701QjBch7Rqo^;I~dNQOvVMd}}qr}qCoPp}v&_9=u&M|nS&gy#?1 z!bW8<5GK9Kou`Cn660Y~J-8n>PKM9=qwqBI?02CLVyBp&>*zXLtsWy4Ii;e=Mtaq7 Jt`Hege*q)Ox{m+= diff --git a/build/modules/fileManagement.o b/build/modules/fileManagement.o index 2dde5a0d3aad9fb02f14c56c28ff8eaaf5796203..b36c195d45bc106bf43efa71dbc90551d7ceaeb7 100644 GIT binary patch delta 3625 zcmZ9Pe`wTo7{|Y#O{X(cPtwQ7)S8qQ#6DcpOlaCsY)-=1DsR8H+wJ$}b|+X(`r!@5 zAQG=PqbdIAEJ;htYtm9GT&b{-bP4_-Q?ImAbac(1WD)D0Q}^tjaqrjj`+4rm_ikJ@ zH?Epp?yRo-tet6aXFXtS*FSTAN$onDy=@XdKiv8M&z1P+jB*@jwBtB45LrwqvqoU= z;vCZs<0XD^kU5SsPnj-)+e^H9SVDeI(JAnGiO-Ep$Ua3o5cU%LO+pST8byzn_y=zZ#K{yA&-%ej)K=LVFdxh)^N%BPj_vrsxht3yDWc-s_6) zLadPZn)ptT&XQxD0#}hWN8u?VZW8vivRQ**5pg6v5x7v%XAvnPUY(Yp0YyFND~AT$6{eVYjL?XpGvO{Ko+b24MGwGNOzfAgk0`na;bO`=FE{XqqL*bxSCrl&7v)IK ziHs8BaS|(8Z_<~LUqaj=85b$vV+fTHXNqsVqJ(G(@n_OSyQ1$S zRzjR3z8e&s4Oc1U&6GR;LeX1N&v#0nDY=d){Um~=#A{>%7ZvS5q?CAr&|$KZt3o5--9vrVL{nB8Oj)U9^7mt)4JC)4_1S^OSNyez62N9_t9w)xNiY`K5 z1@Q#wE~e;HFqOoWqK=VXlXFXfyOQ`NseFc_-@;c(d_k(3r|5QsD~Vg=3>Pc<1bQlo zSBP(mqH7VaBy$AmzFhM!@_l4ZqrsPJzDCqXTq0L=U3tww%xBFixT=UhlwHr149Sj$ z!Ba(iOm;M1(aQ){(c>@3th|cel+S*pUrNE=s!U!fWpyh20F0lwNJjjrqQAoJC+?6D z?^kpHK0om$iF``YPK5o$W2MzAif%=ZpZJiR#Z<|V9K;C3{ltwzvlPunMm4dOn)4L> z1o_p(3uR0%E4l!oYT|uT)fzI{|J#9;^{))R`d+|YKRA94%-z4OszE$xNFI@A+Of*0zQ?2WmY2zw^KWGtK(L;8zszLvJwr2gBT{e87WCB0Rl=5w?)Sl%bM6jwGg&~sM=*Wg>`UA?bByn##!(i<(GkqGU|<{jiW zS_6a{$xOkzM$6f<%>iZk3}TIB9NcWQ{E%#F*1bbBw!zaxoP4V+P;?Z6O~f~4ngK-* zAksu;2lh1GiQlbkcEU81=?6Dku95Aej2T+PZ1|dq56ClNx}q5fHxn2N7LDw|C@Gv>UM{*5ts| zLhP064Jn%w@U)OwhN2eBIg;gsvT-5OLhh6D9K5DzzszL#xS_RqaiPVU6W~_M$K_V5 zmCZ!>TCF*ba4Yddsc^fpIgOrH>%JjbPAGa_yna`@MMl7;+(<=1Ak(ZvC}7P3L<3|- zqc>p9I@}CcULYs6S$=X2ejL2s*Wd{beieg3nw%mBaYotvX|N@jX?CM8NM-;Rg4VrR m!qto)I*E%CV!6_Xb>%HRoMzI%ZF9^ndb!%KEk>H delta 3623 zcmZXXd2Ew)7{~kDg+mw=g@*_6*rK4u?4^J~BG){qGl&_&?r!Uj?mmh}9YnE!!32Vq zuLMvziX@0JNLi3WMe87f5MjmuF$h#e9U@xJ5f#kr^8$O^KTE%#=l(svw{N>Hn63+E zlWP=?jlHvN#HfuaZCA%e6WflD-!Pb)lO6y4IphBvy&VomABV#+8KGQCSm3~p+{tDw zOdjzw-OS-|Oi-pxaODxNPm0S^6dea|9`TPi#bvLeTM*16o@e5+U(rp7)FzM_vJR6x8wB~DuuorI18;%!p- zYl`lMDJ0Gm8dB5^S0V9qq1zNa32!0sJn8G8qT3KGr0ir_re789E1%CRy-_yGAvx_S zjYO=F*eg8_QFIy7i-<=^tkH@NLQWC!7CDuvie5yZhmq5cCl57drQUG~yxtO47fj=w`$` z#1~|_k14tw=_O=FU~GxSTZIjl5!vne5GWx&Dud2cbSA@xA;QCUFzgs(&KVv^EUjY#HXc_u%f#WDkbhGzIzpY3LT}y4@!4Y zMT=p|h+h#kO^(=}TLxTZ#M7nnVTwlJEhA19IziF*5G*5JENhsnXf7gU#A~FZCPg

6OG!OU>DezK@(r z;yM}A^NQ9WP)YomRJB;qF$h;$=5a(TiC>rOJC)5MIID)(IIES-9C&NVgwa}S@d??bn6jCS$PE#k-EWyU^gai%S~9bdT4(W9i7;2$EJ9A5 zWtJdNN9H!HsI%B3TYXMhRv=nO<}O^Wv-mMN@zH&IW?X@+dgAqQ(J@WY`{A!A?viP? zD7p)wdNTX5z5aUqt;*&Dm}|2kc3f_;*exryT7GhMf9&4g*~s#DUq!#4hGfV>99K5|6R_5wY1+`?Cvz5^ re#^B=!c`6EIf>q~akG@3*p@x>K#EBQw~jF%BBynt`K~S4T5bLXXidW2 diff --git a/build/modules/ftpCommandElaborate.o b/build/modules/ftpCommandElaborate.o index dd1b2f67a7bb288f9ecd83860b14b05769e2f5e3..fe2b698f09fc9ec9d43a583e59556988bd02bc26 100644 GIT binary patch delta 16064 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 delta 16258 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 diff --git a/build/modules/ftpData.o b/build/modules/ftpData.o index edbf6e81a7624047aadc4f2c5476feac35e2e302..d351da7a41767230eeae20ad204d2e9a29473790 100644 GIT binary patch delta 2145 zcmZ8hZETZO80{HMC||BPyxb7O7D2OD#+>6V$81ru!WhlQE22*DwdHK>FH0}~TLG@994&EEIVecN;HdCq;F z^WIyRQ|??&39ZJnBWv0>@v+S-p?G@JyQ8mfK54(t_U|(~Z@c>;nRkEU*RsT7TVS)< z7TRpK11vabVhN)M1#WTjpeet8AVK-a!raB&A_H3(DN@+VSdo&SYvvgXa~&PU0*kn& z*hDo0#ReKUQLM0$@ESP59It^PhP?_m8TAUh!bz_}9_=Lx6U;7A^4CQPNtu#ZlWyIubiC&7G}qkIpiI zo6IRws9<54!fPBTQ*vKgg10SoHb0%yWkU9)C;lz7pkvG|7ys?;v7qV9Ef?tHo^pi) zjFg-5fF92Z9fV{PJLsrTxJq}0iEHex@W{5AB-m`W8y4m@IxB@dsfV#(UV@d>>108r z!W#@%&h%%pQppQCWF;163p1+(jxoE+l)vlKowaaobEHbh-?YN_7W5Y5RYHEHCw1F` z7SIt;_>k^^!Z+L>Fz_kI0t%aXJ)mT(?snu71=Rviu&`RmSM*8GT9|J# zS}pJhC#w}awAU!4F}ub<7kxDfFLR_u$f+d>^)2?-V5Y&g|3A?cET}VNOn2rv3;HCZbtXEQSub#h+4TnI(pPWDlS>mSXDs|w#_JV! z&=FKvM0ZfY&HSK&r`a70VjrC$0l}P*fii|e3Ue3@3E8BlwlSFneSPfYbV$f_?c8fY z{mcvtc~$4I#e()RH*DYqM#4(&)Tg^*;ap%mtl+1kLE%Tb8w6fteuF}Yfd&J1PBaMY z<@E*wU(iW`V&>4mIK%A6Ic7I1`KorlE!kb|JValk!a9yL3i++BT4&+xX1q~hijF3M z8(h<*aE19z9t?4!NyrX;u2tH5Qh6!SETmUw^?3_gL}#;@xdfXPHn6bSKo+CT3K^Vk zR>)>%i;z>=&sEFb8_aD{I7MHJiA#*P2(0Jb7A4=)3E!pHq>~1^TMgV{pw+-RPP7_w zSf}DA3v-aph=P{|5kvl|t8UPlO{yJdG$QZ^CnNn>Mqiu2ql~l#<@@>up0Bl&{5-nb z1)gGlyD^jSc7armwJVvad3!B7bBf^(fr}jI zFyP{Jhlxz)9u8uP@xuyh={Vw%S-Q6iwMNqIZgw9rWI#{tEerZE(W&qYot*}XSlAiF zIoi8s-gCQ5v~Z+Lp_uV54~m%IZ6b?f-5w0n*`wfOLC;J|3wxBz)4Hi*_BUR{Xpg`$ zPWCA5r~T+f{KfcD6Mb~|8d%Ffufmrc>kZ-q=JfSrEvNfD80Vg2CdNl&$No;i^3m9U z3rM5=#3_8o*ohL%XU?F3I)(?I!4HfLx>D@h>DcigGlo_pjX6UuWH2z~!g9ujTnN$r QiOXK~al+a#9miMx19V{L0RR91 delta 2187 zcmZ8ieQZ-z9PJs1Oh8r{TrY{iVS-K)FEcSZf{ae_WhzJmfeaI$#Y~x?I0iJ!KFdD4 zudbZ2t!`}V7%YPgY^FxhfWtooX95+GEJ5cm5*HG1m3?zMj9W&t0Up?szXp?S5y6TAQ;gGspFQ{<@tz-pzSySH9Z)(uQ?I zYc_nDIF$6pszHi79tbUa44kdv=t!Bq5%EcQ$)UpTZ1=OBG%u$^^cpEHhEaf-;52 z*k9(xHl}#oa>avDQ*&CpL_R|v6WO%yHF1D>dxhMr6T4|)o?&pWAx|eo?H5mv*BK$o z4OuZS`u24TT1Qv88+9BlH_*tG3L)=26lLDDFt5{Dp-@Rrg~H1WRVZxdc!iMjbW~gK zi}%}0d!>+{=|;9%(Cu_o-m@LFpuNniRM^R2rHP$Hl|VaXmBJNfRhhWT{wg;Lm{Kj| zRh{+i8S&mv&{-|e$=qs%wG31nIL+~Dg&%0I5wc}YlwEs&yj3L~H75RIutvz6x-aJ~ zoIe?^5%Pxi`@04Gn(zv|N$FK^Gs~;+9Sgh$j&azlu%44%g;u823d~`8t&(@NPT$P< zNEAJ_3I;>9LT=EJT(WSMaJ*Jw5AAgdbLprv&_!>ZlB;!guO`N8jxk&(W`GhQ-YfRg(@H1We-LhWSROl#TI_;d?FQi>pCe4BtGo?ky zLaqCX1wBG%i^2=^v=~U`*%pOGoN7_>Io+d67XBC=tpeAW-Kx+@Z>uRsb#^PX|5#Kj zh&F|MrnL$9nbl_C7X57o&T+KOz;UJo1dcL2pis=*fPudm3JBS+)n3zQOl^wefj*h6 zC;uZ0`XqxN`ml>>?LuzSk4DS<-o$6NB0s`VkC25r&SVkKN#=Nu!Uwb;yo7%^anM9Bvw96IrN39<6o-3#*iGl5 zJ}l+bAvZ>tci6!c%^9&y?g^kVu1N96HJd2+g9>|EGgOR&) aFarRQ_xg3c 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 delta 13593 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 E0XUcB^8f$< delta 1941 zcmZ9NQD{?l6vlgMwXFqNba*&@DP?M!G|9g=X_6|mT8dmU*i2uhL)66wi$!JK#z2K? z)Ca5B(S9HlMJ?N8j8Uy+6l6@w*s9yZ2nB~@sNGwHi50<3amaSheK~>4h41(M&-u>z zU&!g<)5F&X*Wj+S%I7 z2wpWSYl0_I7YIe8_hBUJ({WUy?78{?9ygxmWr1+c=q->o=N-^fHw+Ck3e=!~N<&4fdZs;r`ah9}B{f(iI(HnPk z6hm>AA9Rrqjpq?2<19uug^z)i0W%Tv%+F4F5532PU z+J#a(7q)AXorX4P%>kqTrPZz){R-yVSsv-BSwp|XQoAn~l|C^vh5iIft|KSEYI{dONL%SB*fy`TBrK3(N{MH_juCi1uUgl z?rQE!hJKG$$5K{x%Fz4hcPy*4<4r@)qU@MHz=U&hOuL6S9L{?bi;g|kNo(~ULRzn> zRvCQ|u@2u`t>1Hxp}X|d+eZHrlN~IdYs$Tb&Z5%6vP)+8=cG+%`Pz8i zL&;<6!C`MtVM^Ik<7v_QuZ(_G^#h;L(0c9ovC&7-nDwa#{aKbNJ$ub~ z#!=2PjbI|{WI^Y8U_6_!m}SXo@|EFR|I6+pl4JS;v7Bq(sk_}~JhjX4QEoRapps*n zM>Xfu0=&F0RgKl9pH^7(F~;(as+i0B^!H3-SIcr5MXWnd=TYk3Omj1n-2?O*9-`tr diff --git a/build/modules/signals.o b/build/modules/signals.o index 510666823c8e4564eef1c1a45e697fadad6e6635..a5f5a547c83b81620b630d645497399196ed9daf 100644 GIT binary patch delta 831 zcmZ9KKWGzS7{k4?%P>+KPIsr$a%+Bj6$~Ef!0WAQcy< zK%T`x3SF$=(sB+iVlqi^G2oC-qg;!aJ z{5YJtN%4p58pVsb@8fg>9&7I~rH-DNie+@dY4 z<~4tj*|ss;#&$lS&lu(d`ij%G=Eu_Z*GT$k*qU0{uzh|aZF7`_Mw=W**Vg=28ZH_3 z1%BI_ejrl_=o7+%rZ>1-i0CqUh3HX6IuDGgtnjq7j?U7;a|SO8cMM(?zF_eAv7~Uu?u%_3wuwDQb6sp~*gF_F0XK#IG;AG9u1`&@x|-^E>P9rg&|Rl1 zXm}AFpz8(HL#7naKEl#E?VwkRER{yBe47`f?9}-G|3U}bWzA>BUN!75^vjx`i+yO= tT~MWkkL3wGtISaz-AY8A*sH!9BNv1Db2JUEU9`^UuzB)Cyi&VH{{SbBlN)gFo zaSHYyTomabx(Jpx>0p~hEG{}Jc1ouf3RMTqA_{#cgZD0n`+xuW&*5^n=eFlw*Hh7A z>IR{na-xsvyA(}jx`R}Q%i8UoP{(I9F6xw0YDg*dR&>VnxW)osq3hUWpU$JpZF-7k zR`WOUtQ);eY-9s^gM(~9ySQL$%<{?M--c@v^R}itSh0P+B}o$$oBCUvM#t9t#ER9c z27Qhnwx&HKa{)!DV zINla7^22;jSYUXP_?-8xJquQ0iPo@E@cF02eK)K5 z7&MQXqxrq`E*kV5T8`#VLe~x2z^0?QDl{_a47yIh{dtE5tzx?9Qv=PSrYas5L)ynd zahW{KyCHo+#|`KulBIx-P%ACd1MHMS>u&;;@=YF+u*t#y|H3nDly!1c=ry!Fjj!c2 uuZps2_}d__O|S6C^NG>%LfVSl@vQ_o=$^eqX>euAx|~7l%viKgnWcY+%YHln diff --git a/build/uFTP b/build/uFTP index ebbb7f917334a2a80ab9bd9a4cc03094b2207278..ff590c429fa186864c8a5fb0a5abc8cfbfa27e53 100755 GIT binary patch delta 64726 zcmbq+2UJv7_wPQJGKDfj8G0E&tf*M9L{Ti5iDK^^6?->WqmGKG<2VW)^`a76>@|@j z8e_o{A!;nKcas>uQLKqAiOzXzpEGwD^Z(v|t+yU)#k zV$83yMcZIJ0sLt&KL5tyzy`gXCD)T~CpUt()mU`pSnbfU$p!jVEx-C+{mFs%!9@j9 zud15uY62#kUmZ35Cy7Z-4;8(uUg#rbyrZicc9*{Yr|8dy4G1|$lNzm*QvNO~Y1Gg| z@_a+3ruU^*uZ!$Wy@=%Zs_0o-3nE3nq;;EDCV$et&11>)q8ZH-2zg$#zJ*4T;04{8 z-hy1F&(pg|Tb|Qaty)Npo)=kLwUEf2qI0J2iB!9cE^56%DtJUg+FT$%Pih@P+##e|e`H^m04(W+Wlc@C)VWyU;gqjo zvZZ_~MA-*t?l zX`M90L0fk!BJHT7QoZoLtnjv!3X-{RUw5luU!pn`~Z% zzZLcCve}c|DDvw0F_D(urtNyYBgbf)-Vv&Ew*c(T8P)fxM>q72mFO*cymvKe@h$qi zcR0C2wS9U^Yj4q^eX2#Rx~2Hrp_DO`HFsPYVzYEzCxVy~3xoUB3!(CKuee zlZ=%`o2lm@Zc*B=k~HBKJ=m|Q=DGe-yb(duBG3cHX3`GEGqnZz_SpiGKxffjTn#OLK10 z{sS6G18>s80pZfdn{?lR0aCAvWJCTj$E^SC{FoVc`wdxg?^5#Fs7!>S7VW zDs{2uU8as<;caKSBu;jmzG4gUz)^Lfa=3N4? zM>V0NN3^X_oDN`}c%S!Nn_to;9216i_^_0Se!PAyy)z;qCPuIf?yO;Jaa_F2neme9 zr?iRx=^}tVEERRr-pWRHgS%Y}b zAI=ANr-Fs#S$D}eAz7AL?z^85+u|duGt!W8ojn7Tf^A%9vWosPuA1*4p<*A>l*>ial<{Xn z#+>DFK|i^{4Jn}E6TS_Zfps>+$7kGFt7Q87gjONl1gq?{8>@*-n|*rDC-;ofYk#KW zvW>J+c2%kM89Fq3iLvA~z$cdTCY#?4RJ0kcyXy~MPU8xUbmqjskV3&e`=c9tTseD` zV9#@BUti|bR@3Au)x6uB2C!Qwn`o4(o~Ch=n#D?|0h)2+|D58+z1)qzr?V$jAXn+; zNzDgMKcz@c6q06qD7|(vK=}M=z)A2Ja)U=e?XYXOmlK$A5{+Nq+xI`9g zXUt?v^>tNDMx7cV^LKFtlP&d9i2_##Sy6P)58gC?+UV*#d!e((4)YZ^aVMA0neiC1 zqZKoWF4al2+GnwzS9UQ*b*qhZ%xBf4(vx)cXX(0m?iu-Q8-4cK1byg9fWx3y?9QU& zr*~0(&n=vw>!!!kr_;46`*yU5

%+1-pw{d39j1%0Q6Fh49go0?_Ob^V6 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 Rt>^{%;?Js}8TisRF)z#fK-S0W?IT*s2 zR_7g@85hR2IzgQNh9^Qq6I&e@v&w~8t;E$LENOKvN1KgU6jru6AJpR{HsOk`ZFS(QTe%sHwzoRlP;Uz^!0uM(dw;|O zM%p_SV|?xU5+eKSIFT8s-1bo^QFs&TzJrDoz7I!c91P!!-gn?T#0+o3DKTE?{D?D> z?S}ItrcQPkP8HTT*`u7Z^VJqAQc>F@s(kmCr9}3XRYYb(<@+<@MBySFWj7#&|Ai)d zfX(okxSv15sAAzBxC$R%94AUR$6*RT!N5~NX9I@*>2KmNt2p1`{60Ijn5ZG-U@5Kq z{4_j4A?H1`@y~tG=n;7aUG3dhN>ttG-~6D_%|lJ&m&UVjhs}OA+TD`k@{3&FJvy_u zg2=d-KYIh&Z%1cNFYZ*{KRR=Hgvgj}V03}(*3&cVDv6A?TzNvKFWS$^mCwz*SWaYI znk&!rGNVB*{VKPits5>xrZP%o#1+mzko|ddrl50q{^^GwXiD)al~WGwV*nmC(iYGwWJ#%E+zq?DWg{Y3FZU(LdOz70OH9=$?b1<7Uh}h$k`zor)^>vKgOh3$%w!fGIHG3et z$g4XN6EGCZDx3OyUg}35H8N>Fw}Wu1Dm$h-e!Pu?FqJAhvM%W#|EN(_H4nE@Q;wR_ zrg1XbyI<_jd(@~pl^LulwlG-t!Q+RB5S$o)aLfPi7%b3M>_RlT!-Yt}XdU=H`c^GA zQQ#(VEK;yZ2iBrcXu>ZzM^OP6nyc{@_7r|2*g_aIVXI;bVX#OnfYH}PD z6BSzEUQ9Ak-wYkR0F_R%i9&~<8wwjY_~zqAT~y50-@$JsJiwaEdb7DT>w?!zaodVEl@$)+O+XGGTG9B}$pg#^g-S z=Iww&q?yaXS;6G|&T3<@2dAh~I7OL5jB5i#rQ3m91jAxr9>q8U8+3R9+D70d6<){? z%v$&whVYUqVlSzp4Mg-sfGAF(U1$Kdt;oifvV(0Rqy7=x14Q&I|E4vDW6bj(U1QW3 zb^hCHjPAnlUYwTaqv<@UnL%zU5H#SsJNt+HXZMf*XkAqYlXTuwBu1p5BhJyf0noat z5gs7ge;>ierbPlpV zM*y5*K|j1U7R@ghl!Pn5d;X7W4aWmJSTIz9;9+*Ku=RB81v^+c3Xm+YgN3I7n`D~( zVRZmGSU4Im!sKA#?6=SgKe;NQZPSknUF-@;WF z1A=rbss_OvVbZP0T@@g*K)MxmyM}q^07$o@wu`_#$BN$i07C)kRy}ERb$RU;iGinbw^c)VHW^5WrudSGY+x_BFtk+hYSJOGASg$SZWmLM!pSMo0*Op`ax{zpLDb{PNj(w6AmtwuP zdK=GSy)MOiZS~>8vQn(qR$nfxEX8_lHFM#iQmofje*;c?YfG_STLMfV~XG{WZe!(7W`SQ<>%rD(enLcpD_lXfTcTu zrP~@}{H~BFfu-AO5sanVI*M@&OLueu+Okn3x{x83?&viPSNX3#qm3fP_FvHz{7Fh` zR0+6O6En_UC9&=d;Z+jr&kG5>N@9mHgjY#y5MTjnof67FY3vJ9y7VYC!|OunGH!s^ zh0@!xPBIN!>fOaP@V-#`0N23pf9Zp$Q2`b>iHks{`8!x!LCnSn!;L1q0v;M5W>X+$ zv4~EF21W4MlT_{ijByCxNVhobD ztXwci+Oj6WAZg1E6AY5JY=~fxv}LV=LDH6;As8fW*_nbt(w2=C434(U8z%*jv}NN3 zgQP8+Bp4)Z*<`^WY0IVv21#3Xj$n|qW#ov@q%E5v7$j}tDZwCV6YCf=Nn8E}CWuMe^1Tc}(w2YA5F~B+&kRA*RK+>ixnGle)sfb{Z zw5ejjAZb&jfIzli=+SHMP zLDHrM3kFG>8ZHdN#l(430LnKJZ`&j5BMQHwRg|HJdfFPmY;syehc zhQj=>J#acKec*rX!*O`B!2jBVumYJ@wSVXfn*X(1Y9W7O{?|VGF|@*`oP8{6k_G

-PXoT#0{?4|2A*Sq|Fy?V(){ni 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 pclients[%d].workerData.workerThread = %d",socketId, (int)data->clients[socketId].workerData.workerThread); + printf("\n data->clients[%d].workerData.workerThread = %d",socketId, (int)data->clients[socketId].workerData.workerThread); - if (data->clients[socketId].workerData.threadIsAlive == 1) - { - returnCode = pthread_cancel(data->clients[socketId].workerData.workerThread); - } - + //if (data->clients[socketId].workerData.threadIsAlive == 1) + // { + + returnCode = pthread_cancel(data->clients[socketId].workerData.workerThread); + printf("\npasv pthread_cancel = %d", returnCode); + //} + printf("\npasv join "); returnCode = pthread_join(data->clients[socketId].workerData.workerThread, &pReturn); + printf("\npasv join ok"); data->clients[socketId].workerData.passiveModeOn = 1; data->clients[socketId].workerData.activeModeOn = 0; returnCode = pthread_create(&data->clients[socketId].workerData.workerThread, NULL, connectionWorkerHandle, (void *) &data->clients[socketId].clientProgressiveNumber); diff --git a/ftpServer.c b/ftpServer.c index 8c22a79..d40c729 100644 --- a/ftpServer.c +++ b/ftpServer.c @@ -55,6 +55,8 @@ void workerCleanup(void *socketId) int theSocketId = *(int *)socketId; int returnCode = 0; + printf("\nWorker %d cleanup", theSocketId); + #ifdef OPENSSL_ENABLED if (ftpData.clients[theSocketId].dataChannelIsTls == 1) { @@ -62,7 +64,7 @@ void workerCleanup(void *socketId) { printf("\nSSL worker Shutdown 1"); returnCode = SSL_shutdown(ftpData.clients[theSocketId].workerData.serverSsl); - printf(" return code : %d", returnCode); + printf("\nnSSL worker Shutdown 1 return code : %d", returnCode); if (returnCode < 0) { @@ -70,7 +72,9 @@ void workerCleanup(void *socketId) } else if (returnCode == 0) { + printf("\nSSL worker Shutdown 2"); returnCode = SSL_shutdown(ftpData.clients[theSocketId].workerData.serverSsl); + printf("\nnSSL worker Shutdown 2 return code : %d", returnCode); if (returnCode <= 0) { @@ -107,6 +111,7 @@ void workerCleanup(void *socketId) close(ftpData.clients[theSocketId].workerData.socketConnection); close(ftpData.clients[theSocketId].workerData.passiveListeningSocket); resetWorkerData(&ftpData, theSocketId, 0); + printf("\nWorker cleaned!"); } void *connectionWorkerHandle(void * socketId) @@ -248,7 +253,7 @@ void *connectionWorkerHandle(void * socketId) if (ftpData.clients[theSocketId].workerData.socketIsConnected > 0) { - printf("\nWorker is waiting for commands!"); + printf("\nWorker %d is waiting for commands!", theSocketId); //Conditional lock on thread actions pthread_mutex_lock(&ftpData.clients[theSocketId].workerData.conditionMutex); while (ftpData.clients[theSocketId].workerData.commandReceived == 0) @@ -257,6 +262,8 @@ void *connectionWorkerHandle(void * socketId) } pthread_mutex_unlock(&ftpData.clients[theSocketId].workerData.conditionMutex); + printf("\nWorker %d unlocked", theSocketId); + if (ftpData.clients[theSocketId].workerData.commandReceived == 1 && compareStringCaseInsensitive(ftpData.clients[theSocketId].workerData.theCommandReceived, "STOR", strlen("STOR")) == 1 && ftpData.clients[theSocketId].fileToStor.textLen > 0) diff --git a/library/connection.c b/library/connection.c index eb31065..165b12d 100644 --- a/library/connection.c +++ b/library/connection.c @@ -233,11 +233,11 @@ int socketWorkerPrintf(ftpDataType * ftpData, int clientId, const char *__restri #ifdef OPENSSL_ENABLED if (ftpData->clients[clientId].workerData.passiveModeOn == 1){ theReturnCode = SSL_write(ftpData->clients[clientId].workerData.serverSsl, theBuffer, theStringSize); - printf("passive: %s", theBuffer); + printf("%s", theBuffer); } else if (ftpData->clients[clientId].workerData.activeModeOn == 1){ theReturnCode = SSL_write(ftpData->clients[clientId].workerData.clientSsl, theBuffer, theStringSize); - printf("Active: %s", theBuffer); + printf("%s", theBuffer); } #endif } diff --git a/testNotes.txt b/testNotes.txt index c1e19a2..95e9809 100644 --- a/testNotes.txt +++ b/testNotes.txt @@ -1,8 +1,19 @@ #NOTES ONLY FOR DEVELOPERS #OPENSSL TEST COMMANDS + +#Required packages to compile +sudo apt-get install libssl-dev + + +#Remove password from a certificate +openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 +openssl rsa -in key.pem -out newkey.pem + + +#Testing ssl openssl s_client -starttls ftp -connect 192.168.1.237:21 sudo openssl s_server -key key.pem -cert cert.pem -accept 123 - +openssl s_client -connect 127.0.0.1:49473 USER username PASS password PROT P diff --git a/uftpd.cfg b/uftpd.cfg index aac0155..88679c1 100644 --- a/uftpd.cfg +++ b/uftpd.cfg @@ -10,7 +10,7 @@ MAXIMUM_ALLOWED_FTP_CONNECTION = 30 FTP_PORT = 21 #TCP/IP PORT SETTINGS (DEFAULT 21) -SINGLE_INSTANCE = true +SINGLE_INSTANCE = false #Allow only one server instance (true or false) DAEMON_MODE = false