diff options
author | Neal Cardwell <ncardwell@google.com> | 2014-01-10 20:34:45 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-14 06:35:46 (GMT) |
commit | 70315d22d3c7383f9a508d0aab21e2eb35b2303a (patch) | |
tree | 434e5ce293a26e477458c771be03d194551b88da /net/netfilter | |
parent | 9ef9730ba84d4021a27d3a1679fd50f9bac0e0e7 (diff) | |
download | linux-70315d22d3c7383f9a508d0aab21e2eb35b2303a.tar.xz |
inet_diag: fix inet_diag_dump_icsk() to use correct state for timewait sockets
Fix inet_diag_dump_icsk() to reflect the fact that both TCP_TIME_WAIT
and TCP_FIN_WAIT2 connections are represented by inet_timewait_sock
(not just TIME_WAIT), and for such sockets the tw_substate field holds
the real state, which can be either TCP_TIME_WAIT or TCP_FIN_WAIT2.
This brings the inet_diag state-matching code in line with the field
it uses to populate idiag_state. This is also analogous to the info
exported in /proc/net/tcp, where get_tcp4_sock() exports sk->sk_state
and get_timewait4_sock() exports tw->tw_substate.
Before fixing this, (a) neither "ss -nemoi" nor "ss -nemoi state
fin-wait-2" would return a socket in TCP_FIN_WAIT2; and (b) "ss -nemoi
state time-wait" would also return sockets in state TCP_FIN_WAIT2.
This is an old bug that predates 05dbc7b ("tcp/dccp: remove twchain").
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter')
0 files changed, 0 insertions, 0 deletions