From 861ed0532c581886df16f8004e3afbff0319a636 Mon Sep 17 00:00:00 2001 From: ps Date: Fri, 13 May 2005 18:02:02 +0000 Subject: Fix for a bug where the "nexthole" sack hint is out of sync with the real next hole to retransmit from the scoreboard, caused by a bug which did not update the "nexthole" hint in one case in tcp_sack_option(). Reported by: Daniel Eriksson Submitted by: Mohan Srinivasan --- sys/netinet/tcp_sack.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sys/netinet/tcp_sack.c') diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c index 924228f..aec8400 100644 --- a/sys/netinet/tcp_sack.c +++ b/sys/netinet/tcp_sack.c @@ -452,6 +452,8 @@ tcp_sack_option(struct tcpcb *tp, struct tcphdr *th, u_char *cp, int optlen) tp->snd_numholes++; tcp_sack_globalholes++; TAILQ_INSERT_TAIL(&tp->snd_holes, temp, scblink); + if (tp->sackhint.nexthole == NULL) + tp->sackhint.nexthole = temp; } if (SEQ_LT(tp->rcv_lastsack, sack.end)) tp->rcv_lastsack = sack.end; -- cgit v1.1