From b9ea445d529d42fd328fd3343c51403a3672d55f Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Sat, 20 Dec 2014 15:40:55 -0800 Subject: [PATCH] ss: Dont show netlink and packet sockets by default Checking by SS_CLOSE state was remowed in: (45a4770bc0) ss: Remove checking SS_CLOSE state for packet and netlink which is not really correct because now by default all sockets are seen when do 'ss'. Here is most correct fix which considers specified family. To see netlink sockets: ss -A netlink To see packet sockets: ss -A packet And ss by default will show only connected/established sockets as it was before all the time. Signed-off-by: Vadim Kochan --- misc/ss.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/misc/ss.c b/misc/ss.c index 15fa2bc5..fa73fac3 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -2743,6 +2743,9 @@ static int packet_show(struct filter *f) int uid; int ino; unsigned long long sk; + + if (preferred_family != AF_PACKET && !(f->states & (1 << SS_CLOSE))) + return 0; if (packet_show_netlink(f) == 0) return 0; @@ -2972,6 +2975,9 @@ static int netlink_show(struct filter *f) int rq, wq, rc; unsigned long long sk, cb; + if (preferred_family != AF_NETLINK && !(f->states & (1 << SS_CLOSE))) + return 0; + if (!getenv("PROC_NET_NETLINK") && !getenv("PROC_ROOT") && netlink_show_netlink(f) == 0) return 0;