summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_input.c
diff options
context:
space:
mode:
authorprovos <provos@openbsd.org>1999-12-15 16:37:20 +0000
committerprovos <provos@openbsd.org>1999-12-15 16:37:20 +0000
commit474946592d24b82b2129a2b1f9940d04067ceb6e (patch)
treeafdde64f5804af4f83cb9e8d7fefb83ffb6cd123 /sys/netinet/tcp_input.c
parentadd missing Xrs and clean a bit (diff)
downloadwireguard-openbsd-474946592d24b82b2129a2b1f9940d04067ceb6e.tar.xz
wireguard-openbsd-474946592d24b82b2129a2b1f9940d04067ceb6e.zip
never go into persist mode if there are still segments to be retransmitted.
set retransmit timer again if it was cleared, that can happen in SACK when there are no elligble SACK holes to be retransmitted and the receiver window is full.
Diffstat (limited to 'sys/netinet/tcp_input.c')
-rw-r--r--sys/netinet/tcp_input.c25
1 files changed, 1 insertions, 24 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index d5ff49496e7..f4195de21a1 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tcp_input.c,v 1.53 1999/12/14 22:20:28 provos Exp $ */
+/* $OpenBSD: tcp_input.c,v 1.54 1999/12/15 16:37:20 provos Exp $ */
/* $NetBSD: tcp_input.c,v 1.23 1996/02/13 23:43:44 christos Exp $ */
/*
@@ -1578,18 +1578,6 @@ trimthenstep6:
tp->snd_cwnd = tp->snd_ssthresh+
tp->t_maxseg * tp->t_dupacks;
#endif /* TCP_FACK */
- /*
- * It is possible for
- * tcp_output to fail to send
- * a segment. If so, make
- * sure that REMXT timer is set.
- */
- if (SEQ_GT(tp->snd_max,
- tp->snd_una) &&
- tp->t_timer[TCPT_REXMT] == 0 &&
- tp->t_timer[TCPT_PERSIST] == 0)
- tp->t_timer[TCPT_REXMT] =
- tp->t_rxtcur;
goto drop;
}
#endif /* TCP_SACK */
@@ -2027,17 +2015,6 @@ dodata: /* XXX */
*/
if (needoutput || (tp->t_flags & TF_ACKNOW)) {
(void) tcp_output(tp);
-#ifdef TCP_SACK
- /*
- * In SACK, it is possible for tcp_output() to fail to send a segment
- * after the retransmission timer has been turned off. Make sure that
- * the retransmission timer is set if we are in fast recovery.
- */
- if (needoutput && SEQ_GT(tp->snd_max, tp->snd_una) &&
- tp->t_timer[TCPT_REXMT] == 0 &&
- tp->t_timer[TCPT_PERSIST] == 0)
- tp->t_timer[TCPT_REXMT] = tp->t_rxtcur;
-#endif
}
return;