diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-08-01 09:32:09 +0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-08-03 00:38:24 +0400 |
commit | 52499afe40387524e9f46ef9ce4695efccdd2ed9 (patch) | |
tree | eb097a1c4150ff00a66a692f378ea4fb6f1035f0 /net/core/skbuff.c | |
parent | a280b89982f48e9a32c6410a37419b12ca88af6b (diff) | |
download | linux-52499afe40387524e9f46ef9ce4695efccdd2ed9.tar.xz |
[TCP]: Process linger2 timeout consistently.
Based upon guidance from Alexey Kuznetsov.
When linger2 is active, we check to see if the fin_wait2
timeout is longer than the timewait. If it is, we schedule
the keepalive timer for the difference between the timewait
timeout and the fin_wait2 timeout.
When this orphan socket is seen by tcp_keepalive_timer()
it will try to transform this fin_wait2 socket into a
fin_wait2 mini-socket, again if linger2 is active.
Not all paths were setting this initial keepalive timer correctly.
The tcp input path was doing it correctly, but tcp_close() wasn't,
potentially making the socket linger longer than it really needs to.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/skbuff.c')
0 files changed, 0 insertions, 0 deletions