diff options
author | silby <silby@FreeBSD.org> | 2003-01-29 03:49:49 +0000 |
---|---|---|
committer | silby <silby@FreeBSD.org> | 2003-01-29 03:49:49 +0000 |
commit | b19e045895ed95aebaba81ada09f2d0177439f24 (patch) | |
tree | c9cbe6047800c9b3585a5d1cb4da8e0c47c64872 | |
parent | 15867362e4e7d727c275852226abf78944464f55 (diff) | |
download | FreeBSD-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
-rw-r--r-- | sys/netinet/tcp_syncache.c | 4 |
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 |