Commit a37b01c1 authored by Li Yewang's avatar Li Yewang Committed by Stephen Hemminger

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: default avatarLi Yewang <lyw@cn.fujitsu.com>
Signed-off-by: default avatarStephen Hemminger <stephen.hemminger@vyatta.com>
parent f70d96a4
...@@ -1503,6 +1503,7 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype) ...@@ -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) ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment