From 27fd4a01343a00d1a920f4b0cf0cc6779f2f3189 Mon Sep 17 00:00:00 2001 From: lxsang Date: Tue, 24 Nov 2015 17:58:32 +0100 Subject: [PATCH] Fix bugs + inprovement --- .gitignore | 1 + build/httpd | Bin 49780 -> 44860 bytes .../httpd.dSYM/Contents/Resources/DWARF/httpd | Bin 44414 -> 42973 bytes build/plugins/dummy.dylib | Bin 43012 -> 43252 bytes build/plugins/fileman.dylib | Bin 43164 -> 47524 bytes build/plugins/pluginsman.dylib | Bin 42668 -> 42916 bytes http_server.c | 2 +- plugin_manager.c | 4 +- plugins/dictionary.c | 101 ++---- plugins/dictionary.h | 51 +-- plugins/fileman/fileman.c | 6 +- plugins/fileman/fileman.c.o | Bin 15536 -> 15304 bytes plugins/list.c | 317 +++++++++++------- plugins/list.h | 110 +++--- plugins/plugin.c | 65 ++-- plugins/plugin.h | 22 +- plugins/pluginsman/pluginsman.c.o | Bin 10404 -> 10300 bytes plugins/utils.c | 32 +- plugins/utils.h | 43 ++- 19 files changed, 452 insertions(+), 302 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8862c08 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.[oa] diff --git a/build/httpd b/build/httpd index e7d5ab81f6bf8f253ca3062ce6e748ba937df393..c6799778cf46ec20a585e4437c79185368a7ddee 100755 GIT binary patch delta 17471 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�ce-7&2KpEXo=EWHmLP4qT8mM7zF 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 AD*ylh literal 44414 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 S@$og1o~^|6_eaA%VEjMMLv^hH literal 43012 zcmeHwdw7)9wf8%LKtSolR$FSd&Y_@q0fKE573^>s9ohsU5NfqJ3CV;6a~U%e1Z^~_ z8O=D3rmZN)R-4n7O1<=?r=XDv9gsut9<7(udP%*$V`-Zz)o7`Fzu($>&%85HaHO8{6ad_Q$y$D3DLWC^q^LW?iSymvh z!gt{ciOO~=vO!D3;A!RKrOzi2hy>S1R9L~;{5(ghv|pUBe8OWh=mgrFU?32Vw5$%N zqjKeYV!29M=~6yn9h8Uy&5vc~qxc1CgY}_cv%uN%O)VER>uabBK7@5pMU0TIDjaF9 zYh0sJN7P^AH&jAISCD}xOP?WWr0pYCj<}eNfg0+E~=E{bkO339G()_wK9pQf_AN6hk4HgJ2n!jSc zBeMz}R_bXPebeeH`bNIgJwAazV|^gJp<#7XeIOKR{#bs79r-!sqJEr3M*0Z^)-+{W zVWfP86$-IH;}g#1caBb@7YNi>{xkU|gPzYmt-OSt{HQ*2iJ+fApt>?rX`qqv4eB(H zMj@Ql&oZPEqTV$$G&P#&5$&;BrA#*n@SXB$vD2w+S3llBpk(oqulp7)HZ~=sQM}sM z@Yp#DW;va_CIM#BrXws1e^wb@K4A#PmtFc1_|Enf1c$Tf zHp^;pz$W+w1ej0no^1~|hh{(Bd&ixB{B8fAFP)0GLLwb8(Xu8^v`#TF zR?FIgcY-ymCEPp<#pWBntiCQ1{Bl-3jHKIvQoFL~mTw40f(Bj1RUq~gA-;tCNrXm_Z%7RDuxStm&g zCi~lEuI29d3~I}t$X_Y(zJVUgA1@s^bd>*^Jw>Y?s;Q}&={})DDpbqo1@den$LIKC zzCrs`vPVAt_|*l77_g635d(f#pTE5iL!A}-AXa+NU*$XK-!%yF`|R(Y51PK+hw%6l z^IpTm1e8PmIN!^`rO!UbiBY_Z7$~zpeg+Wx?Z2J}I8i+LYZ*37jrsQ3&oM~>N&8`p zy@<6LVUH!tIDl*Rcu}%0U7kWP`t4!}*?KVEdeHu?R7desh#|F*{PA+M#oivv79y!V_X&c(+~2-`7}9qn-6!uD{0NLs z-qtVPy-D#l_lS3Uw|E=7#7ne^7Y)IS?Wl)a5=&Hw7rhXkKb9yHZ=+wlZC-fpjGJ&)tn=1s;;@uk(NXy*P=AN!g(c0yYM=262 zY%*~C@r0JFP@s)kzyg7`X*n%{c2L|!@hA)CoBgma_Q>p~{e8QTcBmw=s^1?!{;8#G zkT3XStA-ZEe2>9GB>Q~5D4x~l+e)t__KH7o`;g=xfJUz>^v41PedmuYBF=bD6HDU0 zWJ&D#lGt;lvESLhUI>nf(*As^Qq1?DzpCXy|E@RDTi!=)&H*EPKT%@7E&h2xvD_V< zK!solU%wU(ZR}6%P?=tZOk0uZRRw+LsZ7T)Q*^v7WX;SM$9CC^bhhoS4{|LOi+)8! zPE3dAP8Sc*_?1#)F3rrH(|FDdryc^~OsdY)?_zv-Y_YcSziWr}}#5k&pXE zPO@1S08*byC(cl%+X~yW)!3e6D1xe8l&%{R;zcQ|%6t8;et26^F8lHY?5&I9zO9Sm zrM*7au0^rZUL{+%!ijoVNfXG8EYR$Pe+0VJ60{teX&HL z1hy5B?hVkzRZ?7Hq*D^Z{uz?M-Xb=t)1FH>p1-4%p5;HsH{_0D#lqgnu5~fG=cDs2 z%W2=(UA281M@;FGrvGL-uATZ2c_fOj2fFUZ=){ZA5{SH3McRKOjxfOBFv|Eqd-|D7 zez#D?v+_gwq)hs{(b7L!l$Lj8ZhFz|wz@EstQBz&oo_@sMFXo4q{#7c)_ zt*^&g2IDP*C9%F(%ZstSXvY^(l3#dH_C!l6j&uxEr?MpRNf8kG;}iVnln%S2x_U75 z+1CPlMER8cNA;g8RBYXBiyzxagWVS$fD0+DzUVVL)V_l$qOLccgp}D28w0Jzh$^A9 z??<+1?tQ>bJqNYX3)ZkHb&7diOj z8)Y1-+D3W(u6O)Z+bFL;rbmY7fFYw&%~#d%wT)z2@T!dpH`zvAqI-dYRGee6TY}_ZHT}40J_j^$mbfr&8N1N2gAs>y! zRvvYr?W4wm1+*+B9YqFORd)Mt=OQ5{b>?pu;gGfEj-Eyd67zmdf<*D-@V4K=sCa_4 z1CH;2P>t28HYDg`2nYLSq$v}*aaY@4UGMF3xuf|+LK!So-Fth*5MjcgYdygVvg<*) zo$cXIIIC4PzJ0?#P+zxF{Z)P1(?p0pphOMsTuk}0Ymik1#eE#o=Q7Hd_S*d*|0k7n3v3H2X$!pVccO%uN@BjMqEma3uv3-H=$VwbQSqj7n^Kh{ z3V#qer}{#OqZN&2G%mJ7N{?QhP!kuWd0RjqS4r`0)I~9#qPBHN8buJTllIHl&_j3& zXi}Fts(L%(W6__gs$MP=+U%-kt)i+|18?0t7pZi&y)Ri9ax3>;U zX*;+N1%p0prznIB#Qv(*1DG~*zI*^<)&VnSRT3jne7+Z+o;Islt!?ke7MO`k6mOE| zZN-F_6XijBA5(RXh!}8pe3`i>iVw1jXjWV}{K&xuFos}E{V>zMj`5gRJ0{LK<;9?n zsdszpkSf)Q!hhZ!(gpJiM4nI~r-bN6-^89IxDBU{S6EjmtXHLiLxsRNQ)3{%VLi%> zlAl^1q3$5(kbN~|L?s&yYWsuBec!J15S6=r@i@l258j2YB#J*o$HI7r>@WNqY`5=q zGHY*r{SbL3s^OwBUdOr!3y`t9Pyid{wTa~Jn9bBg@ym*ZR8zdHK>2=_C?6~p$fDaR z&g)X7jr(5Lv#-}vH&OQz#Zwd)`@59unmrz@Ix>$QuZu8(VO_|@5EeB%u!@WMUWc$` z>F!tpR|$$njFk@9%|L)@D+6a_&;W0Hfx;PB97{sJ&z((*Ry*c<#y*M2eLhi8w0=rq zqPS=?-69wn-6ynxLuURjicUSALs<^!nm6;0B9S#lnac;ke1Nnf`%}Q@g5*!|XFrT# ze1OqtQmCJA5PjJGwQzh!uz#Yl{~LaL>oery?tttp-Ot&_62&*c+kULDFSRk{#A4Q- z!y?672dK>JLE7g#NYWG+b_mlh$FVRqtKE_7-NN3Hnipdmq@Q3^@*+W0=ol8r%N=77-uLkenk$Mijank`zg(~40%SH z2eYK9$;?l#+3!*M0kZ&EWZULR`QbmawrqShnwI(|mEY&hXiD5_UoSf3 zjxtix)z9g#%2ub?`tT4E^j<@#P(XUYA)_wN3RUm1H5#T}?k2`uKT-YPXdq@_r@BRRLdx#9vdMVI+tGXakZ99kNF{{CbAvVg9RqGW4gt= zw@bXuZQ|V?5^rOLc(U1o9ThJie{2Ug3$PzkBwmy&dF&u~#M{UugE@9YW4=xP*lUy>5>Lnu!GzP%j)~GiJ!iNF+bZ{Dc5H^RSg_9q3U_GG zFSQggUynbw&!5;q3H-73dY5K>wgk|%9?Wp=QIc#M0x$0E#G@*duq9#_Bw@(D8gm}W zB;MK!HAf#P?}&OV=*k+`qp9N*3E#70dLZ|Sg`L4_7y zFYVvj&8TmxsE|Z$6R&*-5kLmqZT%2h?}f(|Ay#3COX=`>|Y}p z?1!-#BLftNUBruuy|`h82GKh|8(w?J8*JP))9{k>al z2``F0!d>CbGpKH*Nu|KiZ?nm&wuzVC8x~{K4@9vv$&97x{2we0bA(28;!J}anR(jS z(by=nm!Ku{$7pQCrhQtA1j;S3=mAMoW@tYbRxw{2Qo5jZJupKEmv%xa|BC%k-|Rz+ zVjltl9YE~VCVMTGRcW)(X}^nYAEdR}Z>zv2`wtSBv>G#WZ3Sdsa8Ow{cl2l!Aug5< zJ%>7b@%&5X2he>k0wLFDMxWDX9ISr~s%k{Kw_BjiUE%7cygYBVX+JlMgu=Q z460u7WGI4VD3Y{|)5Y87ftMasNd{^)jA~wqLR2#bRh7X;HH_+9Z!eNGEy`v!jB5Gr zEt51Y^fnHoIOj-84m-qj#`V}A9i}L8IWK^GLjrBoV%h?26KUf+C@lt6mTTl02etYQ zSS@Jvo0v(Cs@1DDmBe25CwBCcZETeD1}@W}R9iBK9M7HNRA=7}7&33j44EA5?eVxp zldH&GN|9AYA3tPvVaU9J8A6K-MJQ^q3dxYIw77uTlxRtyZX67#t6j0^SR~1iDVjbP zOMtY}c59{Wwzmz@mSU7??Xu^S4Ts7(5}5P=hKD%QxO)vPW%n>zDqTe%31}_diUq@n z{e;5aVXTF*zCDOkbeG{i-vQJlW~K+!{)Y#EY({ZO(l>S&6XU)EdXPJi`YrTB&#enF zLCv0@Vm_+*5yic;p#1~VyE|l`NJZ6^A2~qAL2<*+|3?T6ho3_X8oz#2ylz59=u}7SRZV}kUxIp2XeNaUTa)R zv^2!MbBKbqh*_9r@jOrS6qI8T5NK(pwJP=cO6*DY~xG1@f6*gi~GIGCU z^zz)H@@)L_Yh# zD`|hZN*N`wulZ zz@<1m9%y9h&AGpj=KrqyD3a(Lo{*97V{`Z{a(LHWNCMvgD6t!ZfTJv!hke|9&$$pb z*#-W2cHcyHX+4u+60^n?G$>NG`GqOW0$I0%_TQ#S0J5B4II8Zkrc9q1MdDn2O4pC< zFB*CO6Dw(y_Tw6W134;W(1Hz-rrF*$n++QE3WA#TUKg|-!2Y>u1| zL}u$VnJF_sA&`VWYM;wwbsT6jwJ#QHAk_tnr3;+iEH(AxG5ViY%_^*dQ1=5px^P@rvP@Z241 zP}SJbAsObLMNkrK=qO$ZHKWuSY%G&Bo$KvtMyW;F9FjCGUjwexXo*|8FzXx=-n^nA z_js^~oep$NIki|Gfn?tZ(oGgZM$=!FnoL ziXDr@?G~sO$1cSBX;mTog86#uW`3XCX~*=>ajB-p0}h!>HMmIf1k3?$p1g%oMBn+5 zDZSlAOfK5=c*QQvX=u*f8s&1IeINv7{?(ZGqUU1(lp7?NyiaFM>wQ(Vi`Tw~s>J&wSAw+N!nDpvY>>L;vBeep+akJ{!4&R^AU$FYNqCK)h$6z2Xxk`qb;&hp--N;mVkjvIs! zCNy74o+y6xOO&q9{v{B#&cL99xdSJuaS~~qsN6%ijiM*!9YJ%!bKMM0Y&RCmJW}5Y z`Bmw$2W97xfPtruhmaR52xr8AV$nqaMQ|(-K!oAOErOtwLxSKn2v{R0kp$c8oX>cm z<R4dFUdXt4LUmms z5fk}qJd!?~>Jma+%Hmpw$8PQ@FQo016F64tR!mJ)%O^0oO%#s@XZw#BcV|D`$!#=S zaqcXC-sn9PMsn}$!Szm;!P&$A2^22E^)iz@?4&j_)3HN^a#{HAFnItZiQNIQ12XpI?r%z zQ>cp!>bFOr&M>Iu3iTv|dcg?PLW6pWLY-_-PaJ{jGN^}KQmjuI)W3f|w+4nyn?Iva z-zCf{?;nBsqCx$+LVekwZXSW!XHc(FsJjj76(dmZHmJ)L>VFy3r6W*pH>lGU>Q4;n z)DfsR7}S4QQUe0BSRY_VDq9Cy4C>PgRbZk%F#`1xgL77TwR57l$e^A+0`>C-^$5u@-=kq|W?+%sCpgaQ&0Uo%Id4xC zAE&fi*_UTOm#!nugUu@Be$~?s!K8?W{34BJN@AO&@28W@87f-LO0_5sdktFs2sB{f zs;)x2$DsK}M>|QOeb1nMaRi!V%I`5z!mAD1`&fo+4RDt3cdA#_7_|O0nkikGN!pf9 zGNlu-Z&e)5G-x-DjuujAdML2%HKU^~R%iu=n|B17lx~VbqcN98`TXc;e^))`b%XW} zrZA⁡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�`s;060C@ln-r*)J6B+SwyFSO{!+6vTsk1% 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

m8}y_#1gdfG?gi$OPX z2_8e2@^Kj+U6(U)rjWO5xIBiG~6^F=(mS}CFGn-;C04gVNr^&lyiUVb;4t)e=jUY>T1G3;L< zyZ=l0mCNoinkq8)R2Du7cnaF)~hnAHswd_CGrDcwcRdQ zU*ogq4nF(8!RIKRD!)d(o==1L%5)CSs%yHji-)JnTdJYyDC?=|;y5?W(65p1My25Z zRNM6CXr0X}}H|9M!cUYWjHy*<6Wv9bJmbqA

@ge+!J#hUlpZ)mV8^nJo=|A-OXnG0IcHigo zVeE*L&3(-5!S7>0fFB8>JiC4@DLs7l%X8#slH12;7d~MJ{!Yoom+({6*q&ZhwrNPqD(qJsu zojW?cKX){z-@G_``}u?OAd!8wX2na(Ni_2+N%G*q#=$|rRk=Pj_~pycPw?Ih_k29~ zE{<0l?%5vrR=^#&?M3|AxVudP;T3pzVe;!S{Jw*H^0P4UNk4>}7h%$SVbZr9DcOpL z#z=2r;*&mzn-^iy2MORJO!|I9|8u~kw=naCo)KIOgx&*_UVii*K|gNNTbNPO7vknc znDkzl^o9Id1J}d2NpE4|lfIiTIdKsty%#1uf4_s*W4K9gVd9fMfSVU#(gz6OB24;G zL(ce z^#3sQ7Pj%2MqmGLvLYA-v&Os2($b)0=NjX z{BA?fFJoE0g_+OthZw=dfb?FN^s!?lTk$X@=`DbH+9B1e)Z0TcJ^j?_sQV4>R z4ZVeJRxpd+3zI%bA#t5%=q+sNx9jY*{1*Nc5CSHT!SXDa^p$*=D+ghv1rV-8o)<0y zJej{%b2Jf#N71i^G5$^Jue(ec$d>lwyZ0Xyw=)ExM`9pKO_8WQ&Tly}Yoz}k>CViKoKMV#%{aM)34`tDN zVbYhKs1ZJH=q+sNV_EcGnDj%2o=2xyzJ)D)TNb?+CVlBi8sRiUZ(&Q{pGEJ5Nne1q zBd;Zf-olnXD7hK?^}EdUYPVl zhMvFRAo??~r5{2%FTyO}3zNS4RLNGW4ZVde{r9ryy>KOw%tbV>|EWcS7rq|wWd4Z% z&4yPW@+rTC9|GK=v*c;zDKlw=SsyRV`t%rn!-k)QE&WIqy%#2Z*XbJJ1w(J)4@w{7 z#2MEv*zEo|w{^e|2Dh2PH}jsQQeJsbmgGJ9w<<$unUZ()8}JefW4M;Uq9 z`gmd1XLPa7zt-@xu&vLi&Q8;NVbYJBtr4y>^cJ@CrHtTWumTS+O!`9k$tI<~Z0Ida z{14I|U55T9LvLYA9{?X-gjs%o04~BTzsJzuVdyQ)e3oCp2rdSs_rj#_|CD5_y9~XB zi7)a`(fO9X%mb4?uuSKF$Ix5Y(kl->%lE=Uj~yvq_gZ=bTlzwsotEDVlfKm8_ZoT& zTlzLea4}%{UYPVl%OzVqXy`3W{Mop@<&oYClU`w4jMrm^-olpNYcHht!lW;~P}4tW zYXfF9*SnDh)3NhXJ0mcA^D-V2j{#L$1q&|BEj_h-?2VbXVB zq!Dg4^cJ@C!7O?&Eae+|{(m3pbHu=wel&~T3zL4RR3rSr&|BEjw`I|LVbYggtP!>t zdJ9|n{w#VgO!|ULG(w-Dx3Hz}$r@k0FzNd*)AWOe-oloCD64!gO!}^s8sRZRZ(&Ox z%%b$7NzNy9^SQyD{&(SF+9|7sTFzJV`*7-9Gy@in_^!<$B zVnBK?O!}@e=Hho8484Vk&+=o8;9@{}FHCy1nz>4S#L!!qS)>m#f{Ov^y)fy66_Txv zGxQcFKIzT!Fir1;z3q7t=nwIXf2RZXgNfbGTWnyvzZNvG-LE^}!pCcQE+Tx8Qe$R3 z{jABi`}b=tZ1y9rGqBxHxXIAtt5CVVX7cU&=m!S2`zJp$u${keHL%^!?lZ96-+ajC zoB8S^mfpzojDf8^Ja1sT-;gq}-M{#UfvrDR)3pBVe%A~G+x7mT2DbZGA2qOD56?ER z-Cvk*V7p&+hRrt(y41jSeSV?MHyxP&#F6c3*QZw+*sd4LEd3c;-!%qSW_@(6fo*^L zyn*ff{!0e7{rOe{ml^tR8raS+@3Hhp=<@C}u$`~{)WT+e;Q<5N_X9f(Y~Qy$ZeY9r z`iz0?`-ndo*scd&Hn1}L*MBo`nc0v3yMgWa{*J{r{wqIU>(lz*4;k3b?>=r|JHI*6 zz;?d%Ndw#Y+c^fdSOkp=I`g5S)7`E%o5 z{vXPMXJ^6lvf$IQVE)jXm*06=@P%3M#aZwbS#Tr^uF8UIv*4C2_=YUl$%1dqg73_N zaadwpeSVS!KbQqSk_G=E3w}NeemM(%H4A<-3;vgep<;aW1Ma7B^FR4LgPZS(p2NKx_aAXTkNZ!!M{vJ@`$gP11ETie{tNDx zaN`7;a&f0{{}uQD;@*p!KP~kN?pJY-;^sS`*Ky}ShFsiJaOdHkihCMv{!ixVxM$!# z2seL%23PPY(EKOVH=q`*#PQ#z1$B*0_}+iPvWAKl{wzwKv7>hp&X1K$WK%lTosWM))D!|4T+m$f|1Pe%ZU8M2We|4%W6KV z^i$zTG|z;AryNC$wCGcSIEtD+><4TSKSH{69X!9e@^9)V%>f#+KkYKvPr5`ZSL^eE zi0A`?lwS_!A!3f|Atq-)<>Vg#eZbU0lI2ap@!m8gYPK-2}Gl+%(PcrJLZ6zU+ zGmtvH9C|2EA5jH8PvU0yp*sr&8^6*MN8e7T)monGon+~$5pMoI2UWJa00f1rRk%u5%hJKoIUCqX|$)gBl?`V z*HmD$)<>q@rFA+Pe>mQ;gJzr;n&5Xl4s^0k>vd;n8}atmZR-v+-m^({JpPMO>kvJ5 zllHC|XO{M;#&01f|qoX&pb)@r$<7ue|8^T=#b z>+OEyeZwRUK|Usk7#FAk@srwtW^CFs?i-`dOdrPiRF8Z1Of}Ly!b}Xtd2H{jz&Im4 z{ovD1JgoE8gMgh-c%3%m)>UVQ+(^XpQ50++Q2J{qfZorb2#){$XUX{N9OAw3PG`%)Q`kOoyrBH%*Z$`IyOk#YAhyhZADd9Le+tONi(% zl{}v)VHlHdli-1bY4+Dh_A?~(Vf19rXG$Cl<-;Qx73GT~iSbh-Mzp`SM$;%i^{4db zL|GsAWkBy|ec7q>TcE!d!%g%weDon-0P2>uiRq8{(rD)My$meUS^V@Td+B^Fw9TLR znO+*v`+;6oqW&~5ohV`L>E*fY^_!B#y7CB*bS_4Eg;OLw-2L YkY7wmh)<==w5Hj795vxvOIc|BKLWQpQUCw| literal 43164 zcmeHweOz3{)&B)TLZWfeN89+mrimtM5~4+86y0c6Hx&%##dlo@ECJfeTk-3pVB_kVk(hn8ltsItyQ#ESDWfxpH!))ikddR@Au5i?qxyiumAi$ zpWow6?#!H-bIzQZIdkUqE>C~>*MCm2tgIZ%vL@s8;PoL8wek_NtV8jx&$g^!aFzd( zRT4GUDH{t~8U{}*7cYH2!C)k`KBB@39?P$lnd7;m`7;K6(uW3p} zWy<%`N|kg)mhuVfphVt56qw23w` zeyvI!$M3d_RYIw*AOmakvAhu(3|2JMH>E2uQ@+GiiqfkY5N4Zx+!G8o*I!ptUm2{a zuWA5NCO<2vD60(vz+=j5;AjpcPA6_LrWTJ!7F_=G=6KI+{t8Y~!Gx@6T7 zO+>Fuhn0GcgIS&AOWorW4A$2Mn>N&~X{Zf`BaI)+&#)tZw_MbZ#bl(PU~p|ix)sLD zmtUq3^E5u;OnztRG)6Hu-U?$DTh+orOQ(L(pT-&_1roL%GRZVTEuDpJJ<%ZfCCFo4cYApbb1^#TK zJoq{b##%nW0aQo_8o2;UM4e|IW!GEQQ~*!jg|^twvhd$3#mi?M1mnvt{ag6%_7wz| zGjgY8UFU*L@Nfi}&-@jeX3w~4@$&X(AAj}^&!x4q5SLG+{ia#gv}xAy24)tmS1n9L*N;+XjiFn)p(zron}4>O@K|uCJbfEb zNATxr*oXSza{^wb6ZXRYSI_Ez{g=Say9)w#%V@xE9tqg1oq%1E2*g@Oou&)W81d=V zm&3EO5H;eIsi@TwwImO5j#I4SmZ-RV#3h_XDsDF8;)fh7NoUUpw4FwQJnjDhHxSRA zEb;!~9xD(l8Qynb;O6ZGS3Xu%RW;vpbi0VIvE0`a16lAG-x3B>qb2QGuo zW5q6v!fPeJ7Nnj6#3AQ*u68bQ)dr=3X(7;qkkP9WA{g!6Mr0dVtnA4=A# z%aadAUk4+*WpAuyuk$&nj>6j!Ly(;f1o>A!rtsT#m!d>{IdJSp1M&FCNBi~_$8v|D z@Fg*;*!GXw{ksttuzM5qV#>3hcK&w0Wi5O>5bq*MAl5I*c611k9e+|tx(47mUxS?X zHaq?j<0_)`cC_b`YI;l}+qR)+S%HdeI(nLkrq-vUt(cM|7A0G||6%e&)y@b1n1W)x zObXbK#zX?=ZO9mi9g>aG1Y!pTPG1d0jP?M<6P-%lZQEJ;D<5-a05M&Exz|F)P=C}~ zR9Yam8f~$o$8v;7YR_}D;I9m{?H+~n?E{{<{fU2q@!Z}a@g5iuZ&QzWcXx}|)hS-Q zRlH~zp50#yx7d!Ci5I;DUcio*iq{nouh$39(|$EX_RJ9~&)ldN%I2A)S;Y$k()_!8 z0_jZeE)_^ivZ+iUE#3oRfwauct)4l$6fK>BSd=26!e#&`5Q}Tc@&)SB0_F+StL3x= z>ZiC%V^J2&zwmLt{lvm&0)yL-wy!vT>?=o>+WseDAqEEheJGwa z=zox2vHeOQe)ovvAB09Up7su)La?}hNDGHH4#fLarZ*zf7G!#3 z-r%_^)5**f9d9#PGxKHkHs>7-c+9q~sB~XFDt2^ z+{gmWPPhbc@&dFRyL#@yG&#t`5XSu7cK^Xr0FM-}X(tQVXF_jdP80nP6a4usO zcGMy^s?&M%JZ71DC8qI#m=!qPKjMjEL}c$|*SZ|ta|2M^_H7QjtF~{P#VLbk`fs}9 zI>`@_N4ziqbls29iI<`!5V=%EI)5jQ^l1zZ6O0eEr@#ABD!*@0#Rc8uhxFg1)7MRu z{%|_|qRjMyg#!t=AT~8{dda9Ks;dV>pYugvk1LQ69 z(`7L5#D9V4n1oM|c-;qBD>^%NgM%`#Y>}i-`rWnwIxcbu#JXf0s_3P>fvk4|6}^-< zVC#|LIbg`Bbg*9yU%e#Lf>(4Y+-M)-oSy?D7H3SXpWL#Zw#7$bID{k@p(Uj-sJ-q| zRePuVQRh=3XnJVrUyA;GG#t^Fw%tCI1zqV$>1fl}3gJ}Di^f)aYM>oNJCA}IT6V9H z$Uv*g?);Dmw$xdmO@u?%mM3~5C5RVoAVIt^25-x^7!`}NcEIr-5UQ~{*@^^R4B_CM zjWlHBkA#MD?d9Bs-iN zLH-Gqw2F-4g;nsj+=~*XE2&N7qXHy%AYrR2nb9*T@eztQmD`jm2T>DNUl=@SMWbnr zv-_p==+$vGaZ#Fg1z5yXQmmJ{D8^IN_DCd6Ac)pU=eDz@teYwGHLj|zM!X&Uk%*c5 zu1siYY138BT18do18;))@ix{nr}42x&LhksHyee)q^@L7psi&TVNARahYN!~>f9|D z)Q~_$%N|UdIbYs`F>8+*vpmFz7v|D5=xMW>)jH0dOVV+$+|s-)nDBCcd;mKExTyIJ@HD)TH)V? zbrBXIleVD%4$A8g$1!0vqs7X{f1w|v;CBu#v z2rz92Kt5z}0=zAG3TJqkJplQBLj+*k{%4&(oQd$DUlbIrpH!GAF4|1D2u4QF(XGrZ zHJ*#2Lyx}=Y8y(cCI@EzQ6RF~lzDXm%!f%Uvfsqqups$Q_zNG$Fh0y^G%3{2pFkgW zYJ}snf_n2oL)A zk~BF54#HXRVpy1()$aK9Zhqek;6ThlHg#-H>Jl2^6bzM_HgGaA;6c5|rkF?wmATT7<_kMDQ7XWB&Jv zRbr9(o~pcy^Po&%x98wgi6#)^6eY&BW5mdphKvO$O>de!EzQGYq^U~JPj24rRr&$5 z09j<)=4mI0eJ@rd*rKXSp!(Rd@jGZ*>YG&lpf9Z{F{^F8=#VGMNJ)>CfLm4)3qQgL zqerk;#9+_Y3#q4lu1aJiWLMh)b|BB-+8VMykp){?SZ2K1uEXAIX?H^zj0b#)T04oeG zu464j&dIP<2<&u@SAhZN7zDTw#^Z^q1uSyF=x~4(4%K`E_UJfk*sDxbDL3TC*%NH) zJq1(pkf@eXLOnJ@G;}V#;Nxm7lOFTKY`q=Rg9RqGW4gtApi{g}t>WDs7O$&JJlSl) zj*1UZ!0zW}0rq1G#EWtzj~xWBcwJl*2khQ_c%Jq!3pz*0Ks~~^Iht3TJ0YGqI)g6m znRw>tT<`V@q(#|OAdr^t0iQrx=-yI+`g_QFZhsjd?8;EEfE{({#bl=e@+Ac7(qaw^ z)GN})`YCO3EGp%SPrnWtR~$R!EsQNCv4e{3)uY(u8-}(FL0fiWx!LE;L^Jyr{&A`O z0yl1UAX^OP*b%k;8w2)eaXdOej{Vl++KFo9HURn=YRi() zQxKM+;#gdE2!44g+A&^|&~t|Sv8{4{ddFrIiv`C43U_GGFSQi5zb9bt48;2>LBL+G zcWKs-l>lnlgBi~KN|N3Y@Z#Q1EUH3rMIgs036}ybp0s4U#cle~xxFUKl~{TYe&FlB{NK2eNXa z4>E5wpz{n#VlCM9mO#-NGQ>dzF)uisV^ef9P|Xk{09M`X{#eMI2bziO1J5Jkx&I}l zH{%<}HCZBXN`K3APTsH?BLftNiu{wnL7*Glv{W6=ZqF21s z-mn;>8-Xa6W*}{8I{t;FVUEy<4xDL_BQsAKI~p5h_Tsc;0h`7~Y}&v{N+eKjwxfF_ zQJJCLTv*xuR-|-7>v~{@5H9I}QvPikhvR)q?GJ%~4j^`FqjNQuRVlO3;e4O0V=b-D zMitoT+%AFX+31nl3dp`-LRmLY6jMVa(9)sjP-ib+a@CR`x=$VmxgIk5oI2xR{bNv7 zBhmxi0&VIP@9tLdy29egc?O2XQa~6D0`M@X`oxo=2$rEh(z@n|*XxCs8dOOJYBh{% zUh#ZXGX_pk9$S)=z0MsIpw+&p4>nKZG@dR^NiD^MqP`<;G(BIowvz`L*?rd zn0_gShZxhidkrmR_b^&2T}2-WXf0g>s&V@X`F*2U3uArz6Y|7VdeFZIHHn$&9uAJ4 zxEHQ$MsZ0pIB6R|WV%NWa(j}$hkod}bv`DjW9O%sk7|BI@odd&`+)R%pGZa3tlo1p z;CVZYlxPD4iX|PBvK2rF+8ykCp;l-0^3`8&Qn-l z>*6y~W=QH;MTsDC8o!~X#eA93Oy^Csf!eP@f4_zYPMC-2tQyzOY zwg^?0PJ!41EEC#VWWUQZRwt=mG1*ZZ=29FNE_k4kt~dAoLW=*po&!mub9hQd!jH}2 zbI9RcPd*9!!=S`^7y(yVFc15<`JQ_rY_bb}a(0)pqKux&Fo{{?L1Ls>wk7#Vgju%< z=f@{V0I}!gPpErTMAK&`kT_GHQuQPIi$>m`VkM2zep~}^AV-BHRMpESMP^o?&>!_$ z9Xzb$Zs7#;G98Bn*onm!zTPPo3zHV09k!Y^fXOq&qS5%y@kU>xw0|ldrnUqO*rO&r zp*JX#UuE*xEoc|xHHNrt5kj!77(!h+A&AUQOlPLd0EIvj{YM=x=7V*0+P%X1B!TRaSeE4}w^w!OiLAf)D z>7VOT&A~YQ!Yt2Rs=-B)r(h0n^W+V5BYo#bru5F4#N?t)k9+LGoQ7uHtzqsH&UMwn z43;$&%@0xr-mUr8Y?V94v_5W4+0iqk&K3oyZ8?Bll>WTcPJ;0F)afn7q$n zP3wJCwTsubovOt9By+*q^q&G>2W(TzXovrOY9WHKXt00J1IONBH}As0CiiXv72v+w z@ob$m&9k-n{nKzw<#1$<*-F9KF=?8WqbUz3%yp7g|oO!8_;_fC80{c^Y=R|2Pw8^H*h~|y>vg!q|_*d24icD znE^kJD3R&|NQEu9qvwdEs)F8UoND^7<`XfVJ6rYW(PXC(;!+mZIy`psM7f{8l|iZ0 z2Qf8~3dGJJOibag(Js#Sz;WT@9o$B96z7iB&l|mmf^10V`0Z^SCC}gLe?F!6A~(nM%Rp}Y|#N(CJKg~tFa5447v_KMEw2te79<7o`lLt&ON%~nT$&~mk!{xbbDe-9r z^_Fp{_kTfG&V35?KMd;S<4`}M(PurjD%5O)S}+dve+=qsh58r5EOG8Q)Ta#U@e1`h zgZd(D>{xYp#GvlWl43n+P=7iO^%n;9S%vyDgW5h0^-hEOV}*K`LA`VwYSf_Ks8CxC z>ilu2H3oI1LJb?#oN=g^8`L=pwcMZ%AC*}HUoxowu%reAX1zWz4)tV%`iw#qn5bVF zhkArTy;q?gW(2r+9BPh1{jx$m(4d}}LN)sN5xX5TJTR4H^z(JoBW3LzFMP|OzJ6q8 ziJv#9`$>kmFKZYh3(X8Hvgc^mdA+%-as%h>@xm8pLIz`B>@;&diAQ}~$zQ6T)=yN5 zyC#KZN^*}$Ixm%E&QOIzv*OTh(7fZ&kPoivDzvK&+6P$w6fq@rA}eUeDYR09_RKgm z$&}ywpoB#R?Y@c8UdR@-Sq7~=g=R{3fJv%JC7IHRJl|Fv{(g+EpR*@M3oEqW8??hG zMq8%Pb{Mohn5T`c1S#E2h4z3!`|ZSN9|0Ma@B@Q(&%|ij2;61RZkibF0mUt9&@P!6 z?G}X=F=z|Np-H_371|XBZQ3|AAXv#o3a!+j{rRxW3K4Fc^`WGGgZA*mXm0`;XeSx8 zu5oDKV0JtKnn62n9GY-zR%p2f&6`3qI`+0#D^G4J$>^AHz!49{ ze%+wGd}wAR2%0QkBkcs7ha*=*UwI!~0+6G-D*0#X1MC9m0}}7w*Dl-fxAh9sYfutu6bU z{jiOz3~@WVjAyHV-#jWdCwxdk1d!GtG_M>`F4s;-!YJIa&9l{9fz9CWRShdEchz1; zfS&P@0+Jpm##G%r%GQ1wT!o31P*9>UJ55K);z)ge zXzKh%Vwv60kE>a+fQG^=6d%`0CnT>{IgV?;*-EnfZ68kZbv);q{n@oYV??KO7zjv?rp;}fpqQ73BkN7;GCw7N`?WPgEr8K2&G4EU-hZ+k;l z(-qHS+vLD8*MHUiiw!-Vei9~c(ANZl3sewWFw;5PLoC{K`dk&%I?t0DEDo1LPmyXb z&xa2)ynF_fFY`W_oX?Cde0+-+CB${5VY?Zh^|cJ~OPZ&k4?7(jr!}#Xy|`P9LgB?7 zI6Ir=3)p9~Cm^S@kpmRpK6?iIoltWhax(iz`F&VP^Sp5}7=a^%#F-<%6`*GDIxVwS zVKF&l^j8KErMt3Gq|eAYO5XOgAEe08qt^=yPZw6oZ{O;FJGD}lafhPCd|qTdlI&AG zawH`m_@~Y*B^%e4&5?>f>RPBBoJs0CmnD0We*h<(ijMEk1-JqRYcp!E#>P?eXbhgs zlehQn=ODtcvzlCKAKUbma@j6`Ax${bpgBq1Wsoas7bj-+v;Z!92J9~Z4CKQ{W&396 z%1-TGE!FlMb8owO_n_ZFE~ry(d9);S%_SJuQSwTv=CIG=s<~Hg^}mv;xl@3Owmsdy zTkn%dgToBbaHHK4x>6EQHB%{0@|&z)*GVT8E_43@`!W9fheRi^`#}MpmwGuIjV1L$ zm5Qx~rY#QGivqFhQTFvH`}HV04(DUnqwMRcXpT#DpaY9oI&-CqO>VUDMP8#xilN{|^8F1WQ8Ef3hoxSGO-V&>QzqQhH}21}5U6vs=ZJ`4CRGHIx5H^` z*{u>VT%EoaNW-}#kNQp+1SE$svoF^dlUC(8{yq+v)o=HDL zcq7x?JPCp4{o1HA2^?BM)b;U&oJW&oIdP-I_Sr<1DD+t6& zdDs53*L9JXvmo)J(>U;o_7y0E(+q-a7RHN?N+YmZ@=-0HGbp;052$WpN-0B2JJ_e@ zb01rtD&S<6hv)Amj^$ZnU`TsAa}sI8EKK|_x-iRtgXGyd8DIM#wZWvGpitei~kMwk7p%`ksXxrUQ24WX*p^@1=GbwLB@#Ej^*oCm6x74c6eg(1TbdEM@V!1SJR2YJaZ>)Y z(~2G_n9nm1$L+g#Ngr5kL^*+g!<`uK|MJqSzZ?Ee_?zJm1!7q^+=U9`t~@jsDvSeY zsxSgDW=m(ya1!c>vm?m`4ULbp2Ni`tPup3_h>a<->KMH1tJS@2dpBgAVE$n4U!*FM z(@F3haX!yd=t@u)1GX4Hjez-x^ENV9N!)E?Yu`%cju(DUyhCb%ghs#q&srsph225w zYD5d~g|uGrqScD%YDIJ^Q!(&?a0v^#zA{^akZO4fV^>tc z4X+A!ee6olsh&!yT*Fp-IhGl^HlWq3RC=oSZRZvfr7#t(+X#$Kc$e zah9cV^!<)u&(^>p<`gCubje#-G4Z0eXl~+%JSbhbS4o`8)!v4}{1>Y#-m8xN2Aw~m zi|I-^95POD*7qLR$9mZmF5zM&n=x?4C5b3(yZdx-424q_7$@@#J>58 zfP&zwhv-hGRC8E}7nPxFEm0q|#HarT3K{DaF0n3h z!B1t74eElI8J6;{uuvD{Q*}fX+Xv4QyNcpCFS}}hCzr@BT>}@2P3@IFld6GUMZ(C8 z8emjRI-srrGK|SKjE;~UnJ@6F6ixP#lc}ivtT;RRFeG#Sn=x9AV7QPfwd{amM+zD6gEfN57ou4k4qHv z?EXH8hBkmk^+>2|Gdz6#4A&Xtco{D|6J0E(5Mz=Yi!&LVNP^o3kmQIhKyB-%wowpI zJM@d?XM|IT-iPfb8aG)YrRU2&mwDs2uYc&LXfpO>BUh&hl)B1}CPQqG!5s0j#Pod# zfCPDWKZMp=rbeAZX{})JoXh{na=DC;+E|De{+D4u>#7(8$$($yf&X^H;4sA?ebve^ zs511_t=97N4tnzdr@PQlbkm-;l>rI8x8rLFS7EB zzCk!%SSu5(buhTRH_1y|{+%d#?n_c%9GjdM9^JQZY+XHuMv%I?D3w)&Sskge`Vo@1 zpw!?$ePs$`1u*oCd4ly?MtjYESn}swVFkE3kHNr?mEkNS!*T>vb&vcKGW=7?@G@eh zz3zK~#Vx#)y^_twHvBf@I6X^^;<^ss1eO$RQ;O+-lIf4hGi5^|R;oX|0|Vexq_Q{K_zI$>D&D50l>X2O z=E-N3bdMlQsmt?+rG7t9W3H;-QyDi={oZPr`co30PNp|aRKHgm?O$~ z$P-Pr2c9jr^ztzc-Z%RcG|j%*i^N?l?iu2qDXvf4v&CI1?z!Ry#Ql=E#o}HdZmGD` z_kFWhiF=W_mxz0rxL1gKmAGZ%t`WCV+$wRa#l2eGT5;>e4U5|-ZbaO5;;t9>dU3xj z?v3JdEwXR+SHz{=-8cIdaXZAlRovUe^GYl0ow38w3 z>?gM}M5RhT$WRwUKVgU+IoZw7Hio{%&>tAOjUmpql3!tnhj7XD44ueOJwrZ*DjB+* zq01QJ(331>D9X^e4E-lVXE5|LhE8JW35GaiR=>i~Q4H;2=wOESNAF8cW9SHmEQaPX z^d82+>Qfln&Cq!ay~fZ*3~}00&7PZlilJ*6+Ro5T3~ga3&Jah_>N^>_hoPS^bQeQg z82Sc7PcqcO&>tDPk)bykiZC?F(A5m(bD~|w(9sNC#L%e>6*I(JFUhkRx`d%c3{^8U zpP}^(&0^@Q3?0VMw;0N2=!XnVW~h&$y_oM*|AwJ=7lL`vF%g?t~lrHn0vt)&LrGLdm z{uN&9jOs{T?U`p(hsrC@JfkiYDfd=KBH?+VYnyA<70ql6RW*j1s%LufW3iD?eWYk+ z!Rg-S#@eFUO*79tV}YVt(@?nqfcAu+#UJNgz~JfLit6&lrck7)IZ`!mkxB^Hme1$S_^=^0KD*jEdP%c zeq|^!@0^B)YidLYR6<664HSpJm%66BNl?aQUAad68Za^+E9SM$p~el6^SIef$9XTG z-GqT)cGHRA&IkszUu59fO)9wT0yN_)@3IS4Ek{n?IkTJQdM{d1yxPA~!q&nfRMSd- zvHzS^-s8RJu2^0|w2K4&6@G<~mcz^XY6{hcDk6)4qohzUNUItf>b&Y_KZAAU_!ZAa z?{(Fo#*jCH1}QoY1+EPp=Pj?V^w#4SdzEmjOYuv)erCARzbYf&rH~0}6Nxn6nm^xK zQy13F&(PK3wRoWh6-`Y_ff%T0T4#WDR=Bdtaw`zwwKY|m2}4vyI%(CkM9Z#j8bf$> z`MUC^ipH97#0uB1)$|O7!*v>3KQG+SC`FzZu32AK9=00G8^T5&WRF=$`ZsD-s!7ruFlx&<*A>dcBm!U0{hhVLi&ocT5W4>ubVe z;s`gbGsQzlC`0%qVmIZw`pWrrO_FQFnyaB1)^!ai2c46~AZp1ZwP9kZGou?SBIr!` zN$XH~opsga^G>+(tji1Lop$93vjCkiPeaFFG2g@*Rc&alg_c2CS-tG}jiI%n^q?xY^)vT?KEcW7urYlcJRBdIbks>0$hQ`XKnTy#)A!Vc?QeLYVDkPIp zV?#6gslscq&hxJlVVjz3BMQ5&X{{;U*)WrhF!`aT$YLU{uD_kr0WYxDAaP z=37Fq)yTiT#>iG)k71_qL_I*HM+%k@zxAB@&F2bCmOlBnt(lHFj&%fH%pj~;c=^yL zj0Zo{kd?*XqUSjaU-P^23}bw^_Qx;W&k-(`mB_ZTN`X5v!^#fhFxq#lmDP=Xr}C_v zEbh(m$+~`pm9;)UD}Vnfd7a4o|5dz_=HuPKYL&J^`&VecO8a5$U$6ak?SD=C8@2xf z?ccBcUub_o`%h^9S?#~9eK{e92=8ckul6Tjq~yxi{$bjmrTzKZU!?uBwO_3Li?m;+ z{j0Sf(f*Cv@6i4?w11cO@6mpb_P1z%yY`>b{;>96)BbMlzo&iqv2YY++Qq6o2W$T* z?a$HvN!mX{`{!!ERQs1{zf$}4+F!5zuV`Q8g5NY>c+$yVEIj4ZMW>aosi+K9nfTBA z&uZYa8u+XRKC6MxYT&aP_^bv#tAWpI;IkU|tOh=-f&ag2;J{;Mlr2UP5Ap^1C-BNE zt_fCDUlUy0T;5n|U3hJNrw@NSt5W@OyfyfHao9U*b#VS8PgbXO?TiC`LH!4&f)%w5 zO(6@BUUy_eZF5~c{)||2eS~Rq#;3_n50VPTC&^z8MA9NxQstUp9rnuBlbg>KA8KsG zCK+P`?%4IA3dWVX;;L%u%WJv$h4@R{@r@ygD|5xwV*ea}B@Y{CkzixPbv2bFs&*lW zEJ2*Mpl*;99+y-bDqkmT*SnH<_CWO3ELSA>>A%~5h35;)ROMPOJ1H3Sj_L|wRBhzN%fRVf7;5iq1EM+I0LiZl_kHJg~G z`Z@&S!4cCsH6*!jBv8{-UR&Q>$HZ<0SJtep5k=fgxVE99yw=Fu!LO4c00(-l@SRrKLj##GhPbEf6%doDiU)w&6PIFxtLm1@Si<4-5vaGBh*} zLI<*{tzTy~T5o1Wtmm??w%*EawjRo9vYyJRwD#qcTR+WRS68^%Jn`&0b@5=2Tf-Icjs>isrK3 zg4V5?XKfAs(&nbzu=Rtv!2X)(GzS<%F!ZY;N{jKh3Gr2L<1pW=(1e z<1c)MtoyQ|Dm=XD$!6m&sjankO~HW(6cYy`)+2eyDj)gv90VtEP*#m~OOBO|L!&3N zD;p}BtOs*)tf51ZHgYKQ!WmUEyRoLudSyyO(Ao{^0em->%>&!L**v6c1AgK#;I|$Q zr~B|M^xfnXgs?4+iu!Jj^+RBE9*xAIW3p;OwUt(DF1XA>M9;Cn3D-8D_dTA|SR1q+ zr*y|j8DGtzf&KMVoDxT@zoXh3e*47)j=*iaZTy-jH z{VlgSjI-X5WlyfexhVo)1B0I9SuQ%AC&EdbhyqDNce{1rCn#{wJfwHer?UV^m6g`R zxl{}rMGIQL&b7We&C1paHJn=|74;|56@aAmBse4DoQzOUA;Chhk#k9_eR8$65z=&? z$#^;gOBq@QXXs0Cdd>%Kb0iq54PI9hsSaKf+F(60+34XW>R<`b5*I)te>>TlRAap| zxysrF^-WF=TW_(TrAY6*5Kij~GF(Y;6+;(+rfrIqQ)AserOLWvO4#}i8m04Mq$TJK zT!LeiMr+%YlfZ52I=F97l~bJ{D++(~6_xN2Dj^iAWV8KYN<$s~j_!KvHR{5pWI(6; zDma~Ga1v`6hvS*-h}D)Cs$frOLkSXy%Hhb-okvYaU(LHlcaJ!dM?xSQss|ZHGyFY| zDySW_0+|f0LrUv)bnwwlb|p^SDnr(v@w(Y7TK>o-%WhR;vcYWOD<8D`>>|3G3k(e1gHZpU`Iop9x8 zo!*@_lvU7~T`)4)Tk7?CTeC*82eL=9N3z1cfvnCf??6^*X}A@kp)7a-$l>@sg>b|SAeub?%j08nR6L0Orvth6 z!ufD`=Emn{yt7>J9e~@JpdaG%ysp~?Uw}wAOn%-e3SkpG@-wiZAIhM2!=xY4^!ICe z0~`8+40<;#`R6Hwhcvxc!-hVe0X+05zZ)if0q!sIc?>V*H!$&8es_MPcf+JF)AYa9 z^aeKc;T$C3AxwHVO!^_*dE@g8UgmFL;xm6QUOt3L?&FU8A; zFzMYe>3z7T%O`=C^advWr^&xe)4#6i4g6{8TQ&V|O>f{&OW&>O-_i62HuSBC=R=s~ zZzX_-Fw5`7?1IlIUY6g$OlSGS4B(+hdN)k^PE0)b`~xrP4NQE}`xwAOkMwSs^h5cQ zY@w?Py@84UY4Z2s%N{5ta*1~&A)8T1A|0SI25Mz1gfCVeFx{m`aX8UX$hq`Bc@z!TZa zZhev9Ye;AP8h9hZ?Jj-*rM)_J9N`P#xM7yJ;1GpyAHw8kU<8HUtCCao?S@HTs_7rp z^aeKc0~z#gnDqIdQwaT<-oS>wG=ts^lfF#T^LH;Ozkxq3eUGLe()0#4^x=&B-7xd_ zeqJH`Nz)tH(6?sLyJ6CIYx@7u^aeKcof-6QnDhlR6v96>y@3t=PzJplCcTBl1D|P7 zNYY6}u%=(C z=?!e?hY-()F!OiAr1#B~Wa|P=Z(u`zPX@gkt|XFvh~~CGmmtCohX7Axk49!G20unR z>)*gX1>A0!!#DDj={UkHj~ixrN@ptsek)0S1|~kUa^p`#-=pcD(DVj2^ltqpy&Go! ztyt;u`Mst$u%S;#YPvn#FzL&%#^v+6rZ=#mcjq@z{sp*4#%H&tH?W~ElhkznZkYLZ zYWh8z-oS?5-G7hQy@3rqKYr&!nDys|Kgk~W!LL#%l~V$EB6~2P z^S@2!Z{V*3p3ojZ&-fU5%3Lt(!;3u_KHt~;3`~5s=Li$=7@}%uIUYI=*uKEP49+DKcMOPYj5li1~&BG40<4v_{1(Uw?RF(dWrZ=#mw_Nzl-wg}>>585o&WJtN zu%Xw@lak*JlfG5s|3%Xq*wD8!fQKIQcf+JtA2Z^9sirqDlUROtex!H9q%V+BByz zTGla|-oV6X`T6oO^ah>_{A2fn{*4tBihBm&iR?qSPa$28bk>J~zXG`3 zMQ`LQ({V;VH_Y-`OBBM_H9rG?TKY0g|7}fgU_{IpQhM9l2rvIL%H?W~E%b<6| zBLCS6VUv+x!-l>zgWe63zEtDir|AuB=vy=B-7x8gG<~n8H?X1a&Y*Y0qz|8?5VmM~ z0~`9G40<baBKa!EZ8)p92xeDP~O>baB@0RxhM7m+p z4{7=rG`)ch{XjbaB-@^bNL+^%3@4Zl^_iB0r8~U;gdN(ZcuTb=l82L49=nFFF-7x8K-XhQA zn%=;MUQZ8G^1ESodk%sA0GIuJ2{8A>x_yfOE)ARg!K8-Ge%)IdHv4~jG;H=){y}(u z?9;7L{H9D+{LOy+3=JE5=+&^!+ZG&HhY{hRyu2-lXgO z>n07G{nHI5UC)QwG;H=;Zr8BUmpe3U_A|bxVY5GSpGjY$%KtMBoBgz3Y1r&1JZk9m ze%Eg_Y}VU<(6HIRctyizKg==ddVk>^4V(4;UX#vFf+rj25NvO=e%(*QW<7bJhRyo! zPz{^);xUF^ufOJM*sSLkYS^r=78`o4kY{VytY3;XY}P{;Y1pUd`(+w7{k_J}>-MVG zu(7XACSBW~sD`^WzuPrz=1bqvu(7Y-)36slpL;ZH_6zRUu-T9Kg@(;}#8v~t=kps4 zoBihBYuKEByr5w-|9w@%=6v7{4VUTt|G#S3%m?1puo++ZX9?N9X1x5ThRyglB~PWB z@%%syoB8WeCSA{u=W5u@?-yv;*uT>>Z0wOw!{&VHOBy!w>x(sP)=O(NY|gW44ZgOI z>ojck|64R{);qUq*zBi&OT(6)f83>EGyeTh!#-V~Ki06Bzy3_aX1sq`!)AT>sD{n{ z{}UQE^Y`a8Z06IiY1r&v?gotJ$yVBd^Un-;D(sXyeMSa+dY zDFc2p1J1?V0m7x^J1hfUkO3EEz!zq~K?SG!LtO^EAp>s9fb9(U>lyHOGT`rLz(3A_ zf0_aJWx#Kv!j@FwxTiI?X;yYcdOnBKz6^Bno*ebjgs-fX-%cqie_#XA}A6ukU9&3Jsj1OES( zGJCBBt8q=YX+d3M6TabJa9%^hTKwR^(#D!~p#{xN_+69Gf{N?H3(E1U4E)uU1^OHE z1^U-U@CyY0CIiK2euITe)N;=-bw$u*p)o3~pt|0O8&bR~s4fTMf~dayhmgMg2Tl`{IE*uw_H+*sD;Wk>ee0t>e?RVmpgL^=v#CM$-PXuj|V_q_%x6t zxubB$Hbu#>W~WeaO%z$_n}G=NY9Ks)H!xU@OWyoZ6vpXmf(Yq*g1pv-U%4sAj}rXb z8sg%?s^LXBqZ+OxR174k27d*H;YCz5lDXK5;>oRGsAl>~ zXpnbSgZzOF3)i>hF0Z=#3YA5I{CSmG<9k81wTOmJa;;Wj35rjA-}NMNQX@P*WA-ur0K&y7U=DFGWL} zOP;|-a~nFSZf)!4l4e3Bn#wd*E@kkH*+^Tou{Jo>02%gVoCR^2LeQ{7x$oN|Ds7n1 z9Aco20aj`})<#M3T$YGI!$B1$Wg^oSDPQXH1Ox)=Q#N zU;b!FfARxp?6*Ftk9^oEAq-q7il{E8FR%t$i>vqrPq0cp-O=CdP(RAi?K$AkzN^o3 z5K!OcxIV~%ahES~SWtd~14|*yGe5d9U)!K>p@+G?#^F#Q-`6mpKCF=tzo=nAiD0@w zV~F+uR+eAQWPH+=2HhXCWyWgyYw^KD=wy8CAm6>IIh*-HF7@eJidKKLmWD+-gP;0P zEtRf>HtFL(PD>%WKTFGqR3D_JBIR4E6y*8_EfpsppHYd@pAd0?GT#nK7#|IZkFSO3 g^D`m({62_2KMWEdUj*qvKcc?@8ux{vS~^?*2lKMrBme*a diff --git a/build/plugins/pluginsman.dylib b/build/plugins/pluginsman.dylib index 6650febb9925e110ca6a8868b1a290f92fbcabfb..1c53b48124ee7e8428e654d5cba17cced415cb10 100755 GIT binary patch literal 42916 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

JJ>*u+6|m zhUw)q-hAOf(7GF6xB1&RyJfEg_f5cX-bQ|^b!3Ui1N15Xsj@}K7)GXd_VZwQPwE~v zaH8}^B!U6Xrv8NZ9r!H`(;Mcg3Jn{Cc|bseeSvVIv=-hrnhARcn4ZgG26iDnV$dx? zFTI+uIuvxA1Ahbyew&cKg2P$72w4U^X(ti#pD^{9W~8XNVES3bbkOl;iuagGI@{#e z4c^>c+uPB$*Y}-?__c#H?-R0k-yysoN_|f;ILR=$gu*2jJpk=QmX~6L3&z($Ay*DT z-(yxQnRO5q#4RsBsQ--rJjuMPbvP&X$uq!M1 zm0z+B?tv}AkbG$75ac{G^AF-aCoa|L(9B_RpBHz(xG#$9i2IVb2gH3@+!1kK6ZfFF zZ-_f8?%U$NEAD&Z@<;Rz&CCx97KuAq+#|(3O59>`j~4f%;(korY2qF$?(yP& zLR_D?)5V=3?#bfL68BVbPZxKtxFzDAA?{h?o-Hnacks~6h2owk?)l>S#l1k>CE{KL z7aJFe6IxNlxz4c#0;d_H>3C8S*n!&Crz$eSx6}L)_4; zjWKi)L*HWPJcb@*=nRG)V~94Y_RkD`f}w*9eUzai(Qi_d89JUJUZSa;&Cna~A#^rF z2N+t)(DMv^j-erjsu+5lp=%i0#n5#OZDT0GP#;6zWavJIe#p>W3~giRR)+R6)Wy)V z41JZMe=^jbF+&p=>SyTPe<8G&q1PCCmLYyCQu`7^e`4q@hMr^yKVWO69%JYjhLQ-) ztzK;fSF9+XH-B!4?~IZX-zA^5E-PQ=yKwPkzRLrbeJ*gB&pNNRrJ?@(^J>GD)#snr z5N@gT)wZ-m=7g_lty{NfdULp@IUKE>?yG8QYza5EESg?&uCKMZe$mY6^z+Y~r>Isp zRc`>GJ>h5Z$9?B9c&@Liwz4@IZdugYQZr|PN{G}~)-~p)R7N88bybxubxn=))<*G* zrNSe;4%yDZPv?d!8>|bJ6mwQ=h=dpV+yqTkE#Wa}OX{MLrf3~G0=uQ9vZ}TL+|KpY z)YXR@@l&^prlTB|Ro76tCOmI#B)ldkhnZ1pX0FPR^a%L2j4O(}8 zO%#W}6T7-HDk#93Y?-X9SF2wwM&{XM*R+P4H$cu)W=2o(T{$zlYBCT`2X{s=sQpC- zM&1%!b}`gtg>Tu#D=tA!zF9M)vwfdiynJQgatT}W7onOi4=fK{xWad;@1n~tDI?nF zgMrHe3LzthkM$J|*N3ZG76L~}p_bqHl9dxEqu_lx*?)lpP{vpHF%)~Rne%@ zJ_f3y>kP2Yid5HFZoMPCrmjXaVTejkN6`o*+PpTJMYy(dU1hYYxh~RTMH<&=dWIsA z1`VyB6KQIeBF~A`t#7D|Sk0BqSxnZ?LChTdz;6V-G#ak9TIy*v&LOWjgrndMpR zXz0{0&NZ<{RhwGtp=D53Rxj)YI{BLL`s_~L+EP~^&2+QNh~aCfY^kdC)l`B87J?mf z_1R}Z*R9n}P4(!-R&`S=)Og{{`Wg#;7=fr&*NEOwZK+=fX9W9&b>7Oxs~elHZ9LyX z-<-_Ya6_bJ!z$~`K3L|ersnGC^o3U<5lN?8U!KlBF?}Iz+Ue7ybzeewX7%aQVSgLf zgsW9To3-k6-}IKImdbjjwt)(&(^}u6a2uj)4Bpbf3hM%xwPp+j;b_Z3!Yv3OI}k4P ztw7jU7xe+~Wo(bOLHNOD_ir~>SrMAtxpZ`pKmM+*XEcod%p_k+6HG(%x^T0le(hON zu_y+&vZ^W^X;Ih>O*9NBov*Z{t`1ezUL9J~TG?D}U3yJ%w;x+G)$-5wLaXur=df4P?%=FO9#6M*&9tfh zkp72Np{n|(XxKue&mGxR-`dcKe@oWd*uu0~W7D{i#iWw4N!+(&(gIgf_3BVVD-sy* zcg2UBo3WwA*q}RheYlEo<*vAzy2i?SZZjeN3U_>SSmG*NarM}j#(&+zMpa9wx#`-v zY7*7D5JZ*`4jNE5NQ#U}st;GL6SnJJN!-&Xdb`IJiGAHjWpg;R?hGb%xs$Lt9${p+ zN1Cc3+)x$Sz_w!Ko#{yKftlD|6&sD<{}8s+nAlA^Hr>|Tx+If6lhBM)8H2qw6Pd{_ zsUp`!8?#yOVLZ0ETk2GM4hr1TR73Vd8mJ>MOhD9y8+3?p7*Uf}pb-JXigHwdHQ|;h zG28QqX{xVFARfptty@D<+jkPEi&oY*wl*-aSHabFYwAR$HW99Gs;aCv^7b*Np|T#4 zB-l!j89~Mw%PziTNdUjAgZL!lRmlnNAxH^w&<0if8g3{PZ%D&X(S!2e za8iH~1+z&>KdL~}S=#fFE%#EH)+InoWs6(RZWW2hC)^~8WIPUKl9XD zzw|U)!=4svXWm-t#XM}?>vO;N@>;E5=0~l;{A%l+{7UObh3hKoTf-r!!?T4o&DOvK zbpE#{G*}xa)>+?~SYL-8Y9)%SNp+2N2=#*Hck)(Sx8~PacjT*`bE~6}6&JE@)VxS! zeWx&D-98~|4NtK0)TS^5d=R4EG&$dDKNepG_Tr<11V=FGMueV;BfI|Z)84eAs zeG~Joz7voO?)@VxpQq01%D3`xu(CC;x~VE^{VYGenbYZ>%@CdLQ$6UNuS`JbG>E<0>dm+A z1@7=%Bo5E_)P?J-t#=EMT#AVHPXQ-V--Q14>-^^Wko7EN9${qI`eQy$a9ga+ldL@0 z3pu~E-pJ>EzEXsP$fFN~%S3&0X+2ngb}y(yeQcai4}7TE*C#|;Tdb`Un!}>z{S&06 zt(_np!KWw_l|^{1K+ZC)Hw%;@wuTGQORc{as*^U{Vul-+*b(9^N~Ix&ZmJ?T^+Kv7e+Da$$xPDF$$=)=(mM6Qa?|T zXfcQeFMyN0kj@e~?H4h05qQW!p7pQ7TI(h>((uKMzXVSAN`}4wrx(|~^IBU%;rh_E zbuG1_tHT?t|DGWK2@_hFpa!l2+VE8*2*DYt1VK1l%?f;WLQ{jN!0Tv_!PQKqGrR`Q zU>%&^dN}P3l*GDeVz`Q$`OYN7Gm7^4E;LJ3ZOHlsl@J$)^P(K!t<4h~F%3ZFc0hpc z^+d+F{piFR=s=70`-ufsce@9_X_Zv&4LG~VtH$9}HFRoXxKRS{0BZy(z``e<1y=7( zbo*|mI}Fzz za%tU;dw0n=8Mbfqpu;-24>7V4tP7*o^^@wXZIi04Mn@Nr~TMo&!ESj%q!`g=qva6d=?^Do_6&O}`tmA#BLyR#LHONy!$s{y zCGGhofV%TbD*TZO;E#An)>nv(%Khc#<^G7j9hXM3;^8^af_S&@+IC zp3u8s(vRS~EIvuRq&G0pNMC}N4`I@~Vbc4GCE0om9_bBCeA4&wAQBH@(z{{OC;2TG zo_%;pZ(!n+-iMbDVbc2u;2})_#Vd*29p4W?+zkxq2eYd86UDF%b&{rUy4`G(Sf&d=EEdPk6X9V*%Fw;Lw z`HPPsH~c?!O>baB-!7?{{M|6~@7DDEl7;yj*w7C$fQKICcf+Kw__!onyd+3^10yK% zw=;l;9_igM>4&FDvh{IDw`n<8uFfj=z0#jDr(NHL9KMfoD!5n%wO#1RqDuhpHdIKB!NDjRlCVf)V^GY!DH?W~^&!Kn2 zr1wu(2xn?~0~`8e4!s*Dy>*g8SfuFUFzLHbm1JwRrZ=#mzb}X0 z4ObIMKSXoepL#^N;SGStvq%0pia|fpDZhaq0X&{Ps?hl{YnI0ivpl_;-;m~KVB*if zJB*i)p&u4V!K81Wt0MlQ=?(m0=_~l{3Z8?S-oS>wLQ*sNyJ6;^)b#wCM%q)uhQ5RW zJoH$8H%$7G5=pkO&=-0G6QAX;P|0a}H%$6+es_T92u*KbL$8O&G`$=CAbmIn{M`C* z0^srVA)@pDqR!vIm4L_72mXi>AIiu2aKkLm@R^cqU8DIK*pz2PC8z1#FzE-+QV7>- zdIKB!at83wWBzWK^uDtt*}7iS8<_YXrajs<{mq)*z=qzZ*r)S%!_2=|)8C=#4Q%L( z8Nfr2^1ETu_i-VJ=PpfeVB(AX1(KYmuW-SnFFsGDe^=8R*w9-peCF?lh2F2|e`x46 zZ0NPRr}KBir1xw5Et=lIhQ6HvJoK2q8zy~nu_RkNHNAm}&+@zTBfT3Y{fMUDr|AuB z=-v84dN)jZ|Ai`lek3CHQNxD5LM5l=cf+Lb)%bta^aeKc-3;KN$Nb$e=}Q8VY`v=K z4NUwGQ~nA~&ktHCzkvO{suk-{FCu<)NrLjApQs0mm{D@)tVQ*qXCa+Uy@oL z{@-lMW8fYkC74dVdbR8IrMIr^wwt-LcgXru%YkE8DHEm>HGL~9-cj# z-oS=_P$j3^-wl(#y-XqO)AR;5^!^-rH%$7Zrhit`8`#j7=g_-h(idN>5dNm=4Q%M$ z`CW`iH%$6+P5)0#Z(u|3&X4qNnDo7x-czXbCk;ca8F=0J{}N<^ z=XgzTU_h|n`f3Bf zzaaUjp3e;%DTsa{7ZCW_e03Q$&*|sP;6lp`V;X?}pvw`3UHb za@qeA0eiv3>}So;u-RXltzolYHP66$eZPP(zA7HARPtS*)6M?%kFz zTdNiQbvoUw4{p`4**~~T!)E^a9SxiP-1{_a_V?~L>3Y7l+0biwc52wHuYaTAcAt{x z84VlzwO_+#f9GYBev-m}-O%g(m-jSm)_+A4RehWF^wAnN`!mOxbj@$3hRu3(o=Mm1 zu~I{?;qx_Y)<;VW{X8XKnTE~!Wu=CVeqN#ue*1$OHu}F!!)E@wQ^RI|c#nq5_5ShW8aCtE z(*|GLhZi(#?9Iy>HuIUcG;GH60{m(S`;VDlcr|S1EB~QkWB+DrxLDiQQVkpXexZiV zcyoz{js3n#!)82Nt6^iG*J;?ySGo+mRMmfvhRuAS*T9Qa`U4s+_A7X+hRyn9yN0`U zeLkvTa~|_M4f{3yu!hb0?(Z5l=RdD&*z8Zgt6{Sqn>0z)ui5WCM#E-4aJ)&^@=Vuo zM8k7UdO(%uYz>?B>UkPA`_W4btm~s(!)AW}MGc$%v>L!@era^QT71#bC|$bqNkz|(Tz6LVm$E!_N0&w)#G;PZ3f zWjXMrIq>Qncx?{+p@X8#RKi=ZzAIpKinFI4DXWaM?<-m_AIIZve4HMv}Vg6o;8|Lqn zxMBW2i5uqclDJ|19*G;~?~u4*{{Dy?=C6;q;gfRUKOynYc!%-+1@H5CU%@YPcz=uc3B13<%O3#$J>IAAK8=_EdFC0sJSV|zDC;@Af5iI_yf5Q@1@8#nSMk1v z_n&zABOtHieFN{Cc=7mm!vFuhtUhbrN?aq2&TD9n;v4OGOPZ=$`2!Wvd96|WXhwKm z)wPj%mG~5&KgnUfr=F*O=K-IcXHze2YFdMDsFyU?tqXr319h=&Zj*%@zH&h>ebY?^ zqB<+&5K?#ZaIuIt-qam8Ty501*$~p#*}$pA3dxTJXk05KH+4hu+XoWXm(oI+YkeX4 zu?5oBQI^$oYLsi?YAtUlfu~%23$>~{XSm>)zFG!s5kEw_bQxT~e(`VCPnrX2$o$C0 zct5TYs$Q*bqamQKqfvgj4u*ifAcm0KGn9K~0Mx}r14)uQ3YSLHlniTj>FbWjO5b=x zh_|xf={s+sTHKuC4`eV-Uw=bL-+$vJG5iinW%GuAUvXSKST($MW;Di?1g)vom-$d$ zTftyxJuk&2K9Fn~kT)MYp4A=?u>h?(a1~wd8IgFJD4H zxuOcS%3M8%qr%h^!vB8lyZB{-bE{}z!??*!GiJI;Cf%5Gl`|SmU9xoR1eDVl z!?ayA)+J;3vMo4hvdqmG1LLxkvAhS zq^+9*!~`na=o-i~6M-!2=rXjfNrM{Lvn;NARM*BtO&{o*iGwko%7~i@f!pXZY)oxt z$P9&CAICtY0j0l+0qFi5hG6!0Fj+C`D=3Lde-oo2{V@!n?5|+bpTC4E`P~a$G>7y6 z%$+RriA$)4-?oHm7_`tm zU0V7+*sNn&|iabB77#k z4UkX3R1=%X^jBPIH2wWn2IhA$X(;{8Rwjnu$)usN-)W_j++S$rM5=GI(vk96Q5tf6 zj+Ks+@35#fnNMvvE}Cy_B#e)1#K%`P^!YgreSSwnpC8bOk1uERe56HxD>LR}J1&m? EFD;aP&j0`b literal 42668 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±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 b{CtEyzZ(%BAB^bHI-)-j8TZMVTI>E_F~mPq diff --git a/http_server.c b/http_server.c index 133e00f..ab00d08 100644 --- a/http_server.c +++ b/http_server.c @@ -9,7 +9,7 @@ void accept_request(int client) char buf[1024]; int numchars; char method[255]; - char url[255]; + char url[4096]; char path[512]; size_t i, j; struct stat st; diff --git a/plugin_manager.c b/plugin_manager.c index eb39df6..3109515 100644 --- a/plugin_manager.c +++ b/plugin_manager.c @@ -349,7 +349,7 @@ int read_buf(int sock, char*buf,int size) struct plugin_entry *plugin_lookup(char *s) { struct plugin_entry *np; - for (np = plugin_table[hash(s)]; np != NULL; np = np->next) + for (np = plugin_table[hash(s, HASHSIZE)]; np != NULL; np = np->next) if (strcmp(s, np->pname) == 0) return np; /* found */ return NULL; /* not found */ @@ -371,7 +371,7 @@ struct plugin_entry *plugin_load(char *name) return NULL; if ((np->handle = plugin_from_file(name)) == NULL) return NULL; - hashval = hash(name); + hashval = hash(name,HASHSIZE); np->next = plugin_table[hashval]; plugin_table[hashval] = np; } else /* already there */ diff --git a/plugins/dictionary.c b/plugins/dictionary.c index f0d2275..29f3260 100644 --- a/plugins/dictionary.c +++ b/plugins/dictionary.c @@ -1,3 +1,26 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 LE Xuan Sang xsang.le@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ #include "dictionary.h" dictionary dict() @@ -7,18 +30,11 @@ dictionary dict() d[i] = NULL; return d; } -unsigned hash(const char* key) -{ - unsigned hashval; - for (hashval = 0; *key != '\0'; key++) - hashval = *key + 31 * hashval; - return hashval % HASHSIZE; -} association dlookup(dictionary dic,const char* key) { association np; if(dic == NULL) return NULL; - for (np = dic[hash(key)]; np != NULL; np = np->next) + for (np = dic[hash(key,DHASHSIZE)]; np != NULL; np = np->next) { if(!np || !np->key) { @@ -38,55 +54,23 @@ association __put_el_with_key(dictionary dic, const char* key) np = (association) malloc(sizeof(*np)); if (np == NULL || (np->key = strdup(key)) == NULL) return NULL; - hashval = hash(key); + hashval = hash(key, DHASHSIZE); np->next = dic[hashval]; dic[hashval] = np; } return np; } -association dput(dictionary dic,const char* key, const char* value) -{ - if(IS_INT(value)) - return dput_i(dic,key,atoi(value)); - else if(IS_FLOAT(value)) - return dput_f(dic,key,atof(value)); - else - return dput_s(dic,key,value); -} -association dput_s(dictionary dic,const char* key, const char* value) +association dput(dictionary dic,const char* key, void* value) { association np = __put_el_with_key(dic,key); if(np == NULL) return NULL; - if(value == NULL) np->value.s=""; - else if ((np->value.s = strdup(value)) == NULL) - return NULL; - return np; -} -association dput_i(dictionary dic,const char* key, int value) -{ - association np = __put_el_with_key(dic,key); - if(np == NULL) return NULL; - np->value.i = value; - return np; -} -association dput_f(dictionary dic,const char* key, float value) -{ - association np = __put_el_with_key(dic,key); - if(np == NULL) return NULL; - np->value.f = value; - return np; -} -association dput_p(dictionary dic,const char* key, void* value) -{ - association np = __put_el_with_key(dic,key); - if(np == NULL) return NULL; - np->value.p = value; + np->value = value; return np; } int dremove(dictionary dic, const char* key) { if(dic == NULL) return 0; - int hashval = hash(key); + int hashval = hash(key, DHASHSIZE); association np = dic[hashval]; if(np!=NULL && strcmp(key,np->key)==0) { @@ -102,36 +86,11 @@ int dremove(dictionary dic, const char* key) return 0; /* not found */ } -/** - * Get the string data by key - * @param dic the dictionary - * @param key @ - * @return the string value - */ -char* dvalue(dictionary dic,const char* key) +void* dvalue(dictionary dic, const char* key) { association as = dlookup(dic,key); if(as == NULL) return NULL; - return as->value.s; -} - -int dvalue_i(dictionary dic, const char* key) -{ - association as = dlookup(dic,key); - if(as == NULL) return 0; - return as->value.i; -} -float dvalue_f(dictionary dic, const char* key) -{ - association as = dlookup(dic,key); - if(as == NULL) return 0; - return as->value.f; -} -void* dvalue_p(dictionary dic, const char* key) -{ - association as = dlookup(dic,key); - if(as == NULL) return NULL; - return as->value.p; + return as->value; } void freedict(dictionary dic){free(dic);} diff --git a/plugins/dictionary.h b/plugins/dictionary.h index 169adfc..1675df4 100644 --- a/plugins/dictionary.h +++ b/plugins/dictionary.h @@ -1,5 +1,30 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 LE Xuan Sang xsang.le@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +#ifndef DICTIONARY_H +#define DICTIONARY_H + #include "utils.h" -#define HASHSIZE 255 #define for_each_assoc(assoc, dic) \ for(int i = 0; i < HASHSIZE; i++) \ for(assoc = dic[i];assoc!= NULL; assoc = assoc->next) @@ -10,29 +35,17 @@ typedef struct __assoc{ struct __assoc *next; char *key; - union - { - int i; - char* s; - float f; - void* p; - } value; + void* value; //char *value; } * association; typedef association* dictionary; dictionary dict(); -unsigned hash(const char*); association dlookup(dictionary,const char*); -char* dvalue(dictionary, const char*); -int dvalue_i(dictionary, const char*); -float dvalue_f(dictionary, const char*); -void* dvalue_p(dictionary, const char*); -association dput(dictionary,const char*, const char*); -association dput_s(dictionary,const char*, const char*); -association dput_i(dictionary,const char*, int); -association dput_f(dictionary,const char*, float); -association dput_p(dictionary,const char*, void*); +void* dvalue(dictionary, const char*); +association dput(dictionary,const char*, void*); int dremove(dictionary, const char*); void freedict(dictionary); -void stest(const char* ); \ No newline at end of file +void stest(const char* ); + +#endif \ No newline at end of file diff --git a/plugins/fileman/fileman.c b/plugins/fileman/fileman.c index 0689f5d..97a5519 100644 --- a/plugins/fileman/fileman.c +++ b/plugins/fileman/fileman.c @@ -15,11 +15,11 @@ char* folder_list_from(const char* aPath) { for(list np = path; np != NULL; np=np->next) { - route = __s("%s%s%s", route, DIR_SEP, np->e.value.s); + route = __s("%s%s%s", route, DIR_SEP, np->value.s); if(flist == NULL) - flist = __s(FOLLIST, np->e.value.s,route); + flist = __s(FOLLIST, np->value.s,route); else - flist = __s("%s,%s", flist,__s(FOLLIST,np->e.value.s,route)); + flist = __s("%s,%s", flist,__s(FOLLIST,np->value.s,route)); } } free(path); diff --git a/plugins/fileman/fileman.c.o b/plugins/fileman/fileman.c.o index a0e5a9c86812febbfe590d10304760e4751c0f9a..f6b681d1218769226bf3b5c9103a591284f83b3b 100644 GIT binary patch delta 5997 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 ZqRtp{zS=Z6tX2$J(>i|WL>;g3e*srBi+TV6 delta 6217 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.type = T_UNDEF; + list ret = (list)malloc(sizeof *ret); + ret->type = RPC_TYPE_NIL; ret->next = NULL; return ret; } - -list last(list l) +void list_put(list* l, item it) { - list p = l; - while( p && p->next != NULL) + if(*l == NULL || (*l)->type == RPC_TYPE_NIL) + { + *l = it; + return ; + } + item np = list_last(*l); + np->next = it; +} +void list_put_special(list* l, const char* str) +{ + item v; + if(IS_INT(str)) + { + v = list_item(RPC_TYPE_INT); + v->value.i = atoi(str); + } + else if(IS_FLOAT(str)) + { + v = list_item(RPC_TYPE_DOUBLE); + v->value.d = (double)atof(str); + } + else + { + v = list_item(RPC_TYPE_STRING); + v->value.s = strdup(str); + } + list_put(l,v); +} +item list_last(list l) +{ + item p = l; + while(p && p->next != NULL) p = p->next; return p; } - -int size(list l) +int list_remove(list l,int idx) { - int i = 0; - list np = l; + if(l==NULL) return 0; + if(idx <0 || idx >= list_size(l)) return 0; + if(idx == 0) + { + l=l->next; + return 1; + } + item np = list_at(l,idx-1); + if(np == NULL) return 0; + if(np->next == NULL) return 1; + np->next = np->next->next; +} +int list_size(list l) +{ + if(l == NULL || l->type == RPC_TYPE_NIL) return 0; + int i=0; + item np = l; while(np) { np = np->next; @@ -37,128 +93,147 @@ int size(list l) } return i; } -Atom lvalueAt(list l,int idx) +char* as_string(list l) { - list np = lat(l,idx); - if(np == NULL) return __atom(); - return np->e; -} - -list lat(list l,int idx) -{ - int i = 0; - list np = l; - while(np && np->next != NULL) + char* str = ""; + if(l != NULL && l->type != RPC_TYPE_NIL) { - if(i== idx) + switch(l->type) + { + case RPC_TYPE_BASE64: + str = __s("b64:%s", l->value.b64); + break; + + case RPC_TYPE_BOOL: + str = __s("bool:%d", l->value.b); + break; + + case RPC_TYPE_DOUBLE: + str = __s("double:%lf", l->value.d); + break; + + case RPC_TYPE_DATE: + str = __s("date:%s", l->value.date); + break; + + case RPC_TYPE_INT: + case RPC_TYPE_I4: + str = __s("int:%d", l->value.i); + break; + + case RPC_TYPE_STRING: + str = __s("string:%s", l->value.s); + break; + + case RPC_TYPE_ARRAY: + str = __s("[%s]", as_string(l->value.array)); + break; + default: + str = ""; + break; + } + item np = l->next; + if(np) + { + str = __s("%s,\n%s", str, as_string(np)); + } + return str; + } + return "[empty]"; +} +item list_at(list l,int idx) +{ + if(l == NULL || idx<0 || idx>= list_size(l)) + return NULL; + int i=0; + item np = l; + while(np) + { + if(i==idx) return np; np = np->next; i++; } return NULL; } -list lput(list* l, Atom a) +item list_item(int type) { - list new_item = malloc(sizeof *new_item); - new_item->e = a; - new_item->next = NULL; - if((*l) == NULL || (*l)->e.type == T_UNDEF) - { - (*l) = new_item; - return (*l); - } - list np = last(*l); - np->next = new_item; - return np->next; + item ret = (item)malloc(sizeof *ret); + ret->type = type; + ret->next = NULL; + return ret; } -int lremove(list l,int idx) -{ - if(l == NULL) return 0; - - if(idx == 0) - { - l = l->next; - return 1; - } - list np = lat(l,idx-1); - if(np == NULL) return 0; - if(np->next == NULL) return 1; - np->next = np->next->next; - return 1; -} -char* to_string(Atom a) -{ - switch(a.type) - { - case T_STR: - return a.value.s; - break; - case T_INT: - return __s("%d",a.value.i); - break; - case T_FLOAT: - return __s("%f",a.value.f); - break; - case T_FIELD: - return f2s(a.value.fi); - break; - default: - return ""; - } -} - char* fv2s(field f) -{ - switch(f.type) - { - case T_STR: - return __s("%s",f.value.s); - break; - case T_INT: - return __s("%d",f.value.i); - break; - case T_FLOAT: - return __s("%f",f.value.f); - break; - default: - return ""; - } -} -char* f2s(field f) -{ - switch(f.type) - { - case T_STR: - return __s("%s='%s'",f.name,f.value.s); - break; - case T_INT: - return __s("%s=%d",f.name,f.value.i); - break; - case T_FLOAT: - return __s("%s=%f",f.name,f.value.f); - break; - default: - return ""; - } -} - list split(const char* str, const char* delim) { if(str == NULL || delim == NULL) return NULL; char* str_cpy = strdup(str); char* token; - Atom v = atom(T_STR); - list l = __list(); + list l = list_init(); while((token = strsep(&str_cpy,delim))) { if(strlen(token) > 0) { - v = (Atom){.value.s = strdup(token)}; - lput(&l,v); + list_put_special(&l,token); } } free(str_cpy); - if(l->e.type== T_UNDEF) + if(l->type== RPC_TYPE_NIL) return NULL; - return l; } +void list_put_i(list* l,int v) +{ + item it = list_item(RPC_TYPE_INT); + it->value.i = v; + list_put(l,it); +} +void list_put_d(list* l,double v) +{ + item it = list_item(RPC_TYPE_DOUBLE); + it->value.d = v; + list_put(l,it); +} +void list_put_b(list* l,int v) +{ + item it = list_item(RPC_TYPE_BOOL); + it->value.b = v; + list_put(l,it); +} +void list_put_b64(list* l,const char* v) +{ + item it = list_item(RPC_TYPE_BASE64); + it->value.b64 = strdup(v); + list_put(l,it); +} +void list_put_date(list* l,const char* v) +{ + item it = list_item(RPC_TYPE_DATE); + it->value.date = strdup(v); + list_put(l,it); +} +void list_put_s(list* l,const char* v) +{ + item it = list_item(RPC_TYPE_STRING); + it->value.s = strdup(v); + list_put(l,it); +} +void list_put_array(list* l,list v) +{ + item it = list_item(RPC_TYPE_ARRAY); + it->value.array = v; + list_put(l,it); +} +void list_free(list *l) +{ + item curr; + while ((curr = (*l)) != NULL) { + (*l) = (*l)->next; + if(curr->type == RPC_TYPE_ARRAY) + list_free(&curr->value.array); + free (curr); + } +} +int list_empty(list l) +{ + return l== NULL || l->type == RPC_TYPE_NIL; +} \ No newline at end of file diff --git a/plugins/list.h b/plugins/list.h index 91071b4..af9ffc9 100644 --- a/plugins/list.h +++ b/plugins/list.h @@ -1,57 +1,61 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 LE Xuan Sang xsang.le@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +#ifndef LIST_H +#define LIST_H #include "utils.h" - -#define T_STR 0 -#define T_INT 1 -#define T_FLOAT 2 -#define T_FIELD 3 -#define T_UNDEF 4 - - -typedef struct -{ - char* name; - int type; - union - { - int i; - float f; - char* s; +#define list item +typedef struct __item{ + int type; + union{ + int i; + int b; + char* s; + double d; + char* date; + char* b64; + struct __item* array; } value; -} field; + struct __item* next; +}*item; -typedef struct -{ - int type; - union - { - int i; - float f; - char* s; - field fi; - } value; -} Atom; - -typedef struct _item -{ - Atom e; - struct _item* next; -} *list ; - - -list __list(); -list lput(list*,Atom); -list last(list); -int lremove(list,int); -int size(list); -list lat(list,int); -Atom lvalueAt(list, int); -Atom atom(int type); -char* a2s(Atom); -char* f2s(field); -char* fv2s(field); +list list_init(); +void list_put(list*,item); +void list_put_i(list*,int); +void list_put_d(list*,double); +void list_put_b(list*,int); +void list_put_b64(list*,const char*); +void list_put_date(list*,const char*); +void list_put_s(list*,const char*); +void list_put_array(list*,list); +item list_last(list); +int list_remove(list,int); +int list_size(list); +item list_at(list,int); +int list_empty(list); +item list_item(int type); list split(const char*, const char*); - - - - - +char* as_string(list); +void list_put_special(list*, const char*); +void list_free(list *); +#endif \ No newline at end of file diff --git a/plugins/plugin.c b/plugins/plugin.c index 43355ff..a36f975 100644 --- a/plugins/plugin.c +++ b/plugins/plugin.c @@ -46,6 +46,18 @@ void json(int client) { header(client,"application/json"); } +void textstream(int client) +{ + header(client, "text/event-stream"); +} +void octstream(int client, char* name) +{ + header_base(client); + __t(client,"Content-Type: application/octet-stream"); + __t(client,"Content-Disposition: attachment; filename=\"%s\"", name); + response(client,""); + //Content-Disposition: attachment; filename="fname.ext" +} void jpeg(int client) { header(client,"image/jpeg"); @@ -57,26 +69,28 @@ void header(int client, const char* type) response(client,""); } -void response(int client, const char* data) +int response(int client, const char* data) { char buf[BUFFLEN+3]; strcpy(buf, data); + int nbytes; int size = strlen(data); buf[size] = '\r'; buf[size+1] = '\n'; buf[size+2] = '\0'; - send(client, buf, strlen(buf), 0); + nbytes = send(client, buf, strlen(buf), 0); + return (nbytes ==-1?0:1); } -void __ti(int client,int data) +int __ti(int client,int data) { char str[15]; sprintf(str, "%d", data); - response(client,str); + return response(client,str); } -void __t(int client, const char* fstring,...) +int __t(int client, const char* fstring,...) { - + int nbytes; int dlen; int sent = 0; int buflen = 0; @@ -93,7 +107,7 @@ void __t(int client, const char* fstring,...) va_end(arguments); if(dlen < BUFFLEN) - response(client,data); + return response(client,data); else { while(sent < dlen - 1) @@ -108,23 +122,29 @@ void __t(int client, const char* fstring,...) //chunk[buflen-1] = '\0'; //response(client,chunk); sent += buflen; - send(client, chunk, buflen, 0); + nbytes = send(client, chunk, buflen, 0); free(chunk); + if(nbytes == -1) return 0; } chunk = "\r\n"; send(client, chunk, strlen(chunk), 0); } free(data); } + return 1; // } -void __b(int client, const unsigned char* data, int size) +int __b(int client, const unsigned char* data, int size) { char buf[BUFFLEN]; int sent = 0; int buflen = 0; + int nbytes; if(size <= BUFFLEN) - send(client,data,size,0); + { + nbytes = send(client,data,size,0); + return (nbytes==-1?0:1); + } else { while(sent < size) @@ -134,12 +154,14 @@ void __b(int client, const unsigned char* data, int size) else buflen = size - sent; memcpy(buf,data+sent,buflen); - send(client,buf,buflen,0); + nbytes = send(client,buf,buflen,0); sent += buflen; + if(nbytes == -1) return 0; } } + return 1; } -void __fb(int client, const char* file) +int __fb(int client, const char* file) { printf("Open file %s\n",file ); unsigned char buffer[BUFFLEN]; @@ -148,32 +170,37 @@ void __fb(int client, const char* file) if(!ptr) { LOG("Cannot read : %s\n", file); - return; + return 0; } + size_t size; while(!feof(ptr)) { - fread(buffer,BUFFLEN,1,ptr); - __b(client,buffer,BUFFLEN); + size = fread(buffer,1,BUFFLEN,ptr); + if(!__b(client,buffer,size)) return 0; } fclose(ptr); + return 1; } -void __f(int client, const char* file) +int __f(int client, const char* file) { unsigned char buf[BUFFLEN]; FILE *ptr; + int nbytes; ptr = fopen(file,"r"); if(!ptr) { LOG("Cannot read : %s\n", file); - return; + return 0; } fgets(buf, sizeof(buf), ptr); while(!feof(ptr)) { - send(client, buf, strlen(buf), 0); + nbytes = send(client, buf, strlen(buf), 0); + if(nbytes == -1) return 0; fgets(buf, sizeof(buf), ptr); } fclose(ptr); + return 1; } char* route(const char* repath) @@ -208,7 +235,7 @@ void set_cookie(int client,dictionary dic) __t(client,"Content-Type: text/html; charset=utf-8"); association assoc; for_each_assoc(assoc,dic){ - __t(client,"Set-Cookie: %s=%s",assoc->key, assoc->value.s); + __t(client,"Set-Cookie: %s=%s",assoc->key, (char*)assoc->value); } response(client,""); } \ No newline at end of file diff --git a/plugins/plugin.h b/plugins/plugin.h index d9ed097..8bf9f7f 100644 --- a/plugins/plugin.h +++ b/plugins/plugin.h @@ -8,10 +8,10 @@ #define IS_POST(method) (strcmp(method,"POST")== 0) #define IS_GET(method) (strcmp(method,"GET")== 0) -#define R_STR(d,k) (dvalue(d,k)) -#define R_INT(d,k) (dvalue_i(d,k)) -#define R_FLOAT(d,k) (dvalue_f(d,k)) -#define R_PTR(d,k) (dvalue_p(d,k)) +#define R_STR(d,k) ((char*)dvalue(d,k)) +#define R_INT(d,k) ((int)dvalue(d,k)) +#define R_FLOAT(d,k) ((double)dvalue(d,k)) +#define R_PTR(d,k) (dvalue(d,k)) #define __RESULT__ "{\"result\":%d,\"msg\":\"%s\"}" typedef struct { @@ -30,7 +30,7 @@ typedef sqlite3* sqldb; extern plugin_header __plugin__; extern call __init__; -void response(int, const char*); +int response(int, const char*); void header_base(int); void header(int,const char*); void redirect(int,const char*); @@ -38,11 +38,13 @@ void html(int); void text(int); void json(int); void jpeg(int); -void __ti(int,int); -void __t(int, const char*,...); -void __b(int, const unsigned char*, int); -void __f(int, const char*); -void __fb(int, const char*); +void octstream(int, char*); +void textstream(int); +int __ti(int,int); +int __t(int, const char*,...); +int __b(int, const unsigned char*, int); +int __f(int, const char*); +int __fb(int, const char*); int upload(const char*, const char*); char* route(const char*); char* htdocs(const char*); diff --git a/plugins/pluginsman/pluginsman.c.o b/plugins/pluginsman/pluginsman.c.o index 5c39932b738f15f4b01314ae9633233cee535da8..bb80d1055de88fb9bce857001ae9eb62b0a483b8 100644 GIT binary patch delta 4533 zcmZu!3vg7`8NT=K-ralml6@pW^5ABZY)C*@NO>4U@^H#yc^Z6BMvBEjFd}FyQK^6n zLOQH~k~uO^)DfplDlN8A90zC^1yV)D5nCK;eYd>g6R{n1tft?0_g_jMcjw>#|Gx8| z|NQr!bN+Mh&RN~fo10>_C7O3NnOR-iF{?2a^8cHp+1l}BU2%?FEuK^DtW&Dv%evTu z0^ZGX+NO2_Y&^4Ke;7`!l04 zKj(X^o^{SEQuTVNI%On^M;B(PITEI=IBV=s6~4OIMro~*)}!h+Ut@mPf3fF^)qY=t zdtB%)$+J)%*^3pL)~x#bM-{J^;7tYMvtq$U`aeP@ksAZOrC_pAZN3K984`Zn5tJQI9BgbM}s4?{$^(4 zi@klS)GA55ih%#yD>LKhnpH>3pA2e|hrAKcqr3N)YJ0F$ZL(qmyChEx)RoG-CsdtPSZ?%wgh`?;dj3s!#wc&fLA$%Zl$cc#|%%%697rMk=>l+Nu3gZ+7(msP0G zei%qMb=_xltbD?=o6!c;`fCsUD2rO2_fQLv-{_cshR8aYMRT5l*6qEB?)P;ZxxWsE z9=Zvu3b5yX$DalcGpuId=Uuss^x0b(swSI26w6kx$t95Qq5nvrCYL}V+lKsJ5-24a zDX4i6(I_IbAD6a<@jvzqFg0T22;9x|;p{NpOHk7So#t_4~o&gci?Paj{ z!89%pE{AEa#a|Ec;NW_gp<}R%jD+)NXto(uMnZGm14=U&V~~-soR0usB&s$NQ7y>$ z{emyy-+mK+y=e7am$%-Raz2CUJ%}lc@(-W|cyzw03=)K^ho&Kj69eJ^zUfAy$SHy4 z^_yWN%AJJgiTn4>G!lcIqz8enF%q@Tl{wdDBQe&Q0JNAx%rX*9&Q_qOiLUh}R_j{e zdn905_T8XnqRD?(h=r`lKhsG=GZ{Z(YEC=Qb|S>Iv@q{4(wPQPr$rwEu!6y7fnra< z)`JIN=I@4C{-&qIrsGxwe1*lVy<)rx}pAi^!J_34MP@(f3P%dbZV zCSQV@oa-+^&CWugI8HmJHs9F}G+9uK^FkVMp1@Y;4A9FmM4NN&613d80Cb6%n!7havDziB~ZFHDqCprEm*iM-Ra?@u7SKiiXP^1}sF5;d0K& zNFXl8a0Qp2O|#Oc-K3ez?aSe`6wQ$`dkoBFFoTnAzDqm+(;ObyNM+gAg4qc(n)Q2{ zesy*W*jHi3vbTPm?AR~^MLN}=!rP|tbs?`ncbsv~RSpu+^(h5ttk9+ui~x>SX}+-I zG{B4%z#QKXE5ASoXJ$JTc%F!-)$TbM+2%8>26baWMfxkVpY;PXWDJQ|FPH(}GONuO zon!i~8%_Q1re+;5jgZwb%{14VKBKDeglV2Oeb!fIe`7>}Szy(h<}1K0;Ln(0Ylj&) z!M-QV@M*KkT4V;T;lQU)z^CDaY2XaetpX#U>H5{JtxFb`PgfTT7TXi+21cJ+EkT_|Zz&z-ySq*MFG*Y{qS5?N5bW#wM1$=4w7L%xLgu@DA8E{D`Z znju^q_dqfbF3I0P4nf|6aJ_vC31glsAfqANem6q6h*m=sq!Y5whXdv)j1M5^Atn}V z5o9Q&0Wu519eyw5LCE6}R(j;6vGntK;9`{_#e8QY=wI@eC%#+9E^p1R}+06KW#VO45mGfI9R>adiPHZQXdDdgF=z%n42>^Iw_ETYXjDgc7jz}sABD!j;64J4%IR`} z#4)=`zFpu0)m`EdT9TW9_;7 zxAacI@5p!fZo%&feopX*g1ZHu65J#BOctYx3lWypd|a?A_+7zQ2tFxzoZwFdPZiA9 zb|!p{VAe3=TLkk(o_L*yv5TWZJS+~yf`1{nQt)$vhYH>=c(mX@2gcyK*z>Axf0ZLSHbsS%BYFzbfwWGRLU!&fv9-(KHUK7{1sEV40E$t_* RKfUdawnget&0jI~{{m2)oTdN( literal 10404 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 diff --git a/plugins/utils.c b/plugins/utils.c index ee1a71c..469af6b 100644 --- a/plugins/utils.c +++ b/plugins/utils.c @@ -1,3 +1,26 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 LE Xuan Sang xsang.le@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ #include "utils.h" char* __s(const char* fstring,...) { @@ -15,7 +38,7 @@ char* __s(const char* fstring,...) va_end(arguments); return data; } else - return NULL; + return ""; } @@ -296,3 +319,10 @@ char to_hex(char code) { static char hex[] = "0123456789abcdef"; return hex[code & 15]; } +unsigned hash(const char* key, int hash_size) +{ + unsigned hashval; + for (hashval = 0; *key != '\0'; key++) + hashval = *key + 31 * hashval; + return hashval % hash_size; +} diff --git a/plugins/utils.h b/plugins/utils.h index b922c80..e1d327f 100644 --- a/plugins/utils.h +++ b/plugins/utils.h @@ -1,3 +1,28 @@ +/* +The MIT License (MIT) + +Copyright (c) 2015 LE Xuan Sang xsang.le@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +#ifndef UTILS_H +#define UTILS_H #include #include #include @@ -24,8 +49,20 @@ #else #define LOG(a,...) do{}while(0) #endif -#define BUFFLEN 1024 - +#define BUFFLEN 1024 +#define HASHSIZE 1024 +#define DHASHSIZE 50 + +#define RPC_TYPE_ARRAY 601//hash("array") +#define RPC_TYPE_BASE64 335//hash("base64") +#define RPC_TYPE_BOOL 40//hash("boolean") +#define RPC_TYPE_DOUBLE 977//hash("double") +#define RPC_TYPE_DATE 49//hash("dateTime.iso8601") +#define RPC_TYPE_INT 1007//hash("int") +#define RPC_TYPE_I4 235//hash("i4") +#define RPC_TYPE_STRING 17//hash("string") +#define RPC_TYPE_NIL 529//hash("nil") + char* __s(const char*,...); void trim(char*,const char); void removeAll(const char* path,int mode); @@ -41,3 +78,5 @@ char *url_decode(const char *str); char *url_encode(const char *str); char from_hex(char ch); char to_hex(char code); +unsigned hash(const char*, int); +#endif