ss: show destination address for netlink sockets
A netlink socket may be connected to a specific group.
Cc: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Andrey Vagin <avagin@openvz.org>
diff --git a/misc/ss.c b/misc/ss.c
index 469ffd0..c8534ff 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -2674,6 +2674,7 @@
static void netlink_show_one(struct filter *f,
int prot, int pid, unsigned groups,
+ int state, int dst_pid, unsigned dst_group,
int rq, int wq,
unsigned long long sk, unsigned long long cb)
{
@@ -2728,8 +2729,14 @@
} else {
printf("%-*d ", serv_width, pid);
}
- printf("%*s*%-*s",
- addr_width, "", serv_width, "");
+
+ if (state == NETLINK_CONNECTED) {
+ printf("%*d:%-*d",
+ addr_width, dst_group, serv_width, dst_pid);
+ } else {
+ printf("%*s*%-*s",
+ addr_width, "", serv_width, "");
+ }
if (show_details) {
printf(" sk=%llx cb=%llx groups=0x%08x", sk, cb, groups);
@@ -2764,7 +2771,7 @@
&sk,
&prot, &pid, &groups, &rq, &wq, &cb, &rc);
- netlink_show_one(f, prot, pid, groups, rq, wq, sk, cb);
+ netlink_show_one(f, prot, pid, groups, 0, 0, 0, rq, wq, sk, cb);
}
return 0;