diff --git a/kni_intercept.c b/kni_intercept.c index 38d29e8..5e861b2 100644 --- a/kni_intercept.c +++ b/kni_intercept.c @@ -1337,13 +1337,11 @@ int tcprepair_set_state(int sk,struct kni_tcp_state* tcp,struct sockaddr* client } - if((tcp->wscale_dst)&&(tcp->wscale_src)) - { - opts[onr].opt_code = TCPOPT_WINDOW; - opts[onr].opt_val = tcp->wscale_dst+ (tcp->wscale_src<< 16); - onr++; - } + opts[onr].opt_code = TCPOPT_WINDOW; + opts[onr].opt_val = tcp->wscale_dst+ (tcp->wscale_src<< 16); + onr++; + opts[onr].opt_code = TCPOPT_MAXSEG; opts[onr].opt_val = (tcp->mss_srcmss_dst)?tcp->mss_src:tcp->mss_dst; @@ -1400,7 +1398,9 @@ int tcp_repair_process(const struct streaminfo* pstream,const void* a_packet,str int fd_client,fd_server; struct kni_tcp_state fake_client; struct kni_tcp_state fake_server; - + memset(&fake_client, 0, sizeof(fake_client)); + memset(&fake_server, 0, sizeof(fake_server)); + struct sockaddr* client_addr = NULL; struct sockaddr* server_addr = NULL;