diff options
author | 2004-01-15 09:46:21 +0000 | |
---|---|---|
committer | 2004-01-15 09:46:21 +0000 | |
commit | d68e1d7e62a33de932fe730419bdec8916f97faa (patch) | |
tree | fb820a9923f338213bd3b5f8f04cbe7caf2f40a2 /sys/netinet/tcp_input.c | |
parent | Undo backout of this piece of 'SR restores', this feature is used by (diff) | |
download | wireguard-openbsd-d68e1d7e62a33de932fe730419bdec8916f97faa.tar.xz wireguard-openbsd-d68e1d7e62a33de932fe730419bdec8916f97faa.zip |
move call to tcp_mss_update() from syn_cache_add() to syn_cache_get(),
when the 3-way handshake completes (and not on the listen pcb).
ok itojun, dhartmei
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r-- | sys/netinet/tcp_input.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index 2c27ce418e8..a52f6f8e557 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tcp_input.c,v 1.144 2004/01/14 13:38:21 markus Exp $ */ +/* $OpenBSD: tcp_input.c,v 1.145 2004/01/15 09:46:21 markus Exp $ */ /* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */ /* @@ -3787,8 +3787,9 @@ syn_cache_get(src, dst, th, hlen, tlen, so, m) TCP_TIMER_ARM(tp, TCPT_KEEP, tcptv_keep_init); tcpstat.tcps_accepts++; - tcp_mss(tp, sc->sc_peermaxseg); - + tcp_mss(tp, sc->sc_peermaxseg); /* sets t_maxseg */ + if (sc->sc_peermaxseg) + tcp_mss_update(tp); #if 0 /* * XXX @@ -3950,7 +3951,6 @@ syn_cache_add(src, dst, th, iphlen, so, m, optp, optlen, oi) #else if (optp) { #endif - tb.t_inpcb = tp->t_inpcb; /* XXX */ tb.pf = tp->pf; #ifdef TCP_SACK tb.sack_disable = tcp_do_sack ? 0 : 1; @@ -3960,16 +3960,8 @@ syn_cache_add(src, dst, th, iphlen, so, m, optp, optlen, oi) if (tp->t_flags & TF_SIGNATURE) tb.t_flags |= TF_SIGNATURE; #endif - if (tcp_dooptions(&tb, optp, optlen, th, m, iphlen, oi)) return (0); - - if (optp) { - /* Update t_maxopd and t_maxseg after all options are processed */ - (void) tcp_mss(tp, oi->maxseg); /* sets t_maxseg */ - if (oi->maxseg) - tcp_mss_update(tp); - } } else tb.t_flags = 0; |