diff options
Diffstat (limited to 'sys/netinet/tcp_timer.c')
| -rw-r--r-- | sys/netinet/tcp_timer.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index 65ace37ab6e9..112ce578f7b2 100644 --- a/sys/netinet/tcp_timer.c +++ b/sys/netinet/tcp_timer.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tcp_timer.c 8.2 (Berkeley) 5/24/95 - * $Id: tcp_timer.c,v 1.26 1998/02/26 05:25:33 dg Exp $ + * $Id: tcp_timer.c,v 1.27 1998/04/06 06:52:46 phk Exp $ */ #include "opt_compat.h" @@ -308,17 +308,12 @@ tcp_timers(tp, timer) * (no responses to probes) reaches the maximum * backoff that we would use if retransmitting. */ - if (tp->t_rxtshift == TCP_MAXRXTSHIFT) { - u_long maxidle = TCP_REXMTVAL(tp); - if (maxidle < tp->t_rttmin) - maxidle = tp->t_rttmin; - maxidle *= tcp_totbackoff; - if (tp->t_idle >= tcp_maxpersistidle || - tp->t_idle >= maxidle) { - tcpstat.tcps_persistdrop++; - tp = tcp_drop(tp, ETIMEDOUT); - break; - } + if (tp->t_rxtshift == TCP_MAXRXTSHIFT && + (tp->t_idle >= tcp_maxpersistidle || + tp->t_idle >= TCP_REXMTVAL(tp) * tcp_totbackoff)) { + tcpstat.tcps_persistdrop++; + tp = tcp_drop(tp, ETIMEDOUT); + break; } tcp_setpersist(tp); tp->t_force = 1; |
