aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet
diff options
context:
space:
mode:
authorRandall Stewart <rrs@FreeBSD.org>2018-08-08 13:36:49 +0000
committerRandall Stewart <rrs@FreeBSD.org>2018-08-08 13:36:49 +0000
commitd18ea344e676dd66dd865444dfd0d545fa7a42cb (patch)
treea3319e16789486b44cccce1d3ebfca1f02dfe7b7 /sys/netinet
parent53288b712d5abf8f530dce5198383be660741750 (diff)
downloadsrc-d18ea344e676dd66dd865444dfd0d545fa7a42cb.tar.gz
src-d18ea344e676dd66dd865444dfd0d545fa7a42cb.zip
Fix a small bug in rack where it will
end up sending the FIN twice. Sponsored by: Netflix Inc. Differential Revision: https://reviews.freebsd.org/D16604
Notes
Notes: svn path=/head/; revision=337455
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_stacks/rack.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
index 321fcb11c506..884da9c4a436 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -7603,13 +7603,10 @@ dontupdate:
* If our state indicates that FIN should be sent and we have not
* yet done so, then we need to send.
*/
- if (flags & TH_FIN) {
- if ((tp->t_flags & TF_SENTFIN) ||
- (((tp->t_flags & TF_SENTFIN) == 0) &&
- (tp->snd_nxt == tp->snd_una))) {
- pass = 11;
- goto send;
- }
+ if ((flags & TH_FIN) &&
+ (tp->snd_nxt == tp->snd_una)) {
+ pass = 11;
+ goto send;
}
/*
* No reason to send a segment, just return.