While investigating bug 179, I found a number of things that confused me about the TCP timer handling. One of them, I think I figured out what's going on and what should be done about it. So, here are the changes. This is mostly about FIN handling and only tangentially about the timer, but it does at least slightly simplify the timer handling while I figure out the rest of it. Changes in v2: * Stefano pointed out some errors in my guesses at the history of things, evised commit message of 2/3 accordingly * Added 3/3 checking for shutdown(2) failures David Gibson (3): tcp: Retransmit FINs like data segments tcp: Eliminate FIN_TIMEOUT tcp, tcp_splice: Check for failures of shutdown(2) tcp.c | 49 ++++++++++++++++++++++++------------------------- tcp_buf.c | 1 + tcp_splice.c | 3 ++- tcp_vu.c | 1 + 4 files changed, 28 insertions(+), 26 deletions(-) -- 2.52.0