修复窗口扩大选项为1时未正确repair的bug,详见 #48

This commit is contained in:
zhengchao
2019-02-26 19:41:09 +06:00
parent 4fd98e5876
commit cee5d246f9

View File

@@ -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_src<tcp->mss_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;