diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2006-01-09 17:56:03 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-01-09 17:56:03 -0500 |
commit | 7dbf0755249336f44f57368bdbf6f84103b3ba75 (patch) | |
tree | 66a26e93432c38ccb64092b4e2be1d868df68e45 /net/ipv4 | |
parent | a2c2064f7f23fde23e34fb5d07de43b582966b71 (diff) |
[INET_DIAG]: Use inet_twsk() with TIME_WAIT sockets
The fields being accessed in inet_diag_dump are outside sock_common, the
common part of struct sock and struct inet_timewait_sock.
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/inet_diag.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c index c49908192047..c3b334871707 100644 --- a/net/ipv4/inet_diag.c +++ b/net/ipv4/inet_diag.c | |||
@@ -697,14 +697,14 @@ next_normal: | |||
697 | if (r->idiag_states & TCPF_TIME_WAIT) { | 697 | if (r->idiag_states & TCPF_TIME_WAIT) { |
698 | sk_for_each(sk, node, | 698 | sk_for_each(sk, node, |
699 | &hashinfo->ehash[i + hashinfo->ehash_size].chain) { | 699 | &hashinfo->ehash[i + hashinfo->ehash_size].chain) { |
700 | struct inet_sock *inet = inet_sk(sk); | 700 | const struct inet_timewait_sock *tw = inet_twsk(sk); |
701 | 701 | ||
702 | if (num < s_num) | 702 | if (num < s_num) |
703 | goto next_dying; | 703 | goto next_dying; |
704 | if (r->id.idiag_sport != inet->sport && | 704 | if (r->id.idiag_sport != tw->tw_sport && |
705 | r->id.idiag_sport) | 705 | r->id.idiag_sport) |
706 | goto next_dying; | 706 | goto next_dying; |
707 | if (r->id.idiag_dport != inet->dport && | 707 | if (r->id.idiag_dport != tw->tw_dport && |
708 | r->id.idiag_dport) | 708 | r->id.idiag_dport) |
709 | goto next_dying; | 709 | goto next_dying; |
710 | if (inet_diag_dump_sock(skb, sk, cb) < 0) { | 710 | if (inet_diag_dump_sock(skb, sk, cb) < 0) { |