From: Vadim Kochan Date: Sat, 20 Dec 2014 23:40:55 +0000 (-0800) Subject: ss: Dont show netlink and packet sockets by default X-Git-Tag: v3.18.0~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b9ea445d529d42fd328fd3343c51403a3672d55f;p=thirdparty%2Fiproute2.git 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 --- diff --git a/misc/ss.c b/misc/ss.c index 15fa2bc52..fa73fac3b 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;