Advance the advertised window (rcv_adv) to the currently received data
(rcv_nxt) if we advertising a zero window. This can be true when ACK'ing a window probe whose one byte payload was accepted rather than dropped because the socket's receive buffer was not completely full, but the remaining space was smaller than the window scale. This ensures that window probe ACKs satisfy the assumption made in r221346 and closes a window where rcv_nxt could be greater than rcv_adv. Tested by: trasz, pho, trociny Reviewed by: silby MFC after: 1 week
This commit is contained in:
parent
e8e9012af6
commit
6b7c15e580
@ -1331,7 +1331,7 @@ out:
|
||||
* then remember the size of the advertised window.
|
||||
* Any pending ACK has now been sent.
|
||||
*/
|
||||
if (recwin > 0 && SEQ_GT(tp->rcv_nxt + recwin, tp->rcv_adv))
|
||||
if (recwin >= 0 && SEQ_GT(tp->rcv_nxt + recwin, tp->rcv_adv))
|
||||
tp->rcv_adv = tp->rcv_nxt + recwin;
|
||||
tp->last_ack_sent = tp->rcv_nxt;
|
||||
tp->t_flags &= ~(TF_ACKNOW | TF_DELACK);
|
||||
|
Loading…
x
Reference in New Issue
Block a user