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
This commit is contained in:
Paul Saab 2005-05-13 18:02:02 +00:00
parent 946e41f142
commit fdace17f81

View File

@ -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;