From patchwork Thu Oct 25 13:18:31 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Emelyanov X-Patchwork-Id: 194149 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 9DD112C00AE for ; Fri, 26 Oct 2012 00:18:44 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933233Ab2JYNSi (ORCPT ); Thu, 25 Oct 2012 09:18:38 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:44844 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759022Ab2JYNSd (ORCPT ); Thu, 25 Oct 2012 09:18:33 -0400 Received: from [10.24.37.185] ([10.24.37.185]) (authenticated bits=0) by relay.sw.ru (8.13.4/8.13.4) with ESMTP id q9PDIWY5018934 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 25 Oct 2012 17:18:32 +0400 (MSK) Message-ID: <50893C27.6030601@parallels.com> Date: Thu, 25 Oct 2012 17:18:31 +0400 From: Pavel Emelyanov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0 MIME-Version: 1.0 To: Stephen Hemminger , Linux Netdev List Subject: [PATCH 1/5] ss: Rename some tcp- names into inet- References: <50893BAF.7030500@parallels.com> In-Reply-To: <50893BAF.7030500@parallels.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The sock-diag is capable to diag udp sockets as well. Prepare the ss code for this by first renaming soon-to-be-generic tcp-s names into inet-s. Signed-off-by: Pavel Emelyanov --- misc/ss.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-) diff --git a/misc/ss.c b/misc/ss.c index d00d3e7..3bceedf 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -1431,7 +1431,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r) } } -static int tcp_show_sock(struct nlmsghdr *nlh, struct filter *f) +static int inet_show_sock(struct nlmsghdr *nlh, struct filter *f) { struct inet_diag_msg *r = NLMSG_DATA(nlh); struct tcpstat s; @@ -1495,7 +1495,7 @@ static int tcp_show_sock(struct nlmsghdr *nlh, struct filter *f) return 0; } -static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype) +static int inet_show_netlink(struct filter *f, FILE *dump_fp, int protocol) { int fd; struct sockaddr_nl nladdr; @@ -1517,7 +1517,10 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype) nladdr.nl_family = AF_NETLINK; req.nlh.nlmsg_len = sizeof(req); - req.nlh.nlmsg_type = socktype; + if (protocol == IPPROTO_TCP) + req.nlh.nlmsg_type = TCPDIAG_GETSOCK; + else + req.nlh.nlmsg_type = DCCPDIAG_GETSOCK; req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; req.nlh.nlmsg_pid = 0; req.nlh.nlmsg_seq = 123456; @@ -1626,7 +1629,7 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype) h = NLMSG_NEXT(h, status); continue; } - err = tcp_show_sock(h, NULL); + err = inet_show_sock(h, NULL); if (err < 0) { close(fd); return err; @@ -1699,7 +1702,7 @@ static int tcp_show_netlink_file(struct filter *f) return -1; } - err = tcp_show_sock(h, f); + err = inet_show_sock(h, f); if (err < 0) return err; } @@ -1717,7 +1720,7 @@ static int tcp_show(struct filter *f, int socktype) return tcp_show_netlink_file(f); if (!getenv("PROC_NET_TCP") && !getenv("PROC_ROOT") - && tcp_show_netlink(f, NULL, socktype) == 0) + && inet_show_netlink(f, NULL, socktype) == 0) return 0; /* Sigh... We have to parse /proc/net/tcp... */ @@ -2980,7 +2983,7 @@ int main(int argc, char *argv[]) exit(-1); } } - tcp_show_netlink(¤t_filter, dump_fp, TCPDIAG_GETSOCK); + inet_show_netlink(¤t_filter, dump_fp, IPPROTO_TCP); fflush(dump_fp); exit(0); } @@ -3048,8 +3051,8 @@ int main(int argc, char *argv[]) if (current_filter.dbs & (1<