From 12c0cd10c78733cc8739d3234c8ab6900a7efa12 Mon Sep 17 00:00:00 2001 From: henrypp Date: Sat, 15 Oct 2016 00:40:18 +0600 Subject: [PATCH] 1.3 released --- CHANGELOG.md | 17 ++++++ README.md | 2 +- bin/History.txt | 17 ++++++ bin/i18n/!example.txt | Bin 7240 -> 8922 bytes bin/i18n/French.ini | Bin 7324 -> 0 bytes bin/i18n/Italiano.ini | Bin 7474 -> 0 bytes bin/i18n/Korean.ini | Bin 5704 -> 6524 bytes bin/i18n/Russian.ini | Bin 7790 -> 9626 bytes bin/i18n/Simplified Chinese.ini | Bin 5076 -> 5912 bytes src/main.cpp | Bin 221294 -> 259262 bytes src/main.h | Bin 45548 -> 45636 bytes src/resource.h | 97 ++++++++++++++++++++++---------- src/resource.rc | Bin 24766 -> 29510 bytes 13 files changed, 102 insertions(+), 31 deletions(-) delete mode 100644 bin/i18n/French.ini delete mode 100644 bin/i18n/Italiano.ini diff --git a/CHANGELOG.md b/CHANGELOG.md index d97f5ca2..71022684 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,20 @@ +v1.3 (15 October 2016) ++ disable/enable windows firewall on filters installation/deletion ++ normalize nt paths for dropped packets callback ++ exclude "svchost.exe" & "system" from log configuration ++ abbility to show/clear log ++ resize support as in alpha builds ++ hotkeys for menu items ++ PathUnExpandEnvStrings for log path ++ confirmation settings for exit/deleting application/log clear +- changed message boxes style +- changed default color for invalid application +- fixed access denied for some processes +- config doesn't saved if user don't trigger apply filters +- improved windows firewall control +- stability improvements +- updated translation + v1.2.118 (5 October 2016) - fixed crash on filters installation - save sort order into profile (regression) diff --git a/README.md b/README.md index 9beb1743..9c885c18 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ##Wfp Tool -![Wfp Tool](http://www.henrypp.org/images/wfptool.jpg?stupidgithubcachigfix) +![Wfp Tool](http://www.henrypp.org/images/wfptool.jpg?stupidgithubcachingfix) Simple tool to configure Windows Filtering Platform (WFP) which can configure network activity on your computer. diff --git a/bin/History.txt b/bin/History.txt index d97f5ca2..71022684 100644 --- a/bin/History.txt +++ b/bin/History.txt @@ -1,3 +1,20 @@ +v1.3 (15 October 2016) ++ disable/enable windows firewall on filters installation/deletion ++ normalize nt paths for dropped packets callback ++ exclude "svchost.exe" & "system" from log configuration ++ abbility to show/clear log ++ resize support as in alpha builds ++ hotkeys for menu items ++ PathUnExpandEnvStrings for log path ++ confirmation settings for exit/deleting application/log clear +- changed message boxes style +- changed default color for invalid application +- fixed access denied for some processes +- config doesn't saved if user don't trigger apply filters +- improved windows firewall control +- stability improvements +- updated translation + v1.2.118 (5 October 2016) - fixed crash on filters installation - save sort order into profile (regression) diff --git a/bin/i18n/!example.txt b/bin/i18n/!example.txt index f2b2c5a797671be203b6b2f9e733490c8cff5aa0..b9783e30256896f9feefd29fe034fe86c19b252c 100644 GIT binary patch delta 1631 zcmbVMOHUJF6uku@K#G>uwjd&-#so1T5?vrkgH0J8p$}v#qQNwzw9rtdSc(M~5*M;E zG3LhqVbZ0V$j+5NfR(a$V_X{b+;4_3Luq2nWM1Fno^#JV_xn6@puaox@DI;T9&8${ zEjE2^=ASM8Ye`B`nx<(2cZ{OyJ4Hz{D1v8+Dpa66fAse8ua=I^I95+$CXSgE-uDIg zd24HJw)L=`ANg*3M)HUf6{Tf*N=sx?mU8$WmG!kt{@G@}8`|SyTN|4} zFDF9-{ObH!-V4Qd8>TMdk2?v924z5Yie^B?pjD8mk_I4~E+}UKEYwRF-NalT zUuC>=pp?T{1*4tRfuzS(G=;o)iVha^IN(z>i%Z9b{{rW?!ONLC$WstwK#JqikzyL@ z>hu705o~ALF(g#Pl|!l(m3)q>{4LzeU%cLiLPk~0X&@w##T3v*&ItZZ#KFzZBg^6i2*W{1#{(BdPNI`6>(%{Fzmt&%FTE(%u4zo@ZYhY5sSOp9V zw$%$Nl12km#w%{B~CtpjzHUjzc-2K)HUx!}_AnN}};gMCoZjd#mc#HzCEGIXg* z2K*%4SDO$2_VBar3sQkIq~(hlG24zwS2(-`lE0{qE;hClSQ J)y$rQroY%pEZP77 delta 293 zcmccRdctDEBS!uhh7ty6ATDCaVbEr9oBWW`kR2rE#$Y^IkVzZLHr;H^^pJUS1Ru}j zGi)527qC6z;5`!5$82lN+8Jrj#fp+@<+5TXiKwB7s8RCIH@nG-cyj;muXDd`z34$$w!200W^! AZvX%Q diff --git a/bin/i18n/French.ini b/bin/i18n/French.ini deleted file mode 100644 index 3a3dfdd47351a5c643cae05702fbcf73d7f835a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7324 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 diff --git a/bin/i18n/Korean.ini b/bin/i18n/Korean.ini index 15b84a2ce6822618179e90bc9254fbd057a2fe89..46357d84a306233cf3638a11db2b771887541a94 100644 GIT binary patch delta 939 zcmb7DO-sX25ZqLYP!pl)2O=VfC?0xILF%DkNK;#yCelQ$DA<$d9t6Ql|AP8%f_N7M zAt2&Sy!aFR4c-+IL1$mFO~pdWV?Y91Degh_Gk}hA`Q%VhqVp0bkpJiZZ(Ao}zWa)2N}iOIyJFMTfm$!H%37?9uD0#jlPnB2t(BYAAGWMAI(x7a~>Fu;YE|K0T%3t&pk zHXzYOL0gEWE)XZFz pyhk;YkB|oiy=~xSSb-10oqni@i_}!YqR!Cpvo+H*!D?EM{Q#zvoHGCb delta 258 zcmexkbV6stDn|Yoh7ty6ATDCaVbEr9o4k@ylLI8?#$e1a`4XcVlw-=U`3Iu|^W;OU zBAXYm-ec!5X0T<5+3{oT#ArG-Kdm`=qd}r zmAeZr+_>pVx)1_xi{QeA8-IY{4_PbH9 z-1kh%OI}^Jy;piKybp!k9revNsYM;C(-N9VWz}y{lh&v}Gr|yQkrG9bm(dYT{u&vd zXkdK}a}kUtdw)m2jLRSAQ=W{R@?9RwVxmr~@`K;syW^{PLX%jvh?Wxtkr5T37C*Wz1r14x?$Tnx~88Q0%&SvYt(4+_s{%j;xthU&)v#VS7Ra zi61D*WK!s}u}g~Lz%>pPo{t}Kiz`kQfvQk|i`YRM1d9#W| zXNOJ(c2_Z)g`K!AMKG@5-GDtS(hQn`euer+Ofi;QBN1fkpt!R;o=<_M54rL^!KNSV za__Wg9R+T{fn0|*x`oD-SaE3*RC?w_lQHG(u|U!WUJNUr(KbD%yYv8WTmc^4rYE#X z_vw+Eo5$=^v=}b2sV-juZCH%2o)yI5gSDm%#)sH;#q=R&8tSrnbgB%s-f`olmDSuC zx{i1kK?Yay2Ksz+^iO#L=X(l;t*O9#=M~V?DTQb5poBw!PsKHWJB=bNh;B(;phv6G zuds{fsc=ca@#%2xfWEVmilV{a0!5nVxzB_TNz0#MzkDD19N^o69aqANtU}78vU`z$ zrzN){QTaW*ix#%n9qj1>`M}(fBCB>95X$xa!JGvw{y6X`JKP2`zc0$Kk!bI2BK?&3ZjtR z$<5Brx(Yh@3A|J}-sA3lp8MV1CExzjv|2pICA#u1aEc0g;CE$_OR71W2|c*rrn>px zct}swGfIP*aX#mw4V`w$WlLMu>(9BLH~G)m94BSp8UP9a6)kxy+(s6i$o3Z!qO z9}8bo{Ihyx^$}x;17WRA%r-eRm<*Zd2))IRMwg$L?)h`MpzouP5e^X{#6V&skxj?g zV`HVfbaDj`=26bbWDUr|pR5i~Fy) eXQlnk)+^7KOX=Iji~0)QF>PM4eQ0sX~X4rnaSVnQV1nMH?O z@~KQkghi(OcF7@+@+7V&7gALu9N_2k;-wYt$M56eSF){%$JE+X4%gpTAD-AwEopl~ z*E?Zib~Pq$jWe-g%!#(K5$Kd8jxrU%*#h(6dPUsV$);n3gDyDNq7qe5V|08094;N= z*r*4FU9^P@KpGILB zVpGwXnU|LS&(1A$z%F7BumyJdh9AO@%qVX67pKS~8tFIjn$AwMJS=-Y+{)Z(KjsOZ AZ~y=R delta 248 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 KGPj*C(EJBo6QPg* diff --git a/src/main.h b/src/main.h index 399f00961423447b0e22e8b4d1e02989c3902cb9..66845056e9a2e1c2c83d8f080db1c58da87adcc4 100644 GIT binary patch delta 172 zcmaF!nCZw9rVTe38I31DWVGfqX3$|U0O84sjIx{En0y2#_et_?J|(2b2x4#-GgLAZ zGn6o-GUQI~6_%d7M~II(haqutr?Bj1BatY^$txs;CWlG9+Pp+`0n_9jQHjkCl24c? z?-CN2JV97&a)!9jWCL-F$$7F)lkJ4~SW_4h8A>K^6w}me SG8lnbMnLx%Z$7N3IROB-oiQK) delta 192 zcmX@|gz3#=rVTe3IgJ?f7z}~XV)8;p-N|fBe7r^sIuH>cZ7^ApQFgNxlaGL;CxahD z2!jGcF+&nVJVORUDnlkiI*=}z%q}axd5Vx8qq-YII70w~FHky|!4-&u89W*Mf!aWt zQh~S_s3o5vZ}LS!$<10KA&ip+G71}oS;o4JUgp*fwzXY5O2XRhKCk1@rNu$0PQ8fO}ce{0WtP8nm?{~lNoZt65 z=lsrh@8Uh%SC4JCJX*sLHBvk2G(<5Prcp{ziUue{gSe0IA+3Ww+S_{?>ExPrQP{^R zLTOmG@u%7mqj#gXf~&TM`FH0Fd}r%!-c{}ATU$JpR^S_(ecQ~L62yYNhdd>h`=E$zW_o>AIqX$tIw?qgH4@K%TMPVMy{EaHx8!~pTvLcR zEBjS;!n>=8)XmphJNcNqzC*HLRw}C20wi{#|B`*zk{^HM_H9W5ahUpmo#uOPH^1uI zxA0sn6lxAtGv$?p1f?PoR3cMci(xd184=q6a-CN9L2xw1DAhA9(nD!^HpD+G^-Y(5dRby5VX1h72?_rB~1|~KboS) z7UCN_o$U8NHs0wPv>Cg?o(=E$UAFF}X?8R=8R72#Ht_d-4zBO5;Fo)Mb6@`s{-Afa zai@23BmbDN^P|J|mU0@C(l;XaGc-?U=?uR+xJT@ZhpDV3ur^^dM4s3=meBcTtb#x8 zacH9`-IGM8t=niDzF^xPp>euIr)iqTD39?$Ziv(vi^(@M)-!MM)2Lm;@x{%VAfGs1 z#gmz1L**zvbKohd4=SBCLaUP?Q~>SiWzr7^o!Sh|@wTj!zwId>tckpQ{PDF^_4e{; z=hA!l%N|Fr9M5%*HVfk@cuwKUBQ^7icb*FTPp*zD4mrv;|B3?-X!72W!(R%LLgYHI zrckgkI!6aFS4no-3>&k-%Q3bbYbNT#GHe!b=RtCYE-IR>bU{(}(%$7QtlL=ouGqDf z&`ZS{1MW1P!5(wi<+M_p%+%-*%UMiJ!C(S$$)rws{<)_nW!+#!>svOF{Fb0~Xk!w@ z1!Wv}$-78X$FxN}GPdSv;Gz-+N~BpS4aFq%h7b^On$ z|4FctXGw}+>C{S7{7u@u#Vor}#wIh@xhp z%*)=AnK)fm8oa2oELg(e3L=_EEa%m;t`3B8#jX)6m*64&CN^GJUB*xRbecsTXRw;b z+6AtS)bV1{?v}5rbnydd80wcU$bj=8=JDR)`^h@@EPUpWL-ap(mFzC%RrbpB!qM7^ za{VALOZhA@KeR^i(v~>P!%$G589ZA>zYZ4PKTTj^=HjJkXa zIVC4)cqs?)Lg^HDl-@RMs(Cn^er#B$MZ~oti%m6X75R?vUaTdHNcKnIPE8=6@ZodH zEyt)2zfwbZ9_&OeeYlHrijbfBDQ=L{;jcES$Or zdEIAi*0U7D1zl^!32{$fRFEsU#Okr{_8l?S8Ds`aw1DHrxE!S@e$08j3A28JF7w6; zE%QwC2W-^pO9S{ebqF5}l?gpDG(0x8i!Gxj*$PbJEM28xd^{IGEv%xWqKZeSPRe*+ zy5`hr(o||*#f|bl+ZBGW$UG}}R`%jmY4_Ucn^-Nn%K!Z&%F`^JVZk~bHEB-pf@P{R u)#hbCmDpDqON<)l4er-@!r#g(w8Ell)Ig@tj{6I{#QeO=A~w#~?0*5GRG