Merge branch 'bugfix-downstream-timeout-on-winscale-1' into 'master'

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

See merge request tango/kni!3
This commit is contained in:
郑超
2019-02-26 21:41:53 +08:00

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;