修复窗口扩大选项为1时未正确repair的bug,详见 #48 。
This commit is contained in:
@@ -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_code = TCPOPT_MAXSEG;
|
||||||
opts[onr].opt_val = (tcp->mss_src<tcp->mss_dst)?tcp->mss_src:tcp->mss_dst;
|
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;
|
int fd_client,fd_server;
|
||||||
struct kni_tcp_state fake_client;
|
struct kni_tcp_state fake_client;
|
||||||
struct kni_tcp_state fake_server;
|
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* client_addr = NULL;
|
||||||
struct sockaddr* server_addr = NULL;
|
struct sockaddr* server_addr = NULL;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user