From aa78c565af6bf71ab23a90bdd61c19084583b52c Mon Sep 17 00:00:00 2001 From: Doczom Date: Thu, 13 Jun 2024 00:42:58 +0500 Subject: [PATCH] Update to 0.2.5 version - Added support for uploading a configuration file over a long path - Added support for special uri paths (using the "*" symbol) in the configuration for groups of similar uri paths - Added the function of reading the contents of an http request - Changed the format of the uri address in the configuration file - Added a request redirection module - Added a module for blocking access to files by url path - Updated documentation - Updated module examples --- bin/httpd | Bin 5992 -> 6204 bytes bin/httpd.ini | 26 ++++---- bin/modules/block_access.obj | Bin 0 -> 674 bytes bin/modules/redirect.obj | Bin 0 -> 687 bytes bin/modules/srv_control.obj | Bin 1044 -> 1643 bytes bin/modules/test_unit.obj | Bin 1806 -> 1810 bytes bin/modules/test_unit4.obj | Bin 712 -> 828 bytes bin/modules/test_unit5.obj | Bin 714 -> 718 bytes bin/modules/test_unit_2.obj | Bin 1842 -> 2012 bytes bin/server_data/docs/index.htm | 73 +++++++++++++++----- doc/index.htm | 73 +++++++++++++++----- example/readme.md | 7 ++ example/srv_control.asm | 40 +++++++++-- example/test_unit.asm | 2 +- example/test_unit4.asm | 26 +++++++- example/test_unit5.asm | 2 +- example/test_unit_2.asm | 39 +++++++++-- file_server.inc | 21 +++--- httpd.asm | 116 +++++++++++++++++++++++--------- httpd_lib.inc | 9 +-- makefile | 6 +- module_api.inc | 29 ++++---- parser.inc | 18 ++++- readme.md | 15 ++--- settings.inc | 9 ++- sys_func.inc | 90 ++++++++++++++++++++----- utils/block_access.asm | 117 +++++++++++++++++++++++++++++++++ utils/redirect.asm | 101 ++++++++++++++++++++++++++++ 28 files changed, 670 insertions(+), 149 deletions(-) create mode 100644 bin/modules/block_access.obj create mode 100644 bin/modules/redirect.obj create mode 100644 example/readme.md create mode 100644 utils/block_access.asm create mode 100644 utils/redirect.asm diff --git a/bin/httpd b/bin/httpd index 8d6183679985d5286b2645e42bb1c3d137104fde..06edceaeca2b00fa103eb807edcdbb160eda8562 100644 GIT binary patch delta 2302 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 LHk3c>$87usd4cfq diff --git a/bin/httpd.ini b/bin/httpd.ini index cb36391..ca15016 100644 --- a/bin/httpd.ini +++ b/bin/httpd.ini @@ -16,14 +16,18 @@ mime_file=/usbhd0/3/mime_types.bin [MODULES] ; list units ; path = unit_name;cmdline -; not uning ' ' in unit_name;cmdline : "path = unit_name ; cmdline" is bad name -test=test_unit.obj -rasp=test_unit_2.obj -t1=test_unit4.obj; nrjkgfehkfgbvrjbgjkbdkg -t2=test_unit4.obj; -loadfile=file -t3=test_unit4.obj; -database="file.sqlite" -t4=test_unit4.obj -test5=test_unit5.obj -admin=srv_control.obj;123456 -;database/sqlite3=sqlite3_serv.obj -;database/cvs=cvs_table_server.obj \ No newline at end of file +; not uning ' ' in unit_name;cmdline : "path = unit_name,cmdline" is bad name +/=redirect.obj, /docs/index.htm +/test=test_unit.obj +/rasp=test_unit_2.obj +/t1=test_unit4.obj, nrjkgfehkfgbvrjbgjkbdkg +/t2=test_unit4.obj, -loadfile=file +/t3=test_unit4.obj, -database="file.sqlite" +/t4=test_unit4.obj +*/.*=block_access.obj +/logs=block_access.obj, 400 Bad request +*.lua=test_unit4.obj, -database="sqlite.db" +/test5=test_unit5.obj +/admin=srv_control.obj,123456 +;/database/sqlite3=sqlite3_serv.obj +;/database/cvs=cvs_table_server.obj \ No newline at end of file diff --git a/bin/modules/block_access.obj b/bin/modules/block_access.obj new file mode 100644 index 0000000000000000000000000000000000000000..a2dd1cd6ecaa3d0fae6b542d0b8d26dab842b2cd GIT binary patch literal 674 zcmeZaWMZiKoSBxv#K6GJ00J$HdTBX{C15s$I0U3pfcP0BgwGD76c_>=^imQ_5+Ooh z@&J%j1FF#hngs%EK_$1H32Bq>(0{c{|9IU zP=d9X#qfaP$v}`?3s4S7^#CcL!5j?#OH^3?i)H}1hgcY7fD{O50C5Zun*i}vAO?Yq zl9Gay_{_Y_5{3y7c5!M^8H}BrlV6+)Q8<94Akc15q_8nK!C855Rwtab6wX=$XYGcw zfDEW9EI<}8DuL#4z{PmrVghh65xAIZM1X%#NHCBOF@uQ#IhBFTVrD>2PaxMaGl1*? E0F3Wz^Z)<= literal 0 HcmV?d00001 diff --git a/bin/modules/redirect.obj b/bin/modules/redirect.obj new file mode 100644 index 0000000000000000000000000000000000000000..0b52967d623a957722a4a20b24a4f4b0461135c1 GIT binary patch literal 687 zcmc(dze~eF6vtnaP%;FmU^j;j87xAv=%5`+7M)5hDy@?x^aqKSR_s-mB9$sw>QKa0 za8Ph_b<$YS_^%WPhb{_2{9aR!{s+GB-uH9w9p4Mwr2-N)hjzIk5y`~kG!QFSOg3V_ zyh4h|LBL^t2`5|eK~zM^jX zQ|T<{clsLn2X&izsO>7&JFK!^_#6W7`OcfQxDe-^9y;F9PY!qm+{FjH0YWYyFjL86 zy5fZ`Ec*)0LU_y}_mE4-M#c9BYLabne~mWO|1QyM3YaBd&xBUxcGm| H#LxK!T9s)b literal 0 HcmV?d00001 diff --git a/bin/modules/srv_control.obj b/bin/modules/srv_control.obj index f69cf503d6a962ef637a76acf687354a08d5aed2..071e6ccbc497d11b74d4c904342d059aab3d94c0 100644 GIT binary patch literal 1643 zcmc&#&x;&I6t4Z@qG5$yu>&~>k6|MboSn>?K$z+2?4o;eiIa>Zf?%lbuAZ(;cU9Y6 zy~(m!jl`hCg6zSAhs2ZX{sDUOl1&hE5ikA?9zqTx!GNHQuexT-Rl%zT^XjXw-uvF0 zSJmBX6O-inV;(hU2$>>!d^oWfB~(?|nE44pLWC<%ne}rx0qHI;hE!2QRrY%nDAD)V zu^&p3WzyYm?q9sLtrliK@Cfdf?%g$X+&(vb@8RU*-I&Y~GIBDcZtW{Tzq#RqTTj%{ z+rNKtNEHQH1*B9n)o+WA!>+Bat&eulc?cp!O@Ak?I z(O!A(%kuRb@1w}-@P}BJ^Ox6bbn{HFoEbUaV$>DA@u>-Sx>x*o57Tu=&JI!|=QFgJ z_i2J69~+Ue@5AAP_|(Z)$fc2U8=c}i7#1Hv7bJ8nPCEF}z3sJy>GLB;;o|-@QF6cp z3DS_bu}TxqjTsF+S8~)D=sSQmmfK zt3?Z%QGW1iD|SuQX~O%W1pyO^kS3`VVS8&a`tLLt zR;J<~nJ}seoBtN4@0PUf%RFS5shM4aLMA-aIfKENuje%6CF(65Z*N61Phm4*k!r!| zlgHbcEV$wl>!&`3mWs8N%*>w3sVH7Cm!-PJwBPB*=k zAYerSN6i>HR9y1FMVb7IkW8@nUy+FIJUypc*x=hbITUs^4ydV!BHE z1U?UXoWl7$&dWGY;X6W)ot>RZ{4y6@kulaMc7TIK7R>nmk9Hn&<5N#&$bv<$S)^Z& zW>>$Y4Eo5TPb~V}qCJbgvgjL&_AUC+qMt1K*`g;F{bA7&Y^?_;aDPrpVzBgU&NWrqTWh3hb7- delta 429 zcmaFOGlhf8hmncl`F5eSTg(%=q`3GP85mL+7#LnLP1KX)ssQqefOsDB#4vf$KS1$r zKbC_pnLaPgU=Uzn_%Eu!II&AkZ8lJ1Y1-1c@o|SZ7{bE4OH_EeYg7c9?HNk4Gk|go zVgE%_7$=@nsZRkK)_S0XC#~5cxRmX`XaSI)1(J4wNQeexC1->Ibp-qubpQ(e7xe&= zU~@aqWpqG{f~tMlc|60!z?dQYzo-w$7@rI-pgfQV(g>tLI$s~@_EBL8{4c5k2V2 zCLm^G_zY+Lg0t9xhC^g`!o~IiSwLZ+j)QQqqj0g4aIv#+G1rIy|Dcdy2ACO440>rf Ni6uaJhRHr`@&L6MU&R0b diff --git a/bin/modules/test_unit.obj b/bin/modules/test_unit.obj index b7c3c56ff40d555f5762a017029e4a0dc633b1cf..a0d0c255e7a71a0319f136516ce69f016da8be04 100644 GIT binary patch delta 50 zcmeCz!2b|my%eL2oVC4 zAax;(3=GGh>ezsM2Zn$Hh6lpJyGvAf8toW>vZYr03xE>cek=!HGJRf}!63lE@LzNa zP^k4liQI7@4U{ZV5$LU8Y5i8hJLgY>9YYE0lK%{^zs-%0JH*2PF|4~rMWET9p(MLI z%)s!Zr(=T+7endKz~8q12O{$B7oQ*h(Q7U z7KlM$!h{JKB_#zZ@tHt_7@+Lp)S@yNJ2@x6I2EFH07*fh-JmFEV^D#!%HgbbIBP1L zH6PAe24`)Dv-ZMS=isbcaMnXO>p7gI3uhSuS-|KAy2TVOW(gOwg^M}D#atr-{DVS* a8DM5GF(9XZkXg(O$SED$=%plr2B2)I)&3lyM7JNy!Iw;*mu4^sFfjZV zod6VSJy0Td97qEtOH>4UD_B~;mGI8_(_qI?!n))?!|QKz>!7aZ? zp(G=-SfMm8vqT{?Pa!!!FD)}&Auqo~p*XcfA+adEG&eP`q}T(b9|%H#*dK@!fOsVk zgTRCd6EaFl3R2=TfrcoEAZ5F*6{i MI*<>T8CZZM0C6jGo&W#< diff --git a/bin/modules/test_unit5.obj b/bin/modules/test_unit5.obj index f6850b153526062bad81d0325c9a8d5e0ccfed3f..92ba1a96ab40ede873abfba17dc9e6d3dba43603 100644 GIT binary patch delta 49 zcmX@bdXAOThmnb)_H$<1l!=_mjISo@%5(ldee(uEF=trip1M<&Xup!*>=w7Jm-17_j~WQ=UYFi z)n_D`WmnV58IM)H<4{cnV+qDseHA8*Mts6d>)M|fGKYlXPETaU40w|sE7s7|f?esH zGGCTgAH0&_7`*tlhQ;FjC9}C!i}uFm&RQ!W>uI3138$qKk&-u=?;IUdi`%fDnv|JZ z^zoBZO1^X0(AoH;NIkSx_V_duFTPO=-S$qYqki^1eB~{e;4}>c?|_ASul-pH*;ge$ zMds`osiSuG1CLxmTf%l9wq1$TJj9q2ye+Dm;e2Ft?C9`#D4Cy7OhYY19LM2o=xX87 zy5nTH*>uezEj5UAO5r7)paInhPGBCueS6vTqPR|rY<;h@HMvgRh`knaTF5tKe_JNd zkMtCBC8b$ZjQ>+D?gaaASiXc-MD(4Aew2f)Zbh}wh@Iq6Bgc7 zd2RhgL&bu0vRl_Lr$<1XVobQXWWn1zb{0lKN#zg=C delta 801 zcmY+AUq}>D6vofYuH&|eqr$dJ2#UJ&2Wx9F%(oy6gT+QycY9J4(aoSFCNKz8a08jB z9WL}Nk{CoF_V+=>HB5qfsEA&A=q-kl5?_1>rf=?z1KqiE&+mTs`_5eEtGQAg&1gD( ze_1!WZ@AIJ=?$G|goqwiV8N)z+ep^AlOsd+kW|z%4PQ%$Xw`6Y4NYO}obGVh)Atr% zX>be&$zn@ceyTg2#3yvvrc4mreo}eSv0VpzNM2{{DYL!6`tuB zp14joZJAnhcaI%7ir&QybJh^eT6^642p>%L1TtBqr7Jij^)HN7_Q7V;tPo4%2f`U^Qrq=?jy`bPz$6J%geW zolJSAD@?aRnCQHuv?<^VK3-#b&GZR`310|bP#>v5QQCRdE;0rG0TYP<6y>|i+5*!P oP(NN6pRrhmUujz)6@JUwd)7X%_L;TL%hsjdzATl+ @@ -24,14 +28,23 @@

Simple-httpd