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>
diff --git a/misc/ss.c b/misc/ss.c
index e06946b..651fe3b 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -1503,6 +1503,7 @@
 		h = (struct nlmsghdr*)buf;
 		while (NLMSG_OK(h, status)) {
 			int err;
+			struct inet_diag_msg *r = NLMSG_DATA(h);
 
 			if (/*h->nlmsg_pid != rth->local.nl_pid ||*/
 			    h->nlmsg_seq != 123456)
@@ -1521,6 +1522,10 @@
 				return 0;
 			}
 			if (!dump_fp) {
+				if (!(f->families & (1<<r->idiag_family))) {
+					h = NLMSG_NEXT(h, status);
+					continue;
+				}
 				err = tcp_show_sock(h, NULL);
 				if (err < 0)
 					return err;