diff --git a/binaries/armhf/tpws b/binaries/armhf/tpws index b51b2dc..4683909 100755 Binary files a/binaries/armhf/tpws and b/binaries/armhf/tpws differ diff --git a/binaries/mips32r1-lsb/tpws b/binaries/mips32r1-lsb/tpws index cae38f3..c56ad8a 100755 Binary files a/binaries/mips32r1-lsb/tpws and b/binaries/mips32r1-lsb/tpws differ diff --git a/binaries/mips32r1-msb/tpws b/binaries/mips32r1-msb/tpws index e15838b..4fa0f24 100755 Binary files a/binaries/mips32r1-msb/tpws and b/binaries/mips32r1-msb/tpws differ diff --git a/binaries/x86_64/tpws b/binaries/x86_64/tpws index 365fdf9..fc948db 100755 Binary files a/binaries/x86_64/tpws and b/binaries/x86_64/tpws differ diff --git a/changes.txt b/changes.txt index c8c2740..9f9c9dd 100644 --- a/changes.txt +++ b/changes.txt @@ -77,3 +77,8 @@ added --hostspell option to nfqws and tpws ISP support : beeline now catches "host" but other spellings still work openwrt/LEDE : changed init script to work with procd tpws, nfqws : minor cosmetic fixes + +v16 + +tpws: split-http-req=method : split inside method name, not after +ISP support : mns.ru changed split pos to 3 (got redirect page with HEAD req : curl -I ej.ru) diff --git a/readme.txt b/readme.txt index 21fd09c..64548a1 100644 --- a/readme.txt +++ b/readme.txt @@ -1,4 +1,4 @@ -zapret v.15 +zapret v.16 Для чего это надо ----------------- diff --git a/tpws/tpws.c b/tpws/tpws.c index 5cfdd87..b426e00 100644 --- a/tpws/tpws.c +++ b/tpws/tpws.c @@ -109,8 +109,8 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ if (bOutgoing) { char buf[RD_BLOCK_SIZE+2],*p,*phost=NULL; - ssize_t l,split_pos=0,method_split_pos=0,host_split_pos=0,pos; - const char **split_array,**split_item,**item; + ssize_t l,split_pos=0,method_split_pos=0,host_split_pos=0,split_array_pos_offset=1,pos; + const char **split_array=NULL, **split_item, **item; rd = recv(fd_in,buf,RD_BLOCK_SIZE,MSG_DONTWAIT); if (rd>0) @@ -130,7 +130,7 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ memmove(p+1,p,bs-pos); *p = ' '; // insert extra space bs++; // block will grow by 1 byte - method_split_pos = pos; // remember split position and use it if required + method_split_pos = pos-2; // remember split position and use it if required break; } } @@ -154,7 +154,6 @@ bool handle_epollin(tproxy_conn_t *conn,int *data_transferred){ } if (params.split_pos) { - split_array = NULL; split_pos = params.split_pos