distinguish the inet and inet6 domain when loading the tcp_diag module
When load the tcp_diag module, and use "ss -f inet" command to show the socket information of inet domain. But this command also shows the information of inet6 domain, but not only inet domain. and "ss -f inet6", "ss -4", "ss -6" have the same problem. Signed-off-by: Li Yewang <lyw@cn.fujitsu.com> Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
This commit is contained in:
parent
f70d96a41b
commit
a37b01c1f0
|
|
@ -1503,6 +1503,7 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype)
|
||||||
h = (struct nlmsghdr*)buf;
|
h = (struct nlmsghdr*)buf;
|
||||||
while (NLMSG_OK(h, status)) {
|
while (NLMSG_OK(h, status)) {
|
||||||
int err;
|
int err;
|
||||||
|
struct inet_diag_msg *r = NLMSG_DATA(h);
|
||||||
|
|
||||||
if (/*h->nlmsg_pid != rth->local.nl_pid ||*/
|
if (/*h->nlmsg_pid != rth->local.nl_pid ||*/
|
||||||
h->nlmsg_seq != 123456)
|
h->nlmsg_seq != 123456)
|
||||||
|
|
@ -1521,6 +1522,10 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!dump_fp) {
|
if (!dump_fp) {
|
||||||
|
if (!(f->families & (1<<r->idiag_family))) {
|
||||||
|
h = NLMSG_NEXT(h, status);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
err = tcp_show_sock(h, NULL);
|
err = tcp_show_sock(h, NULL);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue