summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_sack.c
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2005-04-10 05:20:10 +0000
committerps <ps@FreeBSD.org>2005-04-10 05:20:10 +0000
commitae82590cf6402be3c3976edc7a1cba852207a8c9 (patch)
treef4cf5c8dfc3a80372c140bc367dbd38ca3c9b5bb /sys/netinet/tcp_sack.c
parentcb57694d7ff060186b47a73870d4a3541c88076e (diff)
downloadFreeBSD-src-ae82590cf6402be3c3976edc7a1cba852207a8c9.zip
FreeBSD-src-ae82590cf6402be3c3976edc7a1cba852207a8c9.tar.gz
When the rightmost SACK block expands, rcv_lastsack should be updated.
(Fix for kern/78226). Submitted by : Noritoshi Demizu <demizu at dd dot iij4u dot or dot jp> Reviewed by : Mohan Srinivasan (mohans at yahoo-inc dot com), Raja Mukerji (raja at moselle dot com).
Diffstat (limited to 'sys/netinet/tcp_sack.c')
-rw-r--r--sys/netinet/tcp_sack.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/tcp_sack.c b/sys/netinet/tcp_sack.c
index c288da8..efe3bb6 100644
--- a/sys/netinet/tcp_sack.c
+++ b/sys/netinet/tcp_sack.c
@@ -463,6 +463,8 @@ tcp_sack_option(struct tcpcb *tp, struct tcphdr *th, u_char *cp, int optlen)
tp->snd_numholes++;
tcp_sack_globalholes++;
}
+ if (SEQ_LT(tp->rcv_lastsack, sack.end))
+ tp->rcv_lastsack = sack.end;
}
return (0);
}
OpenPOWER on IntegriCloud