|
@@ -890,6 +890,9 @@ static int tcp_rx_ack ( struct tcp_connection *tcp, uint32_t ack,
|
890
|
890
|
}
|
891
|
891
|
}
|
892
|
892
|
|
|
893
|
+ /* Update window size */
|
|
894
|
+ tcp->snd_win = win;
|
|
895
|
+
|
893
|
896
|
/* Ignore ACKs that don't actually acknowledge any new data.
|
894
|
897
|
* (In particular, do not stop the retransmission timer; this
|
895
|
898
|
* avoids creating a sorceror's apprentice syndrome when a
|
|
@@ -911,10 +914,9 @@ static int tcp_rx_ack ( struct tcp_connection *tcp, uint32_t ack,
|
911
|
914
|
pending_put ( &tcp->pending_flags );
|
912
|
915
|
}
|
913
|
916
|
|
914
|
|
- /* Update SEQ and sent counters, and window size */
|
|
917
|
+ /* Update SEQ and sent counters */
|
915
|
918
|
tcp->snd_seq = ack;
|
916
|
919
|
tcp->snd_sent = 0;
|
917
|
|
- tcp->snd_win = win;
|
918
|
920
|
|
919
|
921
|
/* Remove any acknowledged data from transmit queue */
|
920
|
922
|
tcp_process_tx_queue ( tcp, len, NULL, 1 );
|