summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormohans <mohans@FreeBSD.org>2007-02-28 20:48:00 +0000
committermohans <mohans@FreeBSD.org>2007-02-28 20:48:00 +0000
commit2010e1d527af4d5a25b9e8dd38e95b0b3d1a214c (patch)
tree4ab1defb3be0d7e57396bcc4319c1d15e9b7d8e0
parentad7a801a078f67ac57653ed1472bb857762e4a7a (diff)
downloadFreeBSD-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.c5
-rw-r--r--sys/netinet/tcp_reass.c5
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) {
OpenPOWER on IntegriCloud