From 5f24ec0e0658415c4b50578af9aa338a3902b4d8 Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Sun, 22 Feb 2015 22:23:11 +0200 Subject: [PATCH] ss: Skip filtered netlink sockets before detailed info Signed-off-by: Vadim Kochan --- misc/ss.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/misc/ss.c b/misc/ss.c index 5320d387..5113d85c 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -2938,7 +2938,7 @@ static int packet_show(struct filter *f) return 0; } -static void netlink_show_one(struct filter *f, +static int netlink_show_one(struct filter *f, int prot, int pid, unsigned groups, int state, int dst_pid, unsigned dst_group, int rq, int wq, @@ -2960,7 +2960,7 @@ static void netlink_show_one(struct filter *f, st.lport = pid; st.local.data[0] = prot; if (run_ssfilter(f->f, &st) == 0) - return; + return 1; } sock_state_print(&st, "nl"); @@ -3032,7 +3032,7 @@ static void netlink_show_one(struct filter *f, } printf("\n"); - return; + return 0; } static int netlink_show_sock(const struct sockaddr_nl *addr, @@ -3058,9 +3058,11 @@ static int netlink_show_sock(const struct sockaddr_nl *addr, wq = skmeminfo[SK_MEMINFO_WMEM_ALLOC]; } - netlink_show_one(f, r->ndiag_protocol, r->ndiag_portid, groups, + if (netlink_show_one(f, r->ndiag_protocol, r->ndiag_portid, groups, r->ndiag_state, r->ndiag_dst_portid, r->ndiag_dst_group, - rq, wq, 0, 0); + rq, wq, 0, 0)) { + return 0; + } if (show_mem) { printf("\t");