Page MenuHomeFreeBSD

D43170.id132197.diff
No OneTemporary

D43170.id132197.diff

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2969,6 +2969,9 @@
if (IN_RECOVERY(tp->t_flags) &&
SEQ_GEQ(th->th_ack, tp->snd_recover)) {
EXIT_RECOVERY(tp->t_flags);
+ tp->sackhint.delivered_data = 0;
+ tp->sackhint.prr_delivered = 0;
+ tp->sackhint.prr_out = 0;
}
tp->snd_una = th->th_ack;
if (tp->t_flags & TF_SACK_PERMIT) {
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -1663,6 +1663,8 @@
if (flags & TH_FIN)
tp->snd_nxt--;
}
+ if (IN_RECOVERY(tp->t_flags))
+ tp->sackhint.prr_out -= len;
}
SOCKBUF_UNLOCK_ASSERT(&so->so_snd); /* Check gotos. */
switch (error) {

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 13, 7:06 AM (7 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
38839947
Default Alt Text
D43170.id132197.diff (788 B)

Event Timeline