diff options
Diffstat (limited to 'src/vnet/tcp/tcp.c')
-rw-r--r-- | src/vnet/tcp/tcp.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index beadf9e1561..cbf570f2dc7 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -1271,6 +1271,9 @@ tcp_timer_waitclose_handler (u32 conn_index) else if (tc->state == TCP_STATE_FIN_WAIT_1) { tcp_connection_timers_reset (tc); + /* If FIN pending send it before closing */ + if (tc->flags & TCP_CONN_FINPNDG) + tcp_send_fin (tc); tc->state = TCP_STATE_CLOSED; /* Wait for session layer to clean up tx events */ tcp_timer_set (tc, TCP_TIMER_WAITCLOSE, TCP_CLEANUP_TIME); |