diff options
author | mohans <mohans@FreeBSD.org> | 2007-02-28 20:48:00 +0000 |
---|---|---|
committer | mohans <mohans@FreeBSD.org> | 2007-02-28 20:48:00 +0000 |
commit | 2010e1d527af4d5a25b9e8dd38e95b0b3d1a214c (patch) | |
tree | 4ab1defb3be0d7e57396bcc4319c1d15e9b7d8e0 | |
parent | ad7a801a078f67ac57653ed1472bb857762e4a7a (diff) | |
download | FreeBSD-src-2010e1d527af4d5a25b9e8dd38e95b0b3d1a214c.zip FreeBSD-src-2010e1d527af4d5a25b9e8dd38e95b0b3d1a214c.tar.gz |
In the SYN_SENT case, Initialize the snd_wnd before the call to tcp_mss().
The TCP hostcache logic in tcp_mss() depends on the snd_wnd being initialized.
-rw-r--r-- | sys/netinet/tcp_input.c | 5 | ||||
-rw-r--r-- | sys/netinet/tcp_reass.c | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 01f2316..2190a7b 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1155,6 +1155,8 @@ after_listen: tp->ts_recent = to.to_tsval; tp->ts_recent_age = ticks; } + /* Initial send window, already scaled. */ + tp->snd_wnd = th->th_win; if (to.to_flags & TOF_MSS) tcp_mss(tp, to.to_mss); if (tp->sack_enable) { @@ -1484,9 +1486,6 @@ after_listen: if ((thflags & TH_SYN) == 0) goto drop; - /* Initial send window, already scaled. */ - tp->snd_wnd = th->th_win; - tp->irs = th->th_seq; tcp_rcvseqinit(tp); if (thflags & TH_ACK) { diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c index 01f2316..2190a7b 100644 --- a/sys/netinet/tcp_reass.c +++ b/sys/netinet/tcp_reass.c @@ -1155,6 +1155,8 @@ after_listen: tp->ts_recent = to.to_tsval; tp->ts_recent_age = ticks; } + /* Initial send window, already scaled. */ + tp->snd_wnd = th->th_win; if (to.to_flags & TOF_MSS) tcp_mss(tp, to.to_mss); if (tp->sack_enable) { @@ -1484,9 +1486,6 @@ after_listen: if ((thflags & TH_SYN) == 0) goto drop; - /* Initial send window, already scaled. */ - tp->snd_wnd = th->th_win; - tp->irs = th->th_seq; tcp_rcvseqinit(tp); if (thflags & TH_ACK) { |