aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorStephen Hemminger <stephen@networkplumber.org>2017-08-30 08:24:57 -0700
committerStephen Hemminger <stephen@networkplumber.org>2017-08-30 08:24:57 -0700
commitc5e2692b6614ac99b730ed1d03e12037db7a8c1d (patch)
treefdb6d8375b38962ae4af01c9f2c3e73fb51cdafb /misc
parentb43b5b9acc00c47fe9204fe0aa3de6441fdebd59 (diff)
parent6c6bbc30f4e7fedc74381627f7ec86d26050b404 (diff)
downloadiproute2-c5e2692b6614ac99b730ed1d03e12037db7a8c1d.tar.gz
Merge branch 'master' into net-next
Diffstat (limited to 'misc')
-rw-r--r--misc/ss.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/misc/ss.c b/misc/ss.c
index fcc3cf92..2c9e80e6 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -2753,7 +2753,7 @@ static int tcp_show_netlink_file(struct filter *f)
return err;
}
-static int tcp_show(struct filter *f, int socktype)
+static int tcp_show(struct filter *f)
{
FILE *fp = NULL;
char *buf = NULL;
@@ -2768,7 +2768,7 @@ static int tcp_show(struct filter *f, int socktype)
return tcp_show_netlink_file(f);
if (!getenv("PROC_NET_TCP") && !getenv("PROC_ROOT")
- && inet_show_netlink(f, NULL, socktype) == 0)
+ && inet_show_netlink(f, NULL, IPPROTO_TCP) == 0)
return 0;
/* Sigh... We have to parse /proc/net/tcp... */
@@ -2836,6 +2836,18 @@ outerr:
} while (0);
}
+static int dccp_show(struct filter *f)
+{
+ if (!filter_af_get(f, AF_INET) && !filter_af_get(f, AF_INET6))
+ return 0;
+
+ if (!getenv("PROC_NET_DCCP") && !getenv("PROC_ROOT")
+ && inet_show_netlink(f, NULL, IPPROTO_DCCP) == 0)
+ return 0;
+
+ return 0;
+}
+
static int sctp_show(struct filter *f)
{
if (!filter_af_get(f, AF_INET) && !filter_af_get(f, AF_INET6))
@@ -4390,9 +4402,9 @@ int main(int argc, char *argv[])
if (current_filter.dbs & (1<<UDP_DB))
udp_show(&current_filter);
if (current_filter.dbs & (1<<TCP_DB))
- tcp_show(&current_filter, IPPROTO_TCP);
+ tcp_show(&current_filter);
if (current_filter.dbs & (1<<DCCP_DB))
- tcp_show(&current_filter, IPPROTO_DCCP);
+ dccp_show(&current_filter);
if (current_filter.dbs & (1<<SCTP_DB))
sctp_show(&current_filter);