diff options
| author | David Greenman <dg@FreeBSD.org> | 1996-04-15 03:46:33 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1996-04-15 03:46:33 +0000 |
| commit | 2d8266af5c74bbd814181607b9e0964bfabfec7f (patch) | |
| tree | 23e9180b2017e68c98a6dd8cf7c6a16c1f71c157 | |
| parent | 68159c890151b0448048bc44123970be9f55fafe (diff) | |
Notes
| -rw-r--r-- | sys/netinet/tcp_output.c | 13 | ||||
| -rw-r--r-- | sys/netinet/tcp_timer.c | 4 |
2 files changed, 10 insertions, 7 deletions
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index adfe5a09be17..f4d03f170a2e 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tcp_output.c 8.4 (Berkeley) 5/24/95 - * $Id: tcp_output.c,v 1.18 1996/01/17 09:35:23 olah Exp $ + * $Id: tcp_output.c,v 1.19 1996/03/11 15:13:32 davidg Exp $ */ #include <sys/param.h> @@ -186,15 +186,18 @@ again: * but we haven't been called to retransmit, * len will be -1. Otherwise, window shrank * after we sent into it. If window shrank to 0, - * cancel pending retransmit and pull snd_nxt - * back to (closed) window. We will enter persist - * state below. If the window didn't close completely, - * just wait for an ACK. + * cancel pending retransmit, pull snd_nxt back + * to (closed) window, and set the persist timer + * if it isn't already going. If the window didn't + * close completely, just wait for an ACK. */ len = 0; if (win == 0) { tp->t_timer[TCPT_REXMT] = 0; + tp->t_rxtshift = 0; tp->snd_nxt = tp->snd_una; + if (tp->t_timer[TCPT_PERSIST] == 0) + tcp_setpersist(tp); } } if (len > tp->t_maxseg) { diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c index f9c89b7b6f97..776d076130d9 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.14 1996/03/11 15:13:35 davidg Exp $ + * $Id: tcp_timer.c,v 1.15 1996/04/04 11:17:04 phk Exp $ */ #ifndef TUBA_INCLUDE @@ -320,7 +320,7 @@ tcp_timers(tp, timer) goto dropit; if ((always_keepalive || tp->t_inpcb->inp_socket->so_options & SO_KEEPALIVE) && - tp->t_state <= TCPS_CLOSE_WAIT) { + tp->t_state <= TCPS_CLOSING) { if (tp->t_idle >= tcp_keepidle + tcp_maxidle) goto dropit; /* |
