diff options
author | Jesper Skriver <jesper@FreeBSD.org> | 2001-05-31 19:24:49 +0000 |
---|---|---|
committer | Jesper Skriver <jesper@FreeBSD.org> | 2001-05-31 19:24:49 +0000 |
commit | 7ceb7783663297e0658ee63c580ac15d2df0bf1c (patch) | |
tree | 8df962a5ca90350ba538e18b401f8f1473d91f51 /sys | |
parent | 80cbb3c13a61ed76cba2ced79f37638094b78af8 (diff) | |
download | src-7ceb7783663297e0658ee63c580ac15d2df0bf1c.tar.gz src-7ceb7783663297e0658ee63c580ac15d2df0bf1c.zip |
Disable rfc1323 and rfc1644 TCP extensions if we havn't got
any response to our third SYN to work-around some broken
terminal servers (most of which have hopefully been retired)
that have bad VJ header compression code which trashes TCP
segments containing unknown-to-them TCP options.
PR: kern/1689
Submitted by: jesper
Reviewed by: wollman
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=77539
Diffstat (limited to 'sys')
-rw-r--r-- | sys/netinet/tcp_timer.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 0a85cf832e95..a0359897c627 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -388,6 +388,15 @@ tcp_timer_rexmt(xtp) TCPT_RANGESET(tp->t_rxtcur, rexmt, tp->t_rttmin, TCPTV_REXMTMAX); /* + * Disable rfc1323 and rfc1644 if we havn't got any response to + * our third SYN to work-around some broken terminal servers + * (most of which have hopefully been retired) that have bad VJ + * header compression code which trashes TCP segments containing + * unknown-to-them TCP options. + */ + if ((tp->t_state == TCPS_SYN_SENT) && (tp->t_rxtshift == 3)) + tp->t_flags &= ~(TF_REQ_SCALE|TF_REQ_TSTMP|TF_REQ_CC); + /* * If losing, let the lower level know and try for * a better route. Also, if we backed off this far, * our srtt estimate is probably bogus. Clobber it |