From patchwork Thu Oct 30 16:49:25 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vadym Kochan X-Patchwork-Id: 405102 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 AB4E214003E for ; Fri, 31 Oct 2014 03:58:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934580AbaJ3Q6e (ORCPT ); Thu, 30 Oct 2014 12:58:34 -0400 Received: from mail-wg0-f46.google.com ([74.125.82.46]:43286 "EHLO mail-wg0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934023AbaJ3Q6d (ORCPT ); Thu, 30 Oct 2014 12:58:33 -0400 Received: by mail-wg0-f46.google.com with SMTP id x13so4741098wgg.19 for ; Thu, 30 Oct 2014 09:58:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=t4n/+Wa0ejavCP2WnakpMWRy1TmfksM6QVrNcJjWS0E=; b=oiOp84CPNjrlqHtBiwUhhTUlCIZ0B1T/2RkaPbkNd/GijW4iCMut+uoaO9sRZhGCkp cqdeG8fI/KYiIlxjH3CTP2Xo22XxkmIao/6SlpJqsJ4jzA3/5cgNDzzGqD5b9cq52OgJ 7o4xkbpliSGEEsmjPWrEFFJI35ndZLDP3j0B5Ke3nEhn4Bb9TdVoISnvvxKKnKdd/LZI OIJMXdf1MJD7EDDTGt0XkLcoo+7pGrQ6RMxj7o2k3xosVMRro0/Scgk4Fu+BMV75grfl J5bjE61COayM/WaiI1DXaaK8GB4hv1K0k8qsLuDkplIcsUH9MesQ33zsRiNJau32xe61 TLrQ== X-Received: by 10.181.28.7 with SMTP id jk7mr43935711wid.14.1414688312119; Thu, 30 Oct 2014 09:58:32 -0700 (PDT) Received: from angus-think.wlc.globallogic.com ([195.234.75.250]) by mx.google.com with ESMTPSA id fa16sm22824280wid.5.2014.10.30.09.58.30 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 30 Oct 2014 09:58:31 -0700 (PDT) From: Vadim Kochan To: netdev@vger.kernel.org Cc: Vadim Kochan Subject: [PATCH iproute2 v3] ss: Refactor to use macro for define diag nl request Date: Thu, 30 Oct 2014 18:49:25 +0200 Message-Id: <1414687765-21112-1-git-send-email-vadim4j@gmail.com> X-Mailer: git-send-email 2.1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Vadim Kochan --- misc/ss.c | 56 +++++++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/misc/ss.c b/misc/ss.c index b7e0ef0..240d36b 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -41,6 +41,19 @@ #include #include +#define DIAG_REQUEST(_req, _r) \ + struct { \ + struct nlmsghdr nlh; \ + _r; \ + } _req = { \ + .nlh = { \ + .nlmsg_type = SOCK_DIAG_BY_FAMILY, \ + .nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST,\ + .nlmsg_seq = 123456, \ + .nlmsg_len = sizeof(_req), \ + }, \ + } + #if HAVE_SELINUX #include #else @@ -1808,10 +1821,7 @@ static int tcpdiag_send(int fd, int protocol, struct filter *f) static int sockdiag_send(int family, int fd, int protocol, struct filter *f) { struct sockaddr_nl nladdr; - struct { - struct nlmsghdr nlh; - struct inet_diag_req_v2 r; - } req; + DIAG_REQUEST(req, struct inet_diag_req_v2 r); char *bc = NULL; int bclen; struct msghdr msg; @@ -1824,11 +1834,6 @@ static int sockdiag_send(int family, int fd, int protocol, struct filter *f) memset(&nladdr, 0, sizeof(nladdr)); nladdr.nl_family = AF_NETLINK; - req.nlh.nlmsg_len = sizeof(req); - req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY; - req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; - req.nlh.nlmsg_pid = 0; - req.nlh.nlmsg_seq = 123456; memset(&req.r, 0, sizeof(req.r)); req.r.sdiag_family = family; req.r.sdiag_protocol = protocol; @@ -2590,16 +2595,7 @@ close_it: static int unix_show_netlink(struct filter *f, FILE *dump_fp) { - struct { - struct nlmsghdr nlh; - struct unix_diag_req r; - } req; - - memset(&req, 0, sizeof(req)); - req.nlh.nlmsg_len = sizeof(req); - req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY; - req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; - req.nlh.nlmsg_seq = 123456; + DIAG_REQUEST(req, struct unix_diag_req r); req.r.sdiag_family = AF_UNIX; req.r.udiag_states = f->states; @@ -2791,21 +2787,12 @@ static int packet_show_sock(struct nlmsghdr *nlh, struct filter *f) static int packet_show_netlink(struct filter *f, FILE *dump_fp) { int fd; - struct { - struct nlmsghdr nlh; - struct packet_diag_req r; - } req; + DIAG_REQUEST(req, struct packet_diag_req r); char buf[16384]; if ((fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_INET_DIAG)) < 0) return -1; - memset(&req, 0, sizeof(req)); - req.nlh.nlmsg_len = sizeof(req); - req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY; - req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; - req.nlh.nlmsg_seq = 123456; - req.r.sdiag_family = AF_PACKET; req.r.pdiag_show = PACKET_SHOW_INFO | PACKET_SHOW_MEMINFO | PACKET_SHOW_FILTER; @@ -3104,16 +3091,7 @@ static int netlink_show_sock(struct nlmsghdr *nlh, struct filter *f) static int netlink_show_netlink(struct filter *f, FILE *dump_fp) { - struct { - struct nlmsghdr nlh; - struct netlink_diag_req r; - } req; - - memset(&req, 0, sizeof(req)); - req.nlh.nlmsg_len = sizeof(req); - req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY; - req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; - req.nlh.nlmsg_seq = 123456; + DIAG_REQUEST(req, struct netlink_diag_req r); req.r.sdiag_family = AF_NETLINK; req.r.sdiag_protocol = NDIAG_PROTO_ALL;