Page MenuHomeFreeBSD

D29565.diff
No OneTemporary

D29565.diff

Index: sys/netinet/tcp_output.c
===================================================================
--- sys/netinet/tcp_output.c
+++ sys/netinet/tcp_output.c
@@ -286,6 +286,14 @@
sendwin = min(tp->snd_wnd, tp->snd_cwnd);
flags = tcp_outflags[tp->t_state];
+ if (__predict_false(flags & TH_FIN) && !(tp->t_flags & TF_SENTFIN)) {
+ /* clear FIN if there is still unacknowledged data */
+ if (SEQ_LT(tp->snd_una, tp->snd_max))
+ flags &= ~TH_FIN;
+ else
+ tp->t_flags |= TF_ACKNOW;
+ }
+ }
/*
* Send any SACK-generated retransmissions. If we're explicitly trying
* to send out new data (when sendalot is 1), bypass this function.

File Metadata

Mime Type
text/plain
Expires
Sat, Jun 27, 8:16 PM (13 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34414988
Default Alt Text
D29565.diff (653 B)

Event Timeline