diff options
author | Randall Stewart <rrs@FreeBSD.org> | 2018-08-08 13:36:49 +0000 |
---|---|---|
committer | Randall Stewart <rrs@FreeBSD.org> | 2018-08-08 13:36:49 +0000 |
commit | d18ea344e676dd66dd865444dfd0d545fa7a42cb (patch) | |
tree | a3319e16789486b44cccce1d3ebfca1f02dfe7b7 /sys/netinet | |
parent | 53288b712d5abf8f530dce5198383be660741750 (diff) | |
download | src-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.c | 11 |
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. |