From 92edb373e12b559d872285584459307a803d5f7f Mon Sep 17 00:00:00 2001 From: bolvan Date: Sat, 6 Apr 2019 16:08:14 +0300 Subject: [PATCH] ip2net iplist groupper --- binaries/armhf/ip2net | Bin 0 -> 38108 bytes binaries/mips32r1-lsb/ip2net | Bin 0 -> 73608 bytes binaries/mips32r1-msb/ip2net | Bin 0 -> 65224 bytes binaries/x86/ip2net | Bin 0 -> 38088 bytes binaries/x86_64/ip2net | Bin 0 -> 34616 bytes changes.txt | 4 + compile/build_howto_openwrt.txt | 17 +- .../openwrt/package/zapret/ip2net/Makefile | 32 +++ .../openwrt/package/zapret/ip2net/readme.txt | 1 + ip2net/Makefile | 12 + ip2net/ip2net.c | 93 +++++++ ip2net/qsort.c | 250 ++++++++++++++++++ ip2net/qsort.h | 6 + ipset/create_ipset.sh | 26 +- readme.txt | 7 +- 15 files changed, 434 insertions(+), 14 deletions(-) create mode 100755 binaries/armhf/ip2net create mode 100755 binaries/mips32r1-lsb/ip2net create mode 100755 binaries/mips32r1-msb/ip2net create mode 100755 binaries/x86/ip2net create mode 100755 binaries/x86_64/ip2net create mode 100644 compile/openwrt/package/zapret/ip2net/Makefile create mode 100644 compile/openwrt/package/zapret/ip2net/readme.txt create mode 100644 ip2net/Makefile create mode 100644 ip2net/ip2net.c create mode 100644 ip2net/qsort.c create mode 100644 ip2net/qsort.h diff --git a/binaries/armhf/ip2net b/binaries/armhf/ip2net new file mode 100755 index 0000000000000000000000000000000000000000..7550f3534d0a2c3e51872974bb4eb7290570dd79 GIT binary patch literal 38108 zcmeIbdz=*InfHBHA7*-bMyO#1#Q~)_sECRMVkCrw=A;;jX$~qH*USKekZ@>WFq(Bk zGczE9V}^r@D4~qm=SeiXJI3rL4_SBHU=m~2EQVy)Cvl%tb=yJ)9f@W)WY^8S-(Ph% zj0D$w-uL~yf4rY=lukYkf%)}=f z$HaLy$eg9;nY#Opsk`3_j|5e8#LCC1-gIS|Vbs+T=T7%3J@G{yk?=S~!B+IyNj-&dj@DJ2e9WxiWdb;xG{-00ew_3Hu`|E3q-J@!Y zyC>Ebw@w^h%(&chj!yJ~Hm>jITI2tdWsDT3L&Ng+81I$jx$?I78I^lMNbuO?>ZyjwD)Q!3`{qB0s;PzJ$aPE4+ z6SfzeKE??8-YuA%M~ex2cyWXoUc3VOslH%7*O(_Y7l(Qy=yxn<^*@gDSkA^hT-@MZ z7hYRVM}DkRTO0=r#`y`yLFx@Js(c*f8=OytWsb_+S$XxTYmIZPzrU#h#|V3PvFbe34oYrfgAFLOi z#TOx8!5fX#)wOY#=0$Vy%P`8K)NMSi-ax!In)lN8o&Np<=#Sn?U&99URcSZO{zJZa zn|2y!81P2Tg1|Lqy!x0842_h{<*aA(IM3xQyxav|bS=EhW&ZPMU*VH^I%OD zaXt`F6`WVveYwAXubzu9B!^K)dSG}lVipDs#!MBxLikU6#&}aD=LzO~Qs&)V+?V7( z#s6Gm;=F>h zWKP$zyDP%;!IRG_aIY%E7q;VCIMjH@`}@bMO?w$9>RUL`xXT8>^?#^05H8VL_xF_h z`5Wj}(UGx3*X7ODXOG5uE-M;rbmO5<_R+}aGFwalI zcY|hwz^`R{g>Ogp7jY_&Edy8ogTB;8xD)OrhY9E{AIt_$$;UL#(p8=1engjtXfIea z)>r!blU(B$b`_UVCnh@D^vU>}{n8`dspbcpzneXj)>dgj~V3!W7Q{fiJJKVx__Jc zh`N3-mVPM@F?imp8Khg&Wzn8cq=$P9R}e` zb00I!3uafY;m>|Inx9*_hevfkuY9j-={Sui`qsgVvu%76gI|&>=^^lLgM?tnLdt2b;zy?L|~|5xO1E_GH==TgcftBuqV?+F)e{rywLH{Y~E{t9(Q zMK>K{&63Gl=2gyZoSRv@yutOm9LCHK*D3a|-6PU1#-x#DzdVZ6dmke>+a8I|eip}a>rChY}Q$_w_u&&Ku&!%SEHUuw;<=80MtQI_r~nu!k{ zu}n5EJpBj0xUn|-v*+)J_cvo}v<9<791ej_ZrE;7VX?C>l&7)W?(ly;{DOPuK<=n#+06JZ*Asi!Z;L@d{dN zqK672lb`ra0(v7~g;?!NZ`#tS!jCa;En~g7EVsWHvAg`gv0n}xQy=QFIPIk~>TKx? z^HzyA=E>vc_>qLuo*xE`zXnE)l>i4lhr04T(8K*w#4O$)F^f3%aNG~gkFu70jiZL^ z2>)fE)r5EZk2R+D7aP<2k=aE-Cj0ETn7jKmt;d*quh#AFavYzbb@rxwM09ONkIrcK zO$M0kozTh)vgn^)4)j+L2i7XeuA+}~>0f-Iu|_b?i1Ija-L?$t_7{hn-k3W%T>qV5 zJkwno?;XZ7sdS#P8bnuksSsmau6ws|9&Bzb#LSI5;G3!UXIRrWU!C8IY;4W$FFpXD z8Ry~R$E-!@)jdU%UXqWvv;25-m0y+W?8a^d_2``hbd9B);t6PL(&;?5p=maK{1fft zz@Gq@$2UEDRDHy06NA20soAyxCX>E*Xf(aqH|ed&=EKEUs>82JclaiCZxNl<`v!Ra z4aac~Cj!n)D(@gy;9^IlE)7l1__5I3vpW2kNf(8q>e@7Rc>jZ5v;!E^585WXbGq?5 z^sE7zEplXwx{G6TJBu?%`Pidbtixvd7P61c8ZX|n9WQE}Y#csMDi+br+|V!JAq#K% z1;rlDK@Sg>y$;Jf!4!yBjMGh>Fpgo#K7H!=#(xd@)5#Wf9UJgGOW&JpuW%gxld&FWLq0qGdYsX3|4PG_IM1C0($k zI+pH;)92B|&WNdFJ_+zCJV~CB+op?afB9zjaI4RY-SLil$-*}xjvvU@S!SJlwPXai z1zTrse{uiF$AXw``8(daAGmJ|b%mZ;W_=+^-Ds{4%Dz85-(z>00ryaB?d+k<31=vw5gkJ#(ucH|Zde>dea)S|(Sh4(WEa z|1HTfZSD^7Sn5Of8@PWR+z%Y{R>q9I&zRFS7Gv&Ke{N;Wh2fak=_ZXQUGb=%bN&;~ zRvBj9-^~4y@_5pH;-3?r#P+08p?$Ej2bpI>LGUNA7f~}Cd1%0gLKdNc^yG<8VxJ=T z+0O1GiFBv0HF4$HZ(4}A0iW?CBfE<+=fTidQXj0Fla_lgeZzNdC$hJ>SPML+8$5IV zTWf!@<{Ml5t5rtZL=XP?fcB$-X%BVA@w}EkF668^?NWW_!ul8AZ#RC?!9p}O+ehz) z*YJTK&D`rJYZerc%Dqu%bhuu&Jg-A^^vdmjf}M)F4}M@9>8T%p!$Z#Z1IJ#89=bL^ z>0&Qv7}XwJfv+te$Z{h2sJm0^&ZZAZ1|B^n1CmMbn~da2{JekULxE-AAM6;s1w5ut z^1b8?J(P?>Q}J}n-4gPA)ZK*KZprVuJWKrrCwV@W=`32^_vKAybFpU07Jrr5U;LNf z_a95RSLcnn1$)+s96W?Pa87OE434qolC9b36gxc!e0znl2Hj#e=Ld(rL?`q&ejK?p z_6&a>zL0P)9{B$6u`j2|jr~x`PKNRZ9c*V-UiuV1+hI9b-^y(&Sh?&GbgggMn+h?z zy%@E#M`F1waoYAg{MmaPevE9t?9H+GJ&xOzuQOxdLoe9LT!bI&%9AFAuA^)$HYKwC z**A`V@!6w|*pup-g@v=B@nfTrTln6_Zy4+BEJm;=S|1wx#A@VI{$C^&^CS2TqoG%n zdB?yrLW{g)3dm$Kk(!-P@T@MCMWjP2jhOLOb5wZ!W~+S*+WY*=OS~g%Pr@-@P9kk9i?aXbKG|xiKe`u z(cTyOH`0;PeO%_EVB{lw~*tG~SZ<#U|oEfLGx zl9zs41PsZUdyXW(ywy*5AI~S5<3+%85q=E({PV`lzG5V_T{i~Yzc@YgZ%k7xjZR2^ zuTbsI@x?1~{3h8#&FgylL`U_WtdpJN`NkyM+kT5H|844b`;}T&Q2%tjH@$W)=D?dcK|Kis_Tm3G+%?XZA zQYIS;j|U$q>n3beLjJq-sIH?S4`ahq&x1E~ZK@N$XJHW5vv<8FTNrbqLx0COzeS!x zf6VSGGGAES3ocN<^e=eoXC zs<|E6B*xN=KWT0W#)z-XweTZ;isJ=I=(ChPCCR0uXQ`~8XujGP55<~e#g~|4we!f4 z>ePMju|@JPtHBArDKKC!%6v9_dj{R&tc7c6_aoZH zQ(nMYx3}8$0^;q^k@@3;9#)^o;Mb)uoNMy()xTX`@^>}f|Ddk?s#xZ-;;WgGUl+^l zd(BCjUipc#z0qd$K*vjghYpT_w{hux#s14pA=Cwon=lc-#*TuIZs=u_Z`GJ%XM>xH z4|)RHC9SpsdSLHSp2Ic6n(^LqdBT>PwLsDKLFNl>UC=UOg*g|edLKkC%>05jq#qL{ecgwpVWgz>8?dH{Ua8*77U*#x6jZv^do6w zXLhotV$LbGzbWKn8~fV`A8IXC1<#Fw-+nRqr#xSX4K@d=+|BqYHw5v_EZ?DT%UO>u zSx`Wxksb7qQ(7AeR;@3q@jdZPr&QygR3jgaW_K~fA2?}%CmYqqZ1JmzLp9<9$d8TC z_D3N;(uJSH!`0lYT>V$ts{i9No;}*Y7zUgjg$Bp3fp3}Dyl@>dzo2<>)PqA<2Rvn< zO*1yzO8C(G8F=%6aPx-n-0cA?usbCh|Fv|3xw+J)jKg=SS8Wyt=lt8`bHefOefH>J z1D_!y+EZ?Hy7D$MYw%SR_xZCb_#S%2{C%(4WnQ}rJ*qZgeVh8oYz!Uv;u-4J*fa9= z=uGR^`yaj*8!*lrF72`!k+Z#t{ECzBB2_u9?ex7aL%umKVi; z_-wtdUej%BrZ<}?v^D=SUnfV&z2deCiGKPzM4npn(-|lFgU-jHPe9Z;H zgJZ@VLcV`4e-R%Q{AI%!#6SGQKh)88V9_>Qk7MT?Gem2s`ly30WBjk=_7{%}hGxn6 zW5rp&{6xMk18uFYqGRnV4oTXKPrSo;QLURSlYK(^V-R?WrezCMj=Kh#s6#V3G8xLKJ&;1v`d*adkZ%#uGAD=`V5ZOX67hk<%e{mkN zBOdLbVw zxXjNpUBq~Wi$h^w#3maQ6PTyIk&g?YKeKMK%GdWu-?%BiG?zbwe;BY1V_pf`Yc3Ds zOA20;Tv9X-dDM8pUEo%A1kZQM<5`)*MK^N|Ja| zEqZ~mRX_G&V%jtEBTMjZn-<2r?80K&jt3uW%5!jS@$~${jq0B^W4T_)vvJ_y z;Ha5-e5ZoOiqvP1M4W}iX*P6VyvXQw@+)TME91A1+Hs@~TGy55fIs$)$bs$8)VW=M zUBTT1U|CfjcRbfixYnF1Fw6&rXc>m+SN5?ZUB$0{5xp=9JTzmY z%_%(0KsSGwc{%iN+2GBFe;B9x!ZG+n9sUe^A$XiY%w=KW8f07iG8Fm@FX09Lx~YH< z_@wBz61Wy31Mng1Quu{&KgT`&ux|FjeOHm#N$>gJ*dC}%_j|d&6dur88(oq7BDVCT z|Amf_y$Jm#>eqQ)@v->0W6i#y#@RWP_3aRy(IG>@?@;yk=ky1kmV8Gy&0bqr_T=64 zdma2B{Z<*T057R;!JABZ*1*0^s@y+){{?L>8HDbjo|W|q%O*L+?}Wao7krIphBAXb zls{^roBpTDUflZ;$^U)hEc1=5Wuy=OjPpGlTR6Hn9^mNje{17cIC~sl<@h>BH%EIr zniSlkZw^RStLrbwI?okDPYYQ;)Zo{xHlx(&$uItUmp!V(It)WsdU!1 zm`Ps6{Fz^IF}P_0_K@%JKP`75Yu_%`jV3vm{h%mxw%vVk$2}OOJkE77k{n*JzWt+y z8LY#v;&~K1z9wdRk6vn-<_}xu_$8&Y?kk7N|Jb9h+|R)Jbr*kd`^xyujDLLmsj(~N zDjV46{nYD(9v))&b{W_Ui5@fv71bk>qB z_E)A4^FIo|zXIPFv$*io7vX1UsyG^YDvHg)Tr4V}cP-=SdO?A8OMN`cLH}_x7k@d6 z4Nc2$dOYTOPfM>$FUPZbwm68Uyr&}*eb#-mSU*w+o$j#CmENoF?xfDmK@DxgcHn9l z<|E+F5nke95dmW^ayrZ-ZHEJD{s%SH}GH#9A#+;VGycOiOg zi`q1VJkadbKXrLm{+0Mk!D`_r?FD}(eLas;xQeU(Q9yZbZziiL&8f6rcDxqtSr zim}#_#dR7x&A#WA@G3FBXxg*1?vxxzhc+{=Xt|6t*W~|n6&E-2EDe3xH&eW=20Ik9 z|AzMSr61Y9?8<*JgfU&X5}rKNuG7Gu=?wNSXL64o}p_5J`>*??KX!AkvG?#?<%(kpZ^Dh>kEXGOQ{WxO5q{2LJ|oJ{9D84} zmV0zb7z0rKYT@pE@S4yw`q#cCeT8~O{FD06{wHnZQGBWSIaiG=z5vb^f!iU%?RK{> zwf(RA1oI;F9Jx_Lz#nl~U?tw_(x!!ewu3K~nWvuVb4)|Qp>B=aF$5e9t%YYbH&gre zmm(SE<}BNJ2l!cJ_7xvRKH|_W(Jc8=o!e;AyI?$X&R+s?h{UD4Ol(-l2?zwk%BM@N=qAsgP$CQd1R z*M-kplFxR^6(>o6BlUS_xzB;JS?Tk0dIo-Lz#(N%V^ey!)i(Fx-{jvVF9({VR}L31 zgCFK@e|nI!eaiXZcM!+U!FIj%x8-- z@Y(ipq>kQHSTeoq%PZWjZ-i@_=6%H%{`B3x+o7fP`PbhN9Y;aG3N45qHVsP)9_CBi z{o%TYTym!~zbMlMZ+e9xtihpcKBBy^ZesF+AJ~74KR6k@ir(V&II(l|_bzPEUfEN_ zo}OY_iV29fuDOFf=sWI(&I^Lq(1$K{mfH*Sx8ut-Okax)@){nV(c(XWUDJGlDH>%j zN_|D$tNmGwk6h(DCbG{*PSqlKVVD8W!#Cw?knj4phaBmjJ~Q7ws@)$vaaKM;Tg4Tk z6WNc#&PAY`)=)2qH|<@;`nRVY**T&aUQ35-#hBlbAH*DRmXnqlQFvhZFV8~n)E+;7L{2!oHC%Hzy3V}{Z`@jF8UE`*&9%QC zi?KW65$obxC6ir-@o_`B@S=B(6g-Ty3Mh8GyCN&QFEw|zD+&M&+{nfOe0 z{%-t=^Wa0`CirgN)90bHW>X$xZ*vOgDU2`O3|+>HZi;F1>dnwtdd?7)1AnP+=L-4` zW2o$T!atd7SVMY+Imnax(3(U(FMa3ndEXg4tniyk?gHr}#4?{C7u5^S#b(vOyZ>Bo zj;Wo>bRTn~uL&MKKg2WHTy&FZed(ncIvdk7!wS!-S>ef~X7&G&br@^09@bP^d)1ir z1$dshF8wlb@Mq#VFR0IW!KF5S6!C=ljALctHR@DBOV+kiP3}Qp@9@PhF1!*;Zw8g~ z@zu5rjWur>GR#J%ct*UU-pXCgJ}x;fIq&JZ=1n~sYqH%{94uJ<$BG}bHxXO9|FuDO zwZF%*{37K$qU=9p?#&P7x;qjH3 zjO7OB0(3%P@a02YNFL8GCi>OTv?1y!p0*$u_iq0IE8CfmX19iYR_w0U0p#h2v7b=q z(7)CxmGY>$N%>YUO8-@7x8`JnPmgaU;4Pc}Pxn1|pU0Q&5%2!)-{0$ZyvhCPc1LrP z{pjOa1r}^P??vn@?$bIbyEX52qqFe;qG@CiekkGTrXYpPXzuV;lVnLbl8c7GE9f}& z>88EHA^K&l7*xYM=+9l?r=zS(4@-t&#&CTuyC(Z4xr;iTzS{q=4DUdjR)P1sJbT4? z3E5g0pktn1g0C6sb=qx();}10k^d+@{tpI2EBuo6)R#?lfz7xxeEbQ;K7TG85A;Lu zKk_Ny5D&-~NpX&L&j@L+HQF=((f?u%^n8RdET_4s^@1@EqtDP64tXx&d~cA91o$yS zq+=84-Am5zicITni6b1nR(A`!Y<__4-DWv+!@0)b)y=dG<0EEAaUZa&Pw}dr&Ei?P zPxRt^#ag%3fP3L7=6FwIZ=R?jZ=j8OyhGA!rCW;Z8}~}LiDsf<%-y^bfBHfB#o{sO zF~)MeE6VhEM)ZJ&(4(t3WB?sRo8|N?TnMKcQ#>vkx|s3@%Q)D#7Jg~o62dLtvb6GXHA$$YT8^+{l(yc*Sbol%GTWf&5erKYgX~6hD2G=Oz3t2mTvF{E0`k4i=vZ zt}52s!WXfE5HHZ=aq=nr3AD`t=QQS^SWlvX0wkVHg z#A?6yW)(+*<5h5Luq7rf+X241yEw{ccypcv=H>#@Ty|U+V3SU&=X+FXM6s zo`}s^ur!5m+yWfhvouNV#Tn!!0)7R9_WHD!cd6G|f)5^{57wWs0%yh`9?v~>$a@O3 zo-mp4IWd#Pq3^AJ#xR#xp+Q{mgD3f4hVgD7Pv1Y(l|Rm&n__}`UlaZa`A7S0zl)k) zNjX>^D*`r`YG>oJ(2MH}17$KbL=6p0A&u@Ot3mktH`_(&MlV7#@(>;OaH)gUogY#Iu-6l*pWu9s+U0h9fb^uLP!+vxuu`tPLw z`{{o-{Xa(kU!ni6m-}bGO8t|Qb>{vj)BimBpH2U_(*Gj*Uq%1R=>H!2Z=?VF>A#cy zAEW=>^#67G|4O-k@TdNr+?u>-EYm z3oHkog`OstyI=$|QQ-;6I{SVWx;uz)eVjeeJ5q1G9!VX1-Ac_W9`AT|54>I^2c{6= z9HA^)E{}4bpgdN-H{{yIW)pj~t-J+KN6AZx%_YZ(I+n{CCB@#2-QmYlR@g7O(M9E{ zD|fGsvP8MOj(f$RY@M5V_ek|PM(}(XMhB-&e>T3ep;_`BBU2Acv3b}`s#anmkIwno=Vv< z!+s9?jEl$#8kn!l8Y#?YtQzGN_D_EdokLs@J+O27{o%Fp8kkBc7#+y2XU1y%Jk^E(E20K=)A(kiRO zw`v~+9>Kc_SY`h!u%0RBT==(gUidyrt4m!UJf)atnix;oiz8=Y8;wto9n`OYH3|2ztnMSKX2?cWXhoHLji!FDds;oy4jBX8i#jd45!L8pPaK z>&W*Az{$zE5yx%PGxch--lV#s{fuki%iO$7#SQd`MY+}(QQtKH=Ba>!0M;`@Fb z*o{#h;FIW`hktdp_Wv>u7vC!LNjOjFT$k!DMwowNuDjScU%B+^KeRPX31n64#uzaJ zVtL6#ZbvcV-0z3)1Uoy}+xVAZiqk=H%w^?tGps#PCdsIJ4uIMoGEsg_2r`i7?{K4ABE99Ul zyk8hCS`veot`QyZ(~mvCAsz?kUsZm3NCSTtIJk|qz^-`2nQib9@GEYUZD>+VpYov* zXO3t*=%s%%7W#>flX?Hg*y+3tuUwkiPv6*M;1MnUme_D+ z`gwhZT&`{>TC}0Pe5T#esE-d=l&+K?wfg$+&k%gl7n#B5_1(j|R@bw0;GB8YIfsu( zW~`9c7qIRnC&K7GBGxMCEc}CB%Q^I#>ab=ZzCH_jFAVd+8tolL_Pl#{w(|iA4#9J& z-B3J28_Bx#!U=FFoLRypaN{TSTFH!b><-NB)lf8E8v0{|{ut=QT8OIwH zxxl+3(mIp;7}h-w>s`m|h?(1TJx2Jm8ACZ_k+|$L_2*E3&TRaLbTG&)*py&hSAoI6 z<59oeAEds_Cf1IgW!%ki@SSXyOv9fxYY&4=f5q{FvB09d^2V83p9$BCf@sQ{80Md| z?tuRT@$trg)w>y)!ncWe$p1E}%|+4KxLb4nqm|sEt59}ucZAJgB%?;#_bi@A(gL&!f zkaQ|bd`&Xt6*7!xF}CIxhrih8I##kp4}!N+-pxaoZw{|d+4%DNcIEb}FIkv}PSACl zu_}H5W%*6ER~Tr!EZ`JRzu&u3;$79RVqViscM*G!t}t(9Q_mjdU7B8({>8U?$2qM~<@9Ec?+_+(Fw*9pJFLif1vm6T~~zSEM}lWo7+?PI%FEP2P6KKtttqVtbK) z@i;M#-WY2w@Syhq$3s!yMPFR1wH>%I1|N*N32aKdd5cXh@(^;zS&JNI&**Am=;-S* zPdp5~=%^5e`+;p(YG3gzx1j>dBMW4;g zBTHNOGSUsNHeco610XdT$1-~R29sB9j{l#fv z9wYvPQEY5M@D~x2oJe0a-LvwJ;5IimSl!+()9rO!$Xw#^z2&@9tRWB1L5^Z(egm6b zd!@fh^Y?O0%&j<*Mdo~Y0O2+g$5_8$2W3x07drSv*ZF@=3)~g>&o> zaiXr`K45&m@mN!bc=;&f$wyYsVZ_}Wkst2DAKEV?7jatz_{Y-c4Z!a}vu5d^ZtR}B zS#iK{uF@Y-2ReB_dCj#y9=81?G+Iqw8@On|4x`_Mn@92nd4%^GsJ@bD${e7JJ<~ie41`@$%%1D-V~qKUUK&n<9*ltc$h;dT=D%2 zd_=zEB0Qx#A{MlU-VOL-VfiY`XM$^<5vzkf%|8qGC@y!ah-WV>IPR8cwAr(uL6p6V z_)_-jiG?QDaMu3kr#OF%_8MC}ti3YjhUwkjDs0Vu@{ZrbQ!cXRc3v4R%h}g>E`EI2 zG6&AYtIOzrJ>OWn1zWn9>kh_DaXo|UJ19q<4$L7BCc^z{zQ6Wg$)nyWfaj6jjv?^- z(6hk}I4V5HSu!eF{5#=`Gw+~;_|$#`_sV-MN|uLdpO1Ma?0v-t(L-^{%mCf8^z`|j zLAR`;&i_;0qP>I`=Inw4(L{Pvv;cngTfbje3f!WLHOkUjMo2Pw^gBX^m~!-9aa?W}unqarWA^!T(qS?wdVW zg8p;&4eg?T;kVAgPlAVq@2TMWUgj+LzmHy{@{1X++cjU?)4M9Y8@R`*NZ!R+>op5q zr1@*^w~3A(V-R!aJ-`UMmDGFuWN=c!hxDd$EiCsldLCKszJyIS$v;t<+ED%wWtR7u z{1m$@|9R)F*JYEXLyu5TZILV9r~4UtHC^}0!Ycigt*maWq&#Au#=1iKs6rN?+|IT^=apG`I zXgLRu$S-0o_aZRoeee*jMWDHOxDHyqM;_0>pU;zb8~0S0?$a`iLhq+Av~eAlXy$9kxP+t_Ed*PCf<7v zGF~s4XZ}MqhW1(+Q}Padq7jV=4lVqUDhF`D++xZo$it2PgZ>$no$KM3cy55)N$!ud_g%}$CZqUMDoR)+U?co$NBs$dj; zLKxxUZGsVgTc){Z@li8f#e4|U&4rq*S5F+S>4V0z<4wHkM>FTY8=q&^i_J(K@*MWsLSPBSy+JrdZ;*G)yT&Cs5l;aJ>uS+{VIf!htwAPv-&uc3zoz!SH}BRttF^^@{hcMk z5%5S?RCrHuoJzmS88Mmr;wF3FP|4`+j48T^Zz{Yc**JOczHrWMj8*CDQ`8S*m*8(L zW6Wodvhr@a;y-uTZ@o_2Kx^r!X#jpN7!}T8K_NWn@N<0S*xjnU&?cjMu31+ntk@>M zEzMfyg{+@RDeoxU=hz#*|JF=SAd8l`pY@ITaS$^$-*eIXDeV}4#jmAP!By^17++AI z;Gij7uj5lm=SrVy9U4$>Old8zeJ$ZcapwNt|Ni$`{eV4|QOv`5WKFfaadcCOM%a@OZgRCAJka9XVujG*=*ly-CxWf%Kk7&dLDbE z_(`9=>5VG#&;?_)^S}KSw%$Ybo~r@E6$D7{XxDmf6ZC(x`A?y zt}FTf%$4tAgzJO~PAd3dy%E-#OdXB$7uN)zZ~V(^tRLw;IewLOV}f<#y;?JZXUXNB zZTrG+H7(=)GOa!3=ex`gdL<`tX8q70yKQ>B2IVFQKH=f?@vX8?*~s|RFHpareqgwy z)m@IsWr&ZUAFI>Q7CJ^#yqD;1ap4-)n~s|;w1WRnGj`>B z1#?)}L@a1+(otk7{4RrNw1lxrek|jo+fL^*GO-a;-4a)jBru@F}-Cb=j2z8!u* zgBj8=)O^KZ!~EhThs{u+be2iAh~U|A}(h zxxeDwi!-eiM6a(hpG(M>IQc%70}b5L`uZN=7oP7$4=2jGBCis-Frf9m0MJAZaI80@K=5QU*4>t zj(GQWVEMHAnKYy*S}C{BOo|YDyit1zKbIfLK3T8&#OHi5F^O;bG=C^j^`i2`CtcAK#t3ulEhW*X>cgID`f{{a zpOS;8=p%}ZDzAH(13!)0iHlvz)2vB(g|mOtc%*X%dt0d+eRwa~7VcBsSjgO=_k26Q zk#LsfBhT$RBHBmM1cy5Ci;2Yv-$xt!F;ktFK7vO1YI2g51862Sgn6aPDeZ~>%iHeuo8L$}dx%|rEwA`%w7cZv?RK#j zyq{GQ&f#Y4;bKeQv-v3g6@7-~nQ|TZgnDOAa)@jdEqhKLSnwO?hu0$7i`=niP-y*+cNi= z{+i1NYaH#X>ODp60c$_A2EN*uim{(^Lr4R?pD8`Dk@xp3(b>W`nb_`|hz;z(rFRIJ zgJ6w;GxOzWu^xW>8vHnfa~wL}<%~S_oViH%Jx-i%cb42VVAuOA(*52U>Rk>FmBXht z@CY)mHCkr~k8&z65}u^Tfaz7*3sy?Kc0Q{1mr{Q?aK*qIv^r?n-eId} zyWd1!(Bd7;k3B`@#*%Oq@}Kg!EW16V4>3ykd}d_J$gT+Zh-?|$H6$`BYey$;GU7+{ zQaySz4v$66kZ3#tzJ36I0ZT!;lKT0`9r${YbBb;NuG~6bycuI%r8$~>b&;I92;a}~ zp+U%}8~GlUd_3VOoOhaW8Q*f|2!_0Se(vqaD8^^KZ-zwT!bNOUyRY17GkQp|dwg}M z^B%9w^r6$jSS9WA8_9*Dk34PJ>xF-YM2c#AWp;ar%g>Sfp55Dkz28^7_EB_FH+g|v zKmMpeKiwQ89=*8l26W^PH~vsQW5LvZt8b;bJ%2avYh63Mr!UPp^_`x+D=E{n^}470 z+S;DJkL&u;5BH^>>glU_^do(dGCc(|xfmzuxndOlP??^y%kl3hbBL06C>{-QLVZ*F zuYJx_iM}h{+woPx@816W@#BH$wn_ejB zyJOc;X1RPj3OMlNUlgn(Xs_>p`Ml4h_cXxa0p0=Vvzjl=!#Bw6&9a+O2Yje(vJ3uz zPq_~<@RNF~JT^8{`XAkzTz#Vd*l2h{_C#aUq7P2mI=%U(K<0^HU4g^CY22p=$#VGo9V3FfYN&VdNeuWa@X+nxJ=#{JJ_t7oEzcW3>= zFnHmN{z>=YE17%fpFE^o%x>h*y*BUQ+bC|&8g}m`+-r^TM(_UcJq`Jem+{;}Zo}C3 z)IojfJDhJN9x|ZcY`Ncio`7%C=oRPZM;!M)aK2FccunNami&V=`K1H;SyS#u_B25o ztqF8S-!zDRT3hNGUfrv5$<>dO-|qYSZTsI$B%Quo@>_jl4|U}Sm3 z@Ogt`OMCU4_oTFsaB{8l+mL2A6nehAKhB!#jB%Xx;5|Ygq2KcX^O`bXUK%$;+;AX{ zm?v|)p}=>Ch#}ovXtqAshaW?qnxA8`umhRg`)T0d9O_-!=Zm=?3k>ha z6U4TfT7P?HzxZz$XH3Ww?_En;=^OI+f8z&{LJ~ul{2le4pxznfZ~)xjq@LCjkNgpJ zzeZirDx?#0z`sl)mxUc6JklgR)0ro~?8YAx)J))O=$iu{1j8=+4c95aVUa&;+=F?o zQ;PH}8Y(6xeJ%gz72%OFPdxq-@2r>NTEgRd^ud7n-9z6eyqAJksK1{6K1_e`>A{=a z)OY108|N4K_=1ie>GVP6d*tXz`N?%pjSv0gZP+`@*_#)hjQdpn1hG)9!+uGBdM96S z8N+%AW2-ffbXD!6$@AgQq1uO4u8(+%H45!Z>zmoY)ylKVyj*Y@!sGrTe=)E~mNN8J z&3qN#5KVUx|E{cK!+0|M`#I$Gzg)v2%hypy@FrM$YTa4;v=@y3`|UyUar{PN{+3J3 z-_!Mqe6)vk$bdBv!GI^f`)~cn+PCk2Q!-JpS@Qco1pINud%V5$`&6D-Mz3)F51c>a z%ze+g2pja5c%e`J6@69uP=9OaS8+H0(Qo!`My6$7KQa97zeMkTx#rOi|J|rZKm3=L z1Kcj_WndJ1(ogL1KB*YZkB@!3&w)0gi()k7-TE(#Jm`ntt5wc{`?8OHdeUiLk!O7s zB%2@dFEHlgld;3|Yxlo|eST5C$s)5ne;qWr9{*%C=hUMmn_aRyUUVe&vB3we=IBo< zHaz^UEbHOvkM2LK`<80nzw8P9tOvH6zMAcWxSw+JolI;-Q)a;2=VJ4d(DbB@z~-|z?Pi%{+>e@<-FnnCY>%7@Uq zpW!z_@fnB@bm-q{2xTV4T88xuzJ&#ilH)SPgrYPyfZwQb}ZCR#zUtLuusyl*roUAj|g;++UyEkD#~2YoggeUXd;v z!Wi9*QQ^NwsxLYfe`TFoi8o>wLcebq^(!&ngt=*lXx06v*}f$3Xnn2yN!d`@PyC&2 zQ@>P-!5%`d)R<2Zi@3!?KW{Vg**!nlb?<%Qn&jbK7yDrhrpG5nbTc|^v89;niuJSFpeVy(( z`FQuaekZi*8NI)F4tU-bkNSrv<&Q+OKOs(1nh*Y4zC?As!}jb?)X|)vj^_R;V7$e88n}dS!R?^Ohkx4( z9D7B+iSH_DK2x9G9?qqScTp5~uJg79qVsXuC@<&r^1R@=V#ogT^Q9N9EWFUoH+Vg-zNW{k zCsrTSB1<*yo`8KSa$)ur*RkI${(P{b)W?JHr{pC%fIn~I-NiqKPl(}%xVe`3{v){Y zy5VWhEBrmz6}dYdpH^Akh|9CzD1JFqtjP3_e=~r8;rWn88RDur2?{wX58}RQIo|b>I+rViB91F+cnkc=DBd$s22)7y3%_Lo_dZD!-=ZM}Ct1qgwx; zefI7SSgb+#POh(f`4!>1hj+I%zVgm;^O)29`MTzv{y%Jd!as34W$t|Ruh#D~h6;`q zxz3{Wb`BpwIek~*)2BFOUBmA+HsdD|gS>fa?-B7U`mm`I-@uVEzEVIe>&xkUx=g<#C=sK8~UjF_ZlOnGl-^Z_}(A;mGcuN?nujz-???^kZAOWwP1b`^X^ZaZSaz7X#_2#4Y&-t)0g^hx*> zecDls!t0B~C&CT9f!o-eF`}H>JQn&~ven|t z%qPk1Pc;@zO6yO3=ZJi+-X9kR9rc0<9LCQUE#t|*?fous$Vv453-rW2K6W9sAWvLz zNZoT^IuZ@XI> zTkl24)nMHtnyDOwBsYRj=CsY&xo{rgv+}jg{B7_q8=1KrJUBz(x1HdD_u-h&FQ?7O zXW^5L&caN0{zmTS^O^;*-GKe}zyi(){Y1;{t#RbiRxME6cKl$C zb@709XP4Tk%|iN6zhOUaJ350tfCHZ?grk8un^Zc_UO@8Xd&$VgFnCMf5FUYz(_TNa zyLT+t;=PDnTJ!0B;h#Fn(F(r}I$rP1f> zS_N+P?Oo*?z)Qy@-*!r}ysP-n&{qAhmvC$fJSo20!@oP@?ueKY+_$>N(L(9 zIKYa{<=@F5-b^2Y6RzBIfvkHc{PvA6qsb+7M8 z)$=WV1J3j8JcSK4c6Zl1fu4ALb6qh5AW#B=2*;Y3+@yqi@+9B(FyHz_YP`mj4KAO^bJn z9sBycW7gz{-^Ra7Fn@C}HN81#y50*G_DW~pR!Gr4dMEFaeE!}bvRv(zulLXS52=0g z8rok?`{ntD4|&0mi5;Cy)~KGZTF9|eZLWZK+Blf>1!Pwx1aE(lillX zc*8Vz23BS>FhZO9+I*Fh4XXKfEbL2Wh5vR#EVbJY_e|1%?ko2E^)!8@eEg`GUu(yG z=n_~rZVLUCD%Rf?x}`evKYjVUA+DU+8|*!OF62BXnNPrcf`Ma7 zKMlOcukN*S(7@$z=H(~zj`Gl1oxzneIe1UGg1Z;PF^*#+&~p8Qjd)eC4tzgA?*=rI zAES3JO8GdFQRE6-Nk+x<#vrrcwetQxIXvV8@*V^@Rvd@-`j9<8)CI4Oem+P?yd&CY zE&ZDwouN$Bhp;G)v>=MFf-ORC)$3d3rSBJ@U!#$FAJgPFolHT zXJ9|Tr8%M7!Z~Rku*5kBYqP z6`u@w-Q$~d%ZJ$C_v+m%$fLWnqy7ta|LYUB^6i~*d_V4ldt^^$so!nY_|Ylod*mCN zus7;{3HeFoExlXjcvo1?Xk_PR?1SDri?qu&@qVF=^&3)+Z&1VgarflByc* zOZ}Y|??%3Ge^AG|5rNuUms5Y?w|TFCC&s9p^Dc51>5K2B0KxHW18TaQa`rbQs^aSHCW_i6o%SY5jK7uMLcLxnCO?Z3`IZpQKAox!;g3 zznysG;fYKA9g#?xF5$neTc%6+Zp;|)e1+wX3BMQq2eh$g3?bfXMMBza3Lcg&Vc%7@ zS#&yXzE_Wq2;(6S@~q*LYr)&10)9Vy$$qO@Fp7EZ0+$`M*%q;H^`q_&e98(@_}7Au z)lW$0%;urj(Jqe8Ave0$=9>&o^RoOTXw)$I{$S!3FBr22K7XEX&s@kigMQ~8sc&o# z)`Pc4vMaz>(jRq{HOSEiuz|OPv>4>?B4-JlWx-k28>4d0yR2*ioGmUy{Rcu`X1~!& z`qzhaJ^y!8jy!U7jlTz+4I0LGNRcn`h-K4P_uM>o^9tj8V^q$0m*o$lFTHEK$&O^_ z4q<)FKZLS1=)RwS!-My0$g2wy$fw?YMmJ4GwxaMu1Mwd5#TeuY^Ru9U%qQ#o#eUTJ zA^0I)M}6Ujyr<+K_a<_Xp7XEZ8x%v9WBrlyic0Tm$lw``I-%@RvBm1=rLo*UU0#M7hZJH zIDQxN8_(|&ewUVimz94L%D>CYKVzK}Id51)^!(xH);1<$XN^32#E_x|n}`qA@QdQP4L{~)4@YxMBs^GdywXBI&xe+{|{|J0O<`8)9W$%^3xTL342h>VHp zkEtmY^LOC$lNG}Y7MUl17&>FZKQ*Od{_;Nt#xynQ@0ow^c^)F~%=J!|V%Sdp*yuGT z{8LjZ=I_AgCo6^*XAig?s_XDiO{ti_{O?Yjbj9Q=KXlcU56_r6YxbP07mXTy?panO zT7TV$Iy+W--jMSzTCrwr=8h#!ylQYmL-&Bs5n_~u(ab?cwp_UY!9rOR5E-@fuQpIxTSwX0UO-rlmxS#oz< ztFylKjt#AAmbRMNYgf0dT;sH^Teo(dSTrC&Du6+U2A4t>-yF;Z7oYywVLZG zX>r=x?l$Sxb*opdU%ztg8fRJSnw71~%qKIg>ss1WpmyA>UfI@0`Soj^^&6J1aF(xJ z)#|KW=PX;fu61b}l6dk-X5HGQt?SpDt5u`*u9fTCcvGZh)rMB5ZS7iTRm-~DTb<=< z+0w?~cV`5Lvp&6*sc4eO}2WW)Nq&9!UVnB9g9Fgfe* zUf;nzVuPN+*{ro|)-ZLUNH}eS1mLN4-2l|Jty~Rw zD6IEZUcO;Hn4G(IeVem#y|ZlX=hmFO*|26^Ys=CVA*3^wEu-W04uqtEnYnK5XIs}e znU!Gd+RHy#CT@iu*0t~w~Jcu zYAYckMEab&T9=A;t6SR2!&k5gRX41Lugr|{1=wVIA;s6O;q#MsuU@it)ykzIlATp+ z*JeWgSktn)%oeJ&2>w{zvgU4QZH9>o|Ka4zG+?G7NtU&)U%GB(2A%`flVqLQvh4K7 z;;W@AR<2s+R9I4#D(DH>^CU-}8e3ejUQLC*fg_yctYxrBh}+Mt-9YDSmoD9~&Ma(e zK>$lKwsh^C2#+Kzy$()ZyJ5Wpjawxw?~$yfEy(IBimu+Uro>2UzjAeERjY7WqSk6y zpaqe^@y; zm8!27D~D3H-pm6L&We`x&XQKBvA&f#F-Cgb+P1Yz*RCqlUl=VzSQ7YC)Dhn<;qiK5 z1~{Z^)`Qd5HUM4UwsK8Ly_D&3ibFq9p71H!oE-CW>tK^``k@9X_jdBJuy<;n?CFKbHe2C9>mC8c>m=p`GLFNYmUy7Uwx$}>jQEG?<5Q&>j(#oE%UQo-LtCh(PFaPPRj}8xyG7*8y0y1UQ4LUh151$%3_&QmD_YhpLn;=) zuL#R2B{qM!uW4tYRr85Vc>_dBu3H~*1tVpanS`{DI$$c#Sz+s2sjg z4u>d*ca_6!&Ec=+@YQncP3L&GK1U29M|?duk^}NQV;OUh@eeZoLB>DG_y-yPAmblo z{DX{tkns;P{z1k+$oPjD{~+TZ#5w&A|FQ<{>u6s``?_E3d8$S8Di3c4{LwdK?&5GBLhB6pz4xwU6$U*1zjdh?fqny* zr)Pre`7*46Ynmoc1!ib@ss|*KrUX`VazKy8I@n9-k(sQ=9-Uws&`rGGW@G& oI+kgcC)2wQk(%!hUwb7%Qlr%Jv53u90SrvLx| literal 0 HcmV?d00001 diff --git a/binaries/mips32r1-lsb/ip2net b/binaries/mips32r1-lsb/ip2net new file mode 100755 index 0000000000000000000000000000000000000000..005eb40d03f7e9d42d38101d79e260c746140792 GIT binary patch literal 73608 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 literal 0 HcmV?d00001 diff --git a/binaries/x86/ip2net b/binaries/x86/ip2net new file mode 100755 index 0000000000000000000000000000000000000000..fe164c691b55d6fdfce63e765c169cb7d720459f GIT binary patch literal 38088 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 literal 0 HcmV?d00001 diff --git a/binaries/x86_64/ip2net b/binaries/x86_64/ip2net new file mode 100755 index 0000000000000000000000000000000000000000..cec11bd936ece7a42a8d46cff2e81ad83e765e8e GIT binary patch literal 34616 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 - +3) #add zapret packages to build root + #copy package descriptions copy compile/openwrt/* to ~/openwrt - + #copy source code of tpws copy tpws to ~/openwrt/package/zapret/tpws - + #copy source code of nfq copy nfq to ~/openwrt/package/zapret/nfq + #copy source code of ip2net + copy ip2net to ~/openwrt/package/zapret/ip2net 4) make menuconfig - + #select your target architecture + #select packages Network/Zapret/* as "M" 5) make toolchain/compile 6) make package/tpws/compile make package/nfqws/compile + make package/ip2net/compile 7) find bin -name tpws*.ipk - + #take your tpws*.ipk , nfqws*.ipk , ip2net*.ipk from there diff --git a/compile/openwrt/package/zapret/ip2net/Makefile b/compile/openwrt/package/zapret/ip2net/Makefile new file mode 100644 index 0000000..4564675 --- /dev/null +++ b/compile/openwrt/package/zapret/ip2net/Makefile @@ -0,0 +1,32 @@ +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=ip2net +PKG_RELEASE:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/ip2net + SECTION:=net + CATEGORY:=Network + TITLE:=ip2net + SUBMENU:=Zapret +endef + +define Build/Prepare + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./ip2net/* $(PKG_BUILD_DIR)/ +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS) +endef + +define Package/ip2net/install + $(INSTALL_DIR) $(1)/opt/zapret/ip2net + $(INSTALL_BIN) $(PKG_BUILD_DIR)/ip2net $(1)/opt/zapret/ip2net +endef + +$(eval $(call BuildPackage,ip2net)) + diff --git a/compile/openwrt/package/zapret/ip2net/readme.txt b/compile/openwrt/package/zapret/ip2net/readme.txt new file mode 100644 index 0000000..abf7acd --- /dev/null +++ b/compile/openwrt/package/zapret/ip2net/readme.txt @@ -0,0 +1 @@ +Copy "ip2net" folder here ! diff --git a/ip2net/Makefile b/ip2net/Makefile new file mode 100644 index 0000000..38628fd --- /dev/null +++ b/ip2net/Makefile @@ -0,0 +1,12 @@ +CC ?= gcc +CFLAGS += -s +LIBS = +SRC_FILES = *.c + +all: ip2net + +ip2net: $(SRC_FILES) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) + +clean: + rm -f ip2net *.o diff --git a/ip2net/ip2net.c b/ip2net/ip2net.c new file mode 100644 index 0000000..8bbdb5a --- /dev/null +++ b/ip2net/ip2net.c @@ -0,0 +1,93 @@ +// group ip list from stdout into subnets +// ip list must be pre-uniqued + +#include +#include +#include "qsort.h" + +#define ALLOC_STEP 16384 +#define PCTMULT 3/4 + +typedef unsigned int uint; +typedef unsigned char uchar; + +int ucmp (const void * a,const void * b, void *arg) +{ + if (*(uint*)a < *(uint*)b) + return -1; + else if (*(uint*)a > *(uint*)b) + return 1; + else + return 0; +} + +uint mask_from_bitcount(uint zct) +{ + return ~((1<=iplist_size) + { + iplist_size += ALLOC_STEP; + iplist_new = (uint*)(iplist ? realloc(iplist,sizeof(*iplist)*iplist_size) : malloc(sizeof(*iplist)*iplist_size)); + if (!iplist_new) + { + free(iplist); + fprintf(stderr,"out of memory\n"); + return 100; + } + iplist = iplist_new; + } + iplist[ipct++]= ip; + } + + gnu_quicksort(iplist,ipct,sizeof(*iplist),ucmp,NULL); + + while(pos=2 ; zct--) + { + mask = mask_from_bitcount(zct); + ip_start = iplist[pos] & mask; + subnet_ct = ~mask+1; + if (iplist[pos]>(ip_start+subnet_ct*PCTMULT)) continue; + ip_end = ip_start | ~mask; + for(p=pos, ip_ct=0 ; p=(subnet_ct*PCTMULT)) + { + subnet_ok=1; + pos_end = p; + break; + } + } + if (!subnet_ok) zct=0,ip_start=iplist[pos]; + + u1 = ip_start>>24; + u2 = (ip_start>>16) & 0xFF; + u3 = (ip_start>>8) & 0xFF; + u4 = ip_start & 0xFF; + if (zct) + printf("%u.%u.%u.%u/%u\n",u1,u2,u3,u4,32-zct); + else + printf("%u.%u.%u.%u\n",u1,u2,u3,u4); + + pos = pos_end; + } + + free(iplist); + return 0; +} diff --git a/ip2net/qsort.c b/ip2net/qsort.c new file mode 100644 index 0000000..2ee1185 --- /dev/null +++ b/ip2net/qsort.c @@ -0,0 +1,250 @@ +/* Copyright (C) 1991-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Written by Douglas C. Schmidt (schmidt@ics.uci.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* If you consider tuning this algorithm, you should consult first: + Engineering a sort function; Jon Bentley and M. Douglas McIlroy; + Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ + +//#include +#include +#include +//#include +#include "qsort.h" + +/* Byte-wise swap two items of size SIZE. */ +#define SWAP(a, b, size) \ + do \ + { \ + size_t __size = (size); \ + char *__a = (a), *__b = (b); \ + do \ + { \ + char __tmp = *__a; \ + *__a++ = *__b; \ + *__b++ = __tmp; \ + } while (--__size > 0); \ + } while (0) + +/* Discontinue quicksort algorithm when partition gets below this size. + This particular magic number was chosen to work best on a Sun 4/260. */ +#define MAX_THRESH 4 + +/* Stack node declarations used to store unfulfilled partition obligations. */ +typedef struct + { + char *lo; + char *hi; + } stack_node; + +/* The next 4 #defines implement a very fast in-line stack abstraction. */ +/* The stack needs log (total_elements) entries (we could even subtract + log(MAX_THRESH)). Since total_elements has type size_t, we get as + upper bound for log (total_elements): + bits per byte (CHAR_BIT) * sizeof(size_t). */ +#define STACK_SIZE (CHAR_BIT * sizeof(size_t)) +#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) +#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) +#define STACK_NOT_EMPTY (stack < top) + + +/* Order size using quicksort. This implementation incorporates + four optimizations discussed in Sedgewick: + + 1. Non-recursive, using an explicit stack of pointer that store the + next array partition to sort. To save time, this maximum amount + of space required to store an array of SIZE_MAX is allocated on the + stack. Assuming a 32-bit (64 bit) integer for size_t, this needs + only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). + Pretty cheap, actually. + + 2. Chose the pivot element using a median-of-three decision tree. + This reduces the probability of selecting a bad pivot value and + eliminates certain extraneous comparisons. + + 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving + insertion sort to order the MAX_THRESH items within each partition. + This is a big win, since insertion sort is faster for small, mostly + sorted array segments. + + 4. The larger of the two sub-partitions is always pushed onto the + stack first, with the algorithm then concentrating on the + smaller partition. This *guarantees* no more than log (total_elems) + stack size is needed (actually O(1) in this case)! */ + +void +gnu_quicksort (void *const pbase, size_t total_elems, size_t size, + __gnu_compar_d_fn_t cmp, void *arg) +{ + char *base_ptr = (char *) pbase; + + const size_t max_thresh = MAX_THRESH * size; + + if (total_elems == 0) + /* Avoid lossage with unsigned arithmetic below. */ + return; + + if (total_elems > MAX_THRESH) + { + char *lo = base_ptr; + char *hi = &lo[size * (total_elems - 1)]; + stack_node stack[STACK_SIZE]; + stack_node *top = stack; + + PUSH (NULL, NULL); + + while (STACK_NOT_EMPTY) + { + char *left_ptr; + char *right_ptr; + + /* Select median value from among LO, MID, and HI. Rearrange + LO and HI so the three values are sorted. This lowers the + probability of picking a pathological pivot value and + skips a comparison for both the LEFT_PTR and RIGHT_PTR in + the while loops. */ + + char *mid = lo + size * ((hi - lo) / size >> 1); + + if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) + SWAP (mid, lo, size); + if ((*cmp) ((void *) hi, (void *) mid, arg) < 0) + SWAP (mid, hi, size); + else + goto jump_over; + if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) + SWAP (mid, lo, size); + jump_over:; + + left_ptr = lo + size; + right_ptr = hi - size; + + /* Here's the famous ``collapse the walls'' section of quicksort. + Gotta like those tight inner loops! They are the main reason + that this algorithm runs much faster than others. */ + do + { + while ((*cmp) ((void *) left_ptr, (void *) mid, arg) < 0) + left_ptr += size; + + while ((*cmp) ((void *) mid, (void *) right_ptr, arg) < 0) + right_ptr -= size; + + if (left_ptr < right_ptr) + { + SWAP (left_ptr, right_ptr, size); + if (mid == left_ptr) + mid = right_ptr; + else if (mid == right_ptr) + mid = left_ptr; + left_ptr += size; + right_ptr -= size; + } + else if (left_ptr == right_ptr) + { + left_ptr += size; + right_ptr -= size; + break; + } + } + while (left_ptr <= right_ptr); + + /* Set up pointers for next iteration. First determine whether + left and right partitions are below the threshold size. If so, + ignore one or both. Otherwise, push the larger partition's + bounds on the stack and continue sorting the smaller one. */ + + if ((size_t) (right_ptr - lo) <= max_thresh) + { + if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore both small partitions. */ + POP (lo, hi); + else + /* Ignore small left partition. */ + lo = left_ptr; + } + else if ((size_t) (hi - left_ptr) <= max_thresh) + /* Ignore small right partition. */ + hi = right_ptr; + else if ((right_ptr - lo) > (hi - left_ptr)) + { + /* Push larger left partition indices. */ + PUSH (lo, right_ptr); + lo = left_ptr; + } + else + { + /* Push larger right partition indices. */ + PUSH (left_ptr, hi); + hi = right_ptr; + } + } + } + + /* Once the BASE_PTR array is partially sorted by quicksort the rest + is completely sorted using insertion sort, since this is efficient + for partitions below MAX_THRESH size. BASE_PTR points to the beginning + of the array to sort, and END_PTR points at the very last element in + the array (*not* one beyond it!). */ + +#define min(x, y) ((x) < (y) ? (x) : (y)) + + { + char *const end_ptr = &base_ptr[size * (total_elems - 1)]; + char *tmp_ptr = base_ptr; + char *thresh = min(end_ptr, base_ptr + max_thresh); + char *run_ptr; + + /* Find smallest element in first threshold and place it at the + array's beginning. This is the smallest array element, + and the operation speeds up insertion sort's inner loop. */ + + for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) + if ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) + tmp_ptr = run_ptr; + + if (tmp_ptr != base_ptr) + SWAP (tmp_ptr, base_ptr, size); + + /* Insertion sort, running from left-hand-side up to right-hand-side. */ + + run_ptr = base_ptr + size; + while ((run_ptr += size) <= end_ptr) + { + tmp_ptr = run_ptr - size; + while ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) + tmp_ptr -= size; + + tmp_ptr += size; + if (tmp_ptr != run_ptr) + { + char *trav; + + trav = run_ptr + size; + while (--trav >= run_ptr) + { + char c = *trav; + char *hi, *lo; + + for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) + *hi = *lo; + *hi = c; + } + } + } + } +} diff --git a/ip2net/qsort.h b/ip2net/qsort.h new file mode 100644 index 0000000..f537ab7 --- /dev/null +++ b/ip2net/qsort.h @@ -0,0 +1,6 @@ +#pragma once + +// GNU qsort is 2x faster than musl + +typedef int (*__gnu_compar_d_fn_t) (const void *, const void *, void *); +void gnu_quicksort (void *const pbase, size_t total_elems, size_t size, __gnu_compar_d_fn_t cmp, void *arg); diff --git a/ipset/create_ipset.sh b/ipset/create_ipset.sh index 67a1f1f..386effc 100755 --- a/ipset/create_ipset.sh +++ b/ipset/create_ipset.sh @@ -4,20 +4,36 @@ SCRIPT=$(readlink -f $0) EXEDIR=$(dirname $SCRIPT) IPSET_OPT="hashsize 131072 maxelem 524288" +IP2NET=$EXEDIR/../ip2net/ip2net . "$EXEDIR/def.sh" create_ipset() { -ipset flush $2 2>/dev/null || ipset create $2 $1 $IPSET_OPT +local IPSTYPE +if [ -x $IP2NET ]; then + IPSTYPE=hash:net +else + IPSTYPE=$1 +fi +ipset flush $2 2>/dev/null || ipset create $2 $IPSTYPE $IPSET_OPT for f in "$3" "$4" do [ -f "$f" ] && { - echo Adding to ipset $2 \($1\) : $f - if [ -f "$ZIPLIST_EXCLUDE" ] ; then - grep -vxFf $ZIPLIST_EXCLUDE "$f" | sort -u | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + if [ -x $IP2NET ]; then + echo Adding to ipset $2 \($IPSTYPE , ip2net\) : $f + if [ -f "$ZIPLIST_EXCLUDE" ] ; then + grep -vxFf $ZIPLIST_EXCLUDE "$f" | sort -u | $IP2NET | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + else + sort -u "$f" | $IP2NET | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + fi else - sort -u "$f" | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + echo Adding to ipset $2 \($IPSTYPE\) : $f + if [ -f "$ZIPLIST_EXCLUDE" ] ; then + grep -vxFf $ZIPLIST_EXCLUDE "$f" | sort -u | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + else + sort -u "$f" | sed -nre "s/^.+$/add $2 &/p" | ipset -! restore + fi fi } done diff --git a/readme.txt b/readme.txt index 6384c2e..0943ecf 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -zapret v.19 +zapret v.20 Для чего это надо ----------------- @@ -241,6 +241,9 @@ Debian 7 изначально содержит ядро 3.2. Оно не уме Собрать tpws : cd /opt/zapret/tpws make +Собрать ip2net : + cd /opt/zapret/ip2net + make Скопировать /opt/zapret/init.d/debian7/zapret в /etc/init.d. В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила. Там же выбрать параметр SLAVE_ETH, соответствующий названию внутреннего сетевого интерфейса. @@ -320,7 +323,7 @@ opkg install iptables-mod-extra iptables-mod-nfqueue iptables-mod-filter iptable Скорее всего таковой найдется. Если нет - вам придется собирать самостоятельно. Скопировать директорию "zapret" в /opt на роутер. -Скопировать работающий бинарик nfqws в /opt/zapret/nfq, tpws в /opt/zapret/tpws. +Скопировать работающий бинарик nfqws в /opt/zapret/nfq, tpws в /opt/zapret/tpws, ip2net в /opt/zapret/ip2net. Скопировать /opt/zapret/init.d/zapret в /etc/init.d. В /etc/init.d/zapret выбрать пераметр "ISP". В зависимости от него будут применены нужные правила. /etc/init.d/zapret enable