From 24bc0055e363475302563635e8114fcf7f23a62a Mon Sep 17 00:00:00 2001 From: lishu Date: Mon, 18 Feb 2019 15:36:38 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=94=AF=E6=8C=81youtube=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=202.=E4=BF=AE=E6=94=B9Makefile=EF=BC=8C=E6=98=BE=E7=A4=BASOQ?= =?UTF-8?q?=E6=88=96=E8=80=85K=E7=9A=84=E7=BC=96=E8=AF=91=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=203.=E6=9B=B4=E6=96=B0sifter=E7=9A=84Maat=5Frule.h?= =?UTF-8?q?=E4=B8=BA=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/conf/sifter/youtube_data.sft | 2 +- src/Makefile | 2 + src/lib/libsifter.a | Bin 57952 -> 58240 bytes src/support/sifter/bin/libsifter.a | Bin 57952 -> 58240 bytes src/support/sifter/src/inc/Maat_rule.h | 210 --------------------- src/support/sifter/src/inc/Maat_rule.h.bak | 210 --------------------- src/support/sifter/src/libsifter.a | Bin 57952 -> 58240 bytes 7 files changed, 3 insertions(+), 421 deletions(-) delete mode 100644 src/support/sifter/src/inc/Maat_rule.h delete mode 100644 src/support/sifter/src/inc/Maat_rule.h.bak diff --git a/bin/conf/sifter/youtube_data.sft b/bin/conf/sifter/youtube_data.sft index ce54327..8610376 100644 --- a/bin/conf/sifter/youtube_data.sft +++ b/bin/conf/sifter/youtube_data.sft @@ -8,5 +8,5 @@ sft_id = 4122 #special character : \r\n = 0x0d0x0a, \x30 = no end , \x0 = null #expect_name = {1}{MEDIA_ID}, {2}{FRAG_UNIT_ID}, {3}{FRAG_UNIT_ABOFFSET}, {4}{FRAG_UNIT_REOFFSET}, {5}{MEDIA_SIZE}, {6}{MEDIA_NAME}, {7}{MEDIA_CONTENT} #extract_location = {61}{C2S_URL}, {0xD1}{S2C_CONTENT-DISPOSITION},{0xE1}{C2S_CONTENT},{0xF1}{S2C_CONTENT} -{1}{MEDIA_ID}={61}{C2S_URL}$End$\x0$\x0$range=$ +{1}{MEDIA_ID}={61}{C2S_URL}$Tag$signature=$\x0$&$ {3}{FRAG_UNIT_ABOFFSET}={61}{C2S_URL}$Tag$range=$\x0$-$ diff --git a/src/Makefile b/src/Makefile index a9cac49..ae8d433 100644 --- a/src/Makefile +++ b/src/Makefile @@ -62,6 +62,8 @@ $(TARGET):$(OBJECTS) $(OBJECTSCPP) $(LIB_FILE) #$(CCC) -shared $(CFLAGS) $(OBJECTS) $(LIB) -o $@ $(CCC) $(CFLAGS) $(OBJECTS) $(OBJECTSCPP) $(LIB) $(LDDICTATOR) -o $@ cp $(TARGET) ../bin/ + @echo -e "\033[32mFOR SOQ: make MODE=AV/PIC/VOIP \033[0m" + @echo -e "\033[32mFOR NTC: make PROJECT=K MODE=AV/PIC/VOIP \033[0m" # cp $(TARGET) /home/mesasoft/frag_rssb/ .c.o: diff --git a/src/lib/libsifter.a b/src/lib/libsifter.a index 1595d062e9f77565c79996aa88e064cd8d3083f1..d2ba0486689192e313e2dadf16520db17155fae7 100644 GIT binary patch literal 58240 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
    ^kg|Rq7!A#U)FYudvjqYBd%0bXJ>gkF?yR zR#{nrS8mun9VJUtT|Mo3E-AFuszcdm;3c$ZNhwCryaJbbb!(<-I;!_Y!&G_WE_x5v zm>8)Xp-A;mi-V=AoGw$JjJR@^RH^7sHfP5h0JU{$0Ln_i7_&hoVp+)w%*+MH<;c`ZX4>=13(E`g%JP>5 zLgmE^^2!2qo=-eeo>Ug=q0-Do3A!-9$f`u2h@<^>7-#rM@7{=Q-XWUp)fVT>FzuPf6SFAAOG?Vr5W;;H zwd0U+c%80&>N?cWs%Apn?ULfCPo}0zoq`leCeeDT7AT!By$kBw>9zBV&~F#b$5cD7 zFkq=(S5-caYpj+oiVG;65=)}z7V6YQ>Jl7|w1~k>q%1GLK!Yp~ra>4EQFmBbgd44r z06MFDnyRTDgdm5-rKOl7#K(W*WPm}<+MUryAG`tQdFV2S5jNoqcTmpF`T2t!lvquUgrxoHDhCg+apL7cY&Tm-Bgz-TDuj(9n7|?er_Et>pbgt<+UV3CW}zi3ux?%)SmB5_5A71O;zlc~ zrnFTJIGMDb`Y6&t;gXU-yz=K4E(qn7mn{hul^4znl;jsJQU_h?DV7?JtLaxOs{2+= zg7jTT`_9#z1ue+k)mXC1l`84p{;501Fi%a$Q4eeUtVG&2Lx1E_ z>5?}v{U*=+0jYU7Oc6nfn@c#H+AbsU-k+ur1;wvcu{dXd?h@}=su)oGwO>M&)UR-P{lmdvst0>rg(@4<#8j&t9RK>{5?+my&SJz z@jCHdl>w!HmgCjiQzw3+6aO~HtGAO9@A8wb+>9uS;_Fsc1|Kv96 zo4R_{SB_l(d;jmxio{#+B+iR1-pO3Dvn6Q<$soNyPbI;N4(0N3b)PM%`W#^R2@UA+ z#+==FzHh*t=!H(U?A-$#TTv1mec>`0{&Wxc!5;8m_JIGY2mH+*@OOH^KkWgh4^kwP zpW1vfys!s6+yj0CaMI@sTp_YK@2fq~|A6WJY@b3;KL;j0EsV>iJUU}4nVfGj{SdrI zCl}T?>+e0#Q(r~=uV(raOrHZh8UGnf|0QZraI%pt)B}BW4>+BXn2di%5BTjp;NJvJ z@{h*eFmkdB?LZIobXHoje1Fvg{$>yOJ3Zik>H+^4ILY~bnwC@cq^003V={UA0Vnzr z>>45`?;+`|tz`65nSK>_9kP#$_QVk%?-`npY-^&k{s`|kRO7N!=w-&|;&n1PHOAq7 z3V5=7Q(@o4=jTi>TW1CUPewnY2b^bRc&Hg#xpIb{H3xELhmt(b<=+bS@CecMP|tZT z>nzOND?T;jb5VccBfwD7qh*`x8}S?ZY(#=;^IiFi*l{Nh?MzZyK8#=-mRAEO?8A7l74N3nU1w z1DffH4QdpR9I>MQci!%h4bXEFVulhmbN$ofDm<#Chv^intU-CYJ)u~yg*0AGL3cA% zrC}}VJVz=SC~AdvpwdZ-%uw;uVEeV+bPAhHwEmwJMNgZq= z=cGZOD`AY|=f-|xcR^uKiBZu-CXfRE;K z(9KORXIq(gxr_cBmpm)(rOeY*8< zCeL>%*(ewNau@EVZ*<{q`YsplrhkcXDerEU?^iDRk*<6P^TLS8#=7te>ER8WiGQ;P z{BalVmgms;+pWrjG@06U#xsUlQV4Q+k_!IioE_}QT-^4go1FhnP{ze!5c`p1x7w+csoC_c0 zqJOOi{C|4D^)K6Xc_+L0)bhHB%9Z27Z)05a@ILF|n=X19yQEwX81#Q;`bT=8|E)nU z-6WA2Xj)1DAd*?Be6@$Jz|~zT7W- z*}#R*&K~$Y;=<|2zoO5lT=;Ys{s$L6!-b#CizzCO+nx(uc(#ka(uKR*(U)B~Efqzc zAG+{aF8rk)@P525C3)QR(|W+)cHwS$&Y{KwM||9Pi3`6FaUy4j3wP81vIl$^uZKet_5KCVmS| zR^SM~1b?ERk7&{ZNBCU)2|ks7u}kQ0 zVE!rNBu^gxM9zHm!*4DBJQwaICBhN?So{h7JQwcP+k-S2f+KqR;iAz0(}iE?!YgSq z1ZUFE<#LdI=ljT>b;`}8n&wpu{@53~76Mlq~|8ky>a#an|Rn2L2X@e`DZZ<$5_{;Ip|h-!8C8@h%Kpd6xYiD1AmL~3eDciH}D}`u2KWv&U#p5;L^C)8Tc-?hdKja!E(}fMahZ$Gq_#o z-|ENl|K@tR)u2D0JF`0tyoBrbJ_DCCvwv*h^!|pNIyeD$ktdz?_M$<5fXnr310T(D zzH8uba=ZJ`z`xF6H5j<^9nJIuxE@5Fy(A>unFjt2>tURM%h{*X47{E7lV{-bxW6hg zaQba6xm5;E?~TaS82A%xpHTy!%H^W>HRPmR3z^TY1|H$|veUq?WIcb+z?&F<)WA0} z{)~aQGA?Hpf!NZ!!J#1|H&i?=W!vF*W?w)xhZ^5ahmN;MZ`ueq`VuGX84=Kg9L;rh!M< zPTn){_ZUB6;6vGdJ~r?_vmQP*@Yh*>56dNb{($XGe^M{5{}yiV0}cB3IA56;2%k$h zzcUT`Lmc)S_;)zp^9;O}?PsEa_hI>`8h9JiUt-`#xL*nwcq-dNfq^$sLEtVk@PD#C z*Bbbnte<)VKgN8nHt>J2o!?~OkFlJ$8Tc8@=i3JU0_*wv1|DHKA2sk^OfU0Csjo#W zKm9P3oZw$!{Tw&&gDlS{20o2(FXu0OUSvB-GjMqhKElB1{U|w^&kLX5GF_QLzl___ z8Ux?L`dn||pK`g{44l3}NA4>Iehb^@Hx2x_Cbzz8;5OUmuMPZdw$FDBoIW*1?gIm- z@7I(2%)t9{xkhlgML)T0SK|#_>~NZa%USBV2HubB@p1z{&f!`Ezf+58H5hn+=X+5D z{~?F3G4LGbbG?Dz!~NdP2ELs2)?wf;FrTj)_&u!0Zy5L*=D*9p2QvO01Fzur@&f~Z zoXh(o1K-N_|CoW(z7}#%8u)JJ|BQjp;PCSXu0OSDSu&o8J-o+!-Z1FLa=DHg_ygST zJ~HrsuszF`CgJ}y)A#3k5IoHE!wg)P7T-uQ@EceU*#>?KF@&3I;1i^OFz}B#TyEg! zGXFIO{sQaaDg(cn^>(d+|5l4*-E83XT;AIZd^h(q-!|}l%>Vla{u`!$%)o!d_|pb{ z1NRRv8Tb=y=f5%V0xs{n2L2k$^MQds&320qQYk0(8{>Qja6crtm+`X<{37Nv%E0wk zXz@WX1HXXleY%0qV*a@X{tw0r4g68IlNAP@!Q}}X_yt_QF#})4{O>UEdzsH&2ClyY zh;@^J%k%9Q415mP%dZSPh4Hrx{2<%&Ahrw9|96@0ECYW)#svc(CHge*Q_R1>z^~wb zVYz|JbM`6&m-obt2L3qL@3jV=#roW4;0w8ZJ!9a1WI10laCsjo?Md__{ocC<{YkNZ z1J|GH!}x39(l5z4Df}0*{S4>w3H|}s%P0dcVEM-z_(#lVvVs4B>+wPZr+s+jat(YD z*Y5(xDLW=r^p_d*GEQ7>;Pee!a$$oH!`7D#`U=+9Hw=6>*Y6$!znS&(n1P?q_Wv`+ zMgFN;9P4$1egoUdy9WLV^ZA>BpXBj6h3^ziUDf%lx4{NJn$!CYJcGk!27W7t8x1_d z{N+8Ypp`|Hq$?2;PPOF}-p>4Y8My3k_^yH9&h+x! zSIQ;(d7m@rXS1GPHSmRO4}Uc9DO|1(7#IHIna?n`N73^g+$hgA@b5F9(Toe9tC^4f z!n}UJKrFt;xc-WKynZLKJ{t`F=WxHb!Qe0Zj=yEl%lz;GgZ?Jg!;1#}&)Lr3Fz^n} z_qc(}I3nwN(a#~S_u;G$!Eazba}4|@Wj&TP&%jGq&zCYT`jmamjRyU5%%|0$7rWhM z(2IWd8TbxvV81r-_qct&ZSa@<%l|a!&t^V-x!j_MbC}O?1DAevf`LoFI@`cyyv{dp znGdXBT=dqDUx>+kS>#D&J%7cZmwndXG5B9W3E>_#=&#@xUq=l5YmD2RzvO!@w`-q) z2e=)kGcNMWKJJ+Y{m(hSMFvhE$|kqYz-7L@!NBJ-{mqO^zE|^m?i~jGUY7Gd10TWR zM-6-hxA*4^d?ee=s|K!*fWUr81HV(+A?sE2`2o+L2O0RoJdO{SdVo%-%4Pri#RmOQ z)*Z<#AI^ICGUKA>k^H`YkAW{{{FerwLbjh@8Tdl(f8I3s z$i99r?~4$S;9@`727VXU<0S@O#d0n&@IuzZ6^x4>Ch!aCTMhabx!?Gj zfmbm8ZG(^eUf~ggUgm|*8u(q@|Npmv)3@Nsy=Cw(9;WdR4f+qcf9T8YM)aJ;{mc-? zrM&VxiHQci^fPk}TqySc2Q#B z(k|8-xY&7aMYle{?o_G6?*BfxVZoE&5x9nrPPlw z%4LuFK~fe^$kbkY>avAiA`XYNPoKP@kJ6#EVr$&ZsIMv$&fSqDw;nO}TST>jAm?An{Rd&>OxjXl$?`wK z`4^8;$<$FwG}SQkuS&v`Qe1E$UGdETqhiebH-N^(DBTZflOBxLHoA;C&=P-a+7p&{{g3$c)5=#5nuPaq!Y9Y9>R=jw)~vlZ$wD> zCH)idB-7tU)?X`UNcy8GjieX7()8TyI{;a^WpuTy7xc}!n(`-;oru%Rb&?==tTdgb Ysxb4XHjym<<*Rgh*&m`qiMICt0JG$vG5`Po literal 57952 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%0A&*4j22#dPC-4g3GwI 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 diff --git a/src/support/sifter/bin/libsifter.a b/src/support/sifter/bin/libsifter.a index 1595d062e9f77565c79996aa88e064cd8d3083f1..d2ba0486689192e313e2dadf16520db17155fae7 100644 GIT binary patch literal 58240 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
      ^kg|Rq7!A#U)FYudvjqYBd%0bXJ>gkF?yR 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 Ysxb4XHjym<<*Rgh*&m`qiMICt0JG$vG5`Po literal 57952 zcmdVD3t&{m^*?^^Zh+;PNC5FwA_9U+NO%e2BOnVK2@pb}fZ!664T@E*04-F{W z7z;EmgIb_ZpMe)fG+{H+J0kabpW7=j9csAoDjbudrb3BpqXE zFUN7tcATuxXa5Ub>Nx*9|H6yL7Di(&ja3cJ;ikq&cx6*db+{oCtt_2YHNPO-K>wWS z*W|ZEYVyP3<*QbOnl zBNB*`(Z+`BNOM@G0kL2#$}NCNpu#nEjnzr0a1y6h9jR)nj)bdfD_csdD4_|QiAu9TJn$CA(Eu#wtr!lopN) zhgDchBpR=e%?~?TZ3pEThK3DIjrmQ~mt^Wc3JVG*jvtTki^q+ds5+3Pz19UwX82qe z-H3LsbGehG1a+M4!;=0Y#K6Up)DEtY=}z(>2*crlUt{eb0^cFK+E{L#_MpZ?D_=a`uoSXD2D~ zbj{|H$xp?4gFAc329-)?(LI#t_$x}{;4TthtI3!6EZ3vg-_*-e)yJy#)v9(^i9^q$ zUG#j)?R?eH(~~zf@xuJX$0do^L!_PcO$-_1-Qk**Jcr1s~f}J{A-_M&m`FK1>*=zFN z_`#CI0kRL};iF|5j_)m|nJbCgY>Pw<}*zsWEMPzAe`+z>7#NuIxLy7ufM@sN> zBGh_pWGM0X$sd#?ezB&$r0QrW@oY)ry(5&9jUDktC2r^XDS7c+L%-IiT|lu>u( zO1vLR{C7#>_riZciThUe7ixWGq$=TL`FaY65+AC}Bo&|h=lF!s#*bqKCGE@IQ2X^%J~s_JS+xFS z<=Ts3yoQt0C;cf_T$H`%WH5WrAC;EVCm)Gje2T=qX#MSI@#l(LpFxZK1^#uq@w-&Z z>3kfPa!+%I_si|=?{`+e)7<`UPIt%g4RZYbF6lj`cX6)c_=h>YdtZ)lOiI`raGY-0 zKpm$$J&3DEuIumDyEh_rb3q3BY6;znb0_t6oSq`kae8@-y@|0mGeQV4_Ho_fT*CXF z>lEjXK??mwz~eaCBcN(dzI#OefNm!%Pixn?N05YJ}4LI8zrW>LaEua+{Hr z6HFDjGeE7^M$Ia8%R$}3)L1tTnXODsbT@+9#MBk;m%zE1sgQdssC$?yR@8Q;u2R%P zOwCf%4yH=n(TKN`sX0o|4yH=oHl+8A>+}SRll2%a0i3~EPf)H=`vL7DFZ*{>_5&L4 zSOz%9=^mH_tb1T9s6JHIq<>$kN`z8DEA$(J<^p{HL_bw8bmien*FEqA0dg>{FM zgk|(&Id|J!)a=s;b%&E&a_LFRH@W`Nv8lWgh~|s787*|&^GPsMh~SZwlPiF;X7h<9 zy=F%}&E|L2%qAsqrCFxHq-GUeHSZ-Wp%M=7sN4FX;q|8G*(@W4U$?~Ld8}$ zN22gTK_pn$1TVTJaEKQZB7|w@AMOrZ;_vlAVAuqIELJyb*4O>#+%nLgyI_Ls{T^lc6 zv8XfTU%g;=V1<8>?>u+VQVMF=ylC;1Sv`iVLqO3=F^Q zo#JZ)v+*0a&i~3<-v~Ewe_+_|!1w*9=lkP+mT;uYzB2Yi|2_x0i} zuvsLd=ON%`Qj<(D!b zC5d>FN19HNOH<6LvC30prIftHx<$){;CbSuX%;zE@$c1PrUCjgkpB@7vflwPrM(SeC+og zsq)K2{u^GrmUZ_FA;Qo*crw`2!B2^gf)MZTIYmekS=ClV{Ec9{qm;iZ*g+AnZWl4a2ZhA!o&8eA4IQE7s9b_a5xAxyj?6djm& zlX+QW3rf{$p2QNZT&Hxgr4t}q(0XQhn4c&(@$U7Y`I%z+0i zs*_|X6YoGww#m89675O;N?M{hdKU2x^I~0{t0Y-ctW(5k zHh5{LbdSQa)MF_Z?=}ybzk|ImCL!@2V#x1A*WE9~|0MZrwI#u%PAOeaDoaXZpm9wX z-U=-DcEO8dyVN6Qrvi!~B;~Nxp^cn$0m%bnhxS#BV`7K4IP4Q(hjtolP>zKiTF!GK zavbc?qFL#R^W{{v$XeHR$r~+Nqjfh%!ZD{A-f+07rUri6H&p(K<3Z6jT)22{xW1|C z29UI4M`S}~%MFnhXDji7oKaj7gx7H{!ar@jfTHC`icM(yIf{V-e#%_m=9AWR4F@dc z=YuvQ(>wV2DnDh`BD0Z{Xxz#B`5EHpTz+QpQzj2~d>Px8GhZ`5WjM6?rNjP&`Pg`l z^ouq>ZMl+@e&z>EpUKVQyG(zNpPD=QD}_u4-gf1}Q8B-3fD*;gb#=Iz&hl~8Ue_oU zCE8L&r@&4)THDkTTNbZ5MUA710gmu8)JLa=-js0an;Mtrsh@abv~GE0q&kmI0-_Yw z9BHhEc&ECqrp91Y;hL2W{hiv%)zMgG)eRH{FA3n$q^h7&7$R`c{V%+*p>&}n!Zr1k z%cGeaoMc9&P!(^%L3e$;q0y;PdSrU-qp7}{T2(ZH1o(*-TIfUz!|`Ukj6$!1kOjv| zWA5@Ai`mj>52n%SVzpE|l9DT1>hR8iD!HgCA1bK4E)j_>igy@v$$Y+7N5t%o>Iv9f zW1VmV-o}9P)p$8UmtcGu^5Zl{BGvVg6mvRMd6dOGP066mRPIq#Lr6F7YsjlQmT+@Z z6e+1L2Ohlhfh4GhldjKv6UNJ_sx9aVn~;F2t*WYxsl_W4*iDPp#>dpOR4!LP;g)E0 znc;&vW1=V^SZ<7dw_yxv7+w*pTvi`3N;1v3KyQe!dR+<=t;>5Ssiv+a8grC_#yb=0 z?UK)ap~=cSn_3yQ5pQc4eK#3UH4D`OQRnKLR&t&5ssNea9E!r>=E`ck3q%hTFFnTT z$9Vmi;DqCi@n{60NVAZB($`*Nyra~Xq0Ppdb(Nbrry}pl3op!58<%-_1!-)-xPl3J zBg@bqgeqeiA3c7QLoWfLcEp#VidD8CZxEy_xXKc2{n>9$B|AUmn|bAxm*kCv2BSVZ zc|;h@(cK$M%N%!APWNvRa8{olfz56Xe0fB|$$&-Jc!fBQOveZdF*bvrXX7aoFEve> z-Y=)s=PT;fFEG7#s9%8M+{C;IeiF8s{de#)56|zg|Ht$U-R@u1ub|y`YgTJF-{yWa z4CmqBe*7c%0R7CSz&XTqyWdxiB&YUv@}sL8P`&YtwdiN9_*x?MmHG5~kdv=E|NLdq zD7=wn@#W#lWy|oYnuB-jz@wqM#+s%s0CuS(!jHDyC9FBVtg#X!kqxSy=q_MoOJ(D7 zV$`X0rJ$-Xqld{q)k}Z*^omjhU4DLJQ!J8?nlM@oC>%dh8%Dp-0EL&gG{u|AT>l%c zKL+^I(g-SIOr}d`fgXT=m=P)`&pc2N;b4x}#g#H;Pq3)2n2zL%EE8W}psA${5+BVS zL?5aDBY;u*JkNknyYcCSBFKhmVn{Oo-S~xwOX=HA(!bgYv`A+3Ht*Mfrc3`GPG91axE%bm z)Bgc5TP7gq6HZ?i8ibLvd3Q1<=_n@rEI&v4KD3mR`10J(@%=uDsh>-S>Zj-{p*H;5$Mr~XgkOTDH|cGAVxzn0UN6IdmbdC4#Oe`xp#7q^w;3oTEHCv*S+VLk!) zc@M`wV&S5{z_g%Dm;b}lG{+%kq~fGJOMJ;cbuV_`Nm16HN56Qj%Tm}P)9Oy~4qr&W zNRx%ryd)R@?DVNmNtgbKd<4MVY9(lqnkmgM@nt!GKA9#6>DkuST>i9{B>lKEw}kmq zMop1pb^097uU~1hq>y~|{!$v;>O4I;+__pY{HldpAV|N{KNVCsl}M`dtC>PNT)lmf z65#h{vt5Jy&Y-RUQ+}`YB!ekO{f%;&!$ITlJl97pS39Xcb3qb+DdRFHjxxT3ahVry zXIzq=$Kg8}U&<9r=ET2YTsBhfVE(@`zMiYlj~S$lgoypK}3ts>$u=S$+OX8zfk5|G)GXEi+5zPMca1o;zd4{9t*weCo84 zApX)I`8O`u2>3jI^Af`(9y={gtVykYv4~Cchd_?=IM);Eqp1)46mM~pdp84qJJ$!| z|AN8)w1E#XaGAIF0%rD7(sK|_Q^8w#kl^X0Bls4UI}kkN1a}!%uUG*`H8WZ#+9WZ< z2`=k|Q5sfq%w90xz)7FUOi!`!7fB%8H2v`O`90gK*up znw;RDuzZ?Nk`p|K<PTp!-H@HaWXf41;VY@dHxxY(;V#}hp#GcEZLyc^3o-{N1v z`b@C!0OPVTE^_F-Tyk>!E%;asJ7G)CON=*Ic!=eE$-*0%PFT1c>ECVPm$99{YvCbI z_s14Kjnmz0;Wskw*0@DfhpK$4q&N28Y-7=PQzJU|JwEv3?T*edxJC_(Z@eg4Ai!D6H_%#Mj>3*H@B^JJn z=?FiGjZ7l_d-4!g;}0T?+)b7ovHz_GPI|t|>9!fTY5%PTPW-*NJnl7c;urgW$H0ld zi2481!sUSNrv`4?f3Ja)oKBYWtbvpL3-FKJs|HT|=Q1thkCgk(jCUIRl`soa)%f=@k{+5W#Gi0#q`A%em>JP zEc`a6XBjxzZ7KedTWH`U|JO{{TKHI=Of?%g={b;T8Ly;0%0A&*4j22#dPC-4g3GwI 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 diff --git a/src/support/sifter/src/inc/Maat_rule.h b/src/support/sifter/src/inc/Maat_rule.h deleted file mode 100644 index 93c96c9..0000000 --- a/src/support/sifter/src/inc/Maat_rule.h +++ /dev/null @@ -1,210 +0,0 @@ - -/* -*****************Maat Network Flow Rule Manage Framework******** -* Maat is the Goddess of truth and justice in ancient Egyptian concept. -* Her feather was the measure that determined whether the souls (considered -* to reside in the heart) of the departed would reach the paradise of afterlife -* successfully. -* Author: zhengchao@iie.ac.cn,MESA -* Version 2015-11-09 digest scan -* NOTE: MUST compile with G++ -* All right reserved by Institute of Infomation Engineering,Chinese Academic of Science 2014~2018 -********************************************************* -*/ -#ifndef H_MAAT_RULE_H_INCLUDE -#define H_MAAT_RULE_H_INCLUDE -#ifndef __cplusplus -#error("This file should be compiled with C++ compiler") -#endif -#include "stream.h" -enum MAAT_CHARSET -{ - CHARSET_NONE=0, - CHARSET_GBK, - CHARSET_BIG5, - CHARSET_UNICODE, - CHARSET_UTF8, // 4 - CHARSET_BIN //5 -}; -enum MAAT_ACTION -{ - MAAT_ACTION_BLOCK=0, - MAAT_ACTION_MONIT, - MAAT_ACTION_WHITE -}; -enum MAAT_POS_TYPE -{ - MAAT_POSTYPE_EXPR=0, - MAAT_POSTYPE_REGEX -}; -typedef void* scan_status_t; -typedef void* stream_para_t; -typedef void* Maat_feather_t; - - -#define MAX_SERVICE_DEFINE_LEN 128 -struct Maat_rule_t -{ - int config_id; - int service_id; - char do_log; - char do_blacklist; - char action; - char resevered; - int serv_def_len; - char service_defined[MAX_SERVICE_DEFINE_LEN]; -}; -#define MAAT_RULE_UPDATE_TYPE_FULL 1 -#define MAAT_RULE_UPDATE_TYPE_INC 2 -typedef void Maat_start_callback_t(int update_type,void* u_para); -typedef void Maat_update_callback_t(int table_id,const char* table_line,void* u_para); -typedef void Maat_finish_callback_t(void* u_para); - - - - - -//--------------------HITTING DETAIL DESCRIPTION BEGIN - -#define MAAT_MAX_HIT_RULE_NUM 8 -#define MAAT_MAX_EXPR_ITEM_NUM 8 -#define MAAT_MAX_HIT_POS_NUM 2048 -#define MAAT_MAX_REGEX_GROUP_NUM 8 -//NOTE position buffer as hitting_regex_pos and hit_pos,are ONLY valid before next scan or Maat_stream_scan_string_end -struct regex_pos_t -{ - int group_num; - int hitting_regex_len; - const char* hitting_regex_pos; - int grouping_len[MAAT_MAX_REGEX_GROUP_NUM]; - const char* grouping_pos[MAAT_MAX_REGEX_GROUP_NUM]; -}; -struct str_pos_t -{ - int hit_len; - const char* hit_pos; -}; -struct sub_item_pos_t -{ - enum MAAT_POS_TYPE ruletype; - int hit_cnt; - union - { - struct regex_pos_t regex_pos[MAAT_MAX_HIT_POS_NUM]; - struct str_pos_t substr_pos[MAAT_MAX_HIT_POS_NUM]; - }; -}; - -struct Maat_region_pos_t -{ - - int region_id; - int sub_item_num; - struct sub_item_pos_t sub_item_pos[MAAT_MAX_EXPR_ITEM_NUM]; -}; - -struct Maat_hit_detail_t -{ - int config_id;//set <0 if half hit; - int hit_region_cnt; - struct Maat_region_pos_t region_pos[MAAT_MAX_HIT_RULE_NUM]; -}; -//--------------------HITTING DETAIL DESCRIPTION END - -//Abondon interface ,left for compatible. -Maat_feather_t Maat_summon_feather(int max_thread_num, - const char* table_info_path, - const char* ful_cfg_dir, - const char* inc_cfg_dir, - void*logger);//MESA_handle_logger -//Abondon interface ,left for compatible. -Maat_feather_t Maat_summon_feather_json(int max_thread_num, - const char* table_info_path, - const char* json_rule, - void* logger); - -Maat_feather_t Maat_feather(int max_thread_num,const char* table_info_path,void* logger); -int Maat_initiate_feather(Maat_feather_t feather); - -enum MAAT_INIT_OPT -{ - MAAT_OPT_SCANDIR_INTERVAL_MS=1, //VALUE is interger,SIZE=sizeof(int). DEFAULT:1,000 milliseconds. - MAAT_OPT_EFFECT_INVERVAL_MS, //VALUE is interger,SIZE=sizeof(int). DEFAULT:60,000 milliseconds. - MAAT_OPT_FULL_CFG_DIR, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_INC_CFG_DIR, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_JSON_FILE_PATH, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_STAT_ON, //VALUE is indifferent,SIZE is indifferent.MAAT_OPT_STAT_FILE_PATH must be set.Default: stat OFF. - MAAT_OPT_PERF_ON, //VALUE is indifferent,SIZE is indifferent.MAAT_OPT_STAT_FILE_PATH must be set.Default: stat OFF. - MAAT_OPT_STAT_FILE_PATH, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_SCAN_DETAIL //VALUE is interger,SIZE=sizeof(int). 0: not return any detail;1: return hit pos, not include regex grouping; - // 2 return hit pos and regex grouping pos;DEFAULT:2 -}; -//return -1 if failed, return 0 on success; -int Maat_set_feather_opt(Maat_feather_t feather,enum MAAT_INIT_OPT type,const void* value,int size); -void Maat_burn_feather(Maat_feather_t feather); - -//return table_id(>=0) if success,otherwise return -1; -int Maat_table_register(Maat_feather_t feather,const char* table_name); -//return 1 if success,otherwise return -1 incase invalid table_id or registed function number exceed 32; -int Maat_table_callback_register(Maat_feather_t feather,short table_id, - Maat_start_callback_t *start,//MAAT_RULE_UPDATE_TYPE_*,u_para - Maat_update_callback_t *update,//table line ,u_para - Maat_finish_callback_t *finish,//u_para - void* u_para); - -enum MAAT_SCAN_OPT -{ - MAAT_SET_SCAN_DISTRICT=1 //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. -}; -//return 0 if success, return -1 when failed; -int Maat_set_scan_status(Maat_feather_t feather,scan_status_t* mid,enum MAAT_SCAN_OPT type,const void* value,int size); - -//Return hit rule number, return -1 when error occurs,return -2 when hit current region -//mid MUST set NULL before fist call -int Maat_scan_intval(Maat_feather_t feather,int table_id - ,unsigned int intval - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_scan_addr(Maat_feather_t feather,int table_id - ,struct ipaddr* addr - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_scan_proto_addr(Maat_feather_t feather,int table_id - ,struct ipaddr* addr,unsigned short int proto - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_full_scan_string(Maat_feather_t feather,int table_id - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int* found_pos,int rule_num - ,scan_status_t* mid,int thread_num); -//hite_detail could be NULL if unconcern -int Maat_full_scan_string_detail(Maat_feather_t feather,int table_id - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int rule_num,struct Maat_hit_detail_t *hit_detail,int detail_num - ,int* detail_ret,scan_status_t* mid,int thread_num); - -stream_para_t Maat_stream_scan_string_start(Maat_feather_t feather,int table_id,int thread_num); -int Maat_stream_scan_string(stream_para_t* stream_para - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int* found_pos,int rule_num - ,scan_status_t* mid); -//hited_detail could be NULL if unconcern -int Maat_stream_scan_string_detail(stream_para_t* stream_para - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int rule_num,struct Maat_hit_detail_t *hit_detail,int detail_num - ,int* detail_ret,scan_status_t* mid); -void Maat_stream_scan_string_end(stream_para_t* stream_para); - -stream_para_t Maat_stream_scan_digest_start(Maat_feather_t feather,int table_id,unsigned long long total_len,int thread_num); -int Maat_stream_scan_digest(stream_para_t* stream_para - ,const char* data,int data_len,unsigned long long offset - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t* mid); -void Maat_stream_scan_digest_end(stream_para_t* stream_para); - - - -void Maat_clean_status(scan_status_t* mid); - -#endif // H_MAAT_RULE_H_INCLUDE - diff --git a/src/support/sifter/src/inc/Maat_rule.h.bak b/src/support/sifter/src/inc/Maat_rule.h.bak deleted file mode 100644 index 9a518ac..0000000 --- a/src/support/sifter/src/inc/Maat_rule.h.bak +++ /dev/null @@ -1,210 +0,0 @@ - -/* -*****************Maat Network Flow Rule Manage Framework******** -* Maat is the Goddess of truth and justice in ancient Egyptian concept. -* Her feather was the measure that determined whether the souls (considered -* to reside in the heart) of the departed would reach the paradise of afterlife -* successfully. -* Author: zhengchao@iie.ac.cn,MESA -* Version 2015-11-09 digest scan -* NOTE: MUST compile with G++ -* All right reserved by Institute of Infomation Engineering,Chinese Academic of Science 2014~2018 -********************************************************* -*/ -#ifndef H_MAAT_RULE_H_INCLUDE -#define H_MAAT_RULE_H_INCLUDE -#ifndef __cplusplus -#error("This file should be compiled with C++ compiler") -#endif -#include "stream.h" -enum MAAT_CHARSET -{ - CHARSET_NONE=0, - CHARSET_GBK, - CHARSET_BIG5, - CHARSET_UNICODE, - CHARSET_UTF8, // 4 - CHARSET_BIN //5 -}; -enum MAAT_ACTION -{ - MAAT_ACTION_BLOCK=0, - MAAT_ACTION_MONIT, - MAAT_ACTION_WHITE -}; -enum MAAT_POS_TYPE -{ - MAAT_POSTYPE_EXPR=0, - MAAT_POSTYPE_REGEX -}; -typedef void* scan_status_t; -typedef void* stream_para_t; -typedef void* Maat_feather_t; - - -#define MAX_SERVICE_DEFINE_LEN 128 -struct Maat_rule_t -{ - int config_id; - int service_id; - char do_log; - char do_blacklist; - char action; - char resevered; - int serv_def_len; - char service_defined[MAX_SERVICE_DEFINE_LEN]; -}; -#define MAAT_RULE_UPDATE_TYPE_FULL 1 -#define MAAT_RULE_UPDATE_TYPE_INC 2 -typedef void Maat_start_callback_t(int update_type,void* u_para); -typedef void Maat_update_callback_t(int table_id,const char* table_line,void* u_para); -typedef void Maat_finish_callback_t(void* u_para); - - - - - -//--------------------HITTING DETAIL DESCRIPTION BEGIN - -#define MAAT_MAX_HIT_RULE_NUM 8 -#define MAAT_MAX_EXPR_ITEM_NUM 8 -#define MAAT_MAX_HIT_POS_NUM 512 -#define MAAT_MAX_REGEX_GROUP_NUM 8 -//NOTE position buffer as hitting_regex_pos and hit_pos,are ONLY valid before next scan or Maat_stream_scan_string_end -struct regex_pos_t -{ - int group_num; - int hitting_regex_len; - const char* hitting_regex_pos; - int grouping_len[MAAT_MAX_REGEX_GROUP_NUM]; - const char* grouping_pos[MAAT_MAX_REGEX_GROUP_NUM]; -}; -struct str_pos_t -{ - int hit_len; - const char* hit_pos; -}; -struct sub_item_pos_t -{ - enum MAAT_POS_TYPE ruletype; - int hit_cnt; - union - { - struct regex_pos_t regex_pos[MAAT_MAX_HIT_POS_NUM]; - struct str_pos_t substr_pos[MAAT_MAX_HIT_POS_NUM]; - }; -}; - -struct Maat_region_pos_t -{ - - int region_id; - int sub_item_num; - struct sub_item_pos_t sub_item_pos[MAAT_MAX_EXPR_ITEM_NUM]; -}; - -struct Maat_hit_detail_t -{ - int config_id;//set <0 if half hit; - int hit_region_cnt; - struct Maat_region_pos_t region_pos[MAAT_MAX_HIT_RULE_NUM]; -}; -//--------------------HITTING DETAIL DESCRIPTION END - -//Abondon interface ,left for compatible. -Maat_feather_t Maat_summon_feather(int max_thread_num, - const char* table_info_path, - const char* ful_cfg_dir, - const char* inc_cfg_dir, - void*logger);//MESA_handle_logger -//Abondon interface ,left for compatible. -Maat_feather_t Maat_summon_feather_json(int max_thread_num, - const char* table_info_path, - const char* json_rule, - void* logger); - -Maat_feather_t Maat_feather(int max_thread_num,const char* table_info_path,void* logger); -int Maat_initiate_feather(Maat_feather_t feather); - -enum MAAT_INIT_OPT -{ - MAAT_OPT_SCANDIR_INTERVAL_MS=1, //VALUE is interger,SIZE=sizeof(int). DEFAULT:1,000 milliseconds. - MAAT_OPT_EFFECT_INVERVAL_MS, //VALUE is interger,SIZE=sizeof(int). DEFAULT:60,000 milliseconds. - MAAT_OPT_FULL_CFG_DIR, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_INC_CFG_DIR, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_JSON_FILE_PATH, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_STAT_ON, //VALUE is indifferent,SIZE is indifferent.MAAT_OPT_STAT_FILE_PATH must be set.Default: stat OFF. - MAAT_OPT_PERF_ON, //VALUE is indifferent,SIZE is indifferent.MAAT_OPT_STAT_FILE_PATH must be set.Default: stat OFF. - MAAT_OPT_STAT_FILE_PATH, //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. - MAAT_OPT_SCAN_DETAIL //VALUE is interger,SIZE=sizeof(int). 0: not return any detail;1: return hit pos, not include regex grouping; - // 2 return hit pos and regex grouping pos;DEFAULT:2 -}; -//return -1 if failed, return 0 on success; -int Maat_set_feather_opt(Maat_feather_t feather,enum MAAT_INIT_OPT type,const void* value,int size); -void Maat_burn_feather(Maat_feather_t feather); - -//return table_id(>=0) if success,otherwise return -1; -int Maat_table_register(Maat_feather_t feather,const char* table_name); -//return 1 if success,otherwise return -1 incase invalid table_id or registed function number exceed 32; -int Maat_table_callback_register(Maat_feather_t feather,short table_id, - Maat_start_callback_t *start,//MAAT_RULE_UPDATE_TYPE_*,u_para - Maat_update_callback_t *update,//table line ,u_para - Maat_finish_callback_t *finish,//u_para - void* u_para); - -enum MAAT_SCAN_OPT -{ - MAAT_SET_SCAN_DISTRICT=1 //VALUE is a const char*,MUST end with '\0',SIZE= strlen(string+'\0')+1.DEFAULT: no default. -}; -//return 0 if success, return -1 when failed; -int Maat_set_scan_status(Maat_feather_t feather,scan_status_t* mid,enum MAAT_SCAN_OPT type,const void* value,int size); - -//Return hit rule number, return -1 when error occurs,return -2 when hit current region -//mid MUST set NULL before fist call -int Maat_scan_intval(Maat_feather_t feather,int table_id - ,unsigned int intval - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_scan_addr(Maat_feather_t feather,int table_id - ,struct ipaddr* addr - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_scan_proto_addr(Maat_feather_t feather,int table_id - ,struct ipaddr* addr,unsigned short int proto - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t *mid,int thread_num); -int Maat_full_scan_string(Maat_feather_t feather,int table_id - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int* found_pos,int rule_num - ,scan_status_t* mid,int thread_num); -//hite_detail could be NULL if unconcern -int Maat_full_scan_string_detail(Maat_feather_t feather,int table_id - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int rule_num,struct Maat_hit_detail_t *hit_detail,int detail_num - ,int* detail_ret,scan_status_t* mid,int thread_num); - -stream_para_t Maat_stream_scan_string_start(Maat_feather_t feather,int table_id,int thread_num); -int Maat_stream_scan_string(stream_para_t* stream_para - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int* found_pos,int rule_num - ,scan_status_t* mid); -//hited_detail could be NULL if unconcern -int Maat_stream_scan_string_detail(stream_para_t* stream_para - ,enum MAAT_CHARSET charset,const char* data,int data_len - ,struct Maat_rule_t*result,int rule_num,struct Maat_hit_detail_t *hit_detail,int detail_num - ,int* detail_ret,scan_status_t* mid); -void Maat_stream_scan_string_end(stream_para_t* stream_para); - -stream_para_t Maat_stream_scan_digest_start(Maat_feather_t feather,int table_id,unsigned long long total_len,int thread_num); -int Maat_stream_scan_digest(stream_para_t* stream_para - ,const char* data,int data_len,unsigned long long offset - ,struct Maat_rule_t*result,int rule_num - ,scan_status_t* mid); -void Maat_stream_scan_digest_end(stream_para_t* stream_para); - - - -void Maat_clean_status(scan_status_t* mid); - -#endif // H_MAAT_RULE_H_INCLUDE - diff --git a/src/support/sifter/src/libsifter.a b/src/support/sifter/src/libsifter.a index 1595d062e9f77565c79996aa88e064cd8d3083f1..d2ba0486689192e313e2dadf16520db17155fae7 100644 GIT binary patch literal 58240 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
        ^kg|Rq7!A#U)FYudvjqYBd%0bXJ>gkF?yR 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 Ysxb4XHjym<<*Rgh*&m`qiMICt0JG$vG5`Po literal 57952 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%0A&*4j22#dPC-4g3GwI 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