summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_syncache.c
diff options
context:
space:
mode:
authorsilby <silby@FreeBSD.org>2003-01-29 03:49:49 +0000
committersilby <silby@FreeBSD.org>2003-01-29 03:49:49 +0000
commitb19e045895ed95aebaba81ada09f2d0177439f24 (patch)
treec9cbe6047800c9b3585a5d1cb4da8e0c47c64872 /sys/netinet/tcp_syncache.c
parent15867362e4e7d727c275852226abf78944464f55 (diff)
downloadFreeBSD-src-b19e045895ed95aebaba81ada09f2d0177439f24.zip
FreeBSD-src-b19e045895ed95aebaba81ada09f2d0177439f24.tar.gz
Fix a bug with syncookies; previously, the syncache's MSS size was not
initialized until after a syncookie was generated. As a result, all connections resulting from a returned cookie would end up using a MSS of ~512 bytes. Now larger packets will be used where possible. MFC after: 5 days
Diffstat (limited to 'sys/netinet/tcp_syncache.c')
-rw-r--r--sys/netinet/tcp_syncache.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index 798c379..ba13efa 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -931,6 +931,8 @@ syncache_add(inc, to, th, sop, m)
sc->sc_route.ro_rt = NULL;
}
sc->sc_irs = th->th_seq;
+ sc->sc_flags = 0;
+ sc->sc_peer_mss = to->to_flags & TOF_MSS ? to->to_mss : 0;
if (tcp_syncookies)
sc->sc_iss = syncookie_generate(sc);
else
@@ -942,8 +944,6 @@ syncache_add(inc, to, th, sop, m)
win = imin(win, TCP_MAXWIN);
sc->sc_wnd = win;
- sc->sc_flags = 0;
- sc->sc_peer_mss = to->to_flags & TOF_MSS ? to->to_mss : 0;
if (tcp_do_rfc1323) {
/*
* A timestamp received in a SYN makes
OpenPOWER on IntegriCloud