From 7e194a24205e6329b62171398af48bf4835df3af Mon Sep 17 00:00:00 2001 From: jesper Date: Thu, 31 May 2001 19:24:49 +0000 Subject: 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 --- sys/netinet/tcp_timer.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'sys/netinet') diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 0a85cf8..a035989 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 -- cgit v1.1