From patchwork Wed Jun 22 11:34:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jakub Sitnicki X-Patchwork-Id: 639137 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 3rZNYx4m3Pz9s9G for ; Wed, 22 Jun 2016 22:04:37 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752457AbcFVMEQ (ORCPT ); Wed, 22 Jun 2016 08:04:16 -0400 Received: from mail-qk0-f176.google.com ([209.85.220.176]:33917 "EHLO mail-qk0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752546AbcFVMEN (ORCPT ); Wed, 22 Jun 2016 08:04:13 -0400 Received: by mail-qk0-f176.google.com with SMTP id t127so60839682qkf.1 for ; Wed, 22 Jun 2016 05:02:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version; bh=kTXWOuBj6Zq+B7AE5aJuNu8lDHCeJg5qw4QFE+sSmww=; b=ICLWOthJBk5fSZSAdkO0j+lvDGeSC0odw/Olv2U15wAcMpn4mUSakluPRnmtX90wlZ YU+XqJjuVNFCYAYoNUNSuz/iSP/ThTuM2kD7uSyKpaj5+BeLBywBQbQWWSYmL9Ze4tqw LyeH6rVwn3d2kPoHX7y8lDv8pHa0IGV2Bo5O55mVXFhPR4aeNGdXkD6hqMba7Y85sSQ4 1dXgcEo5/a6HIU+jWAqVyXkxeuH5GFxM6m7skksH1ROazQPVUsCw3bJzO7TBHmFNX5Ma ilhH3sVJ8NVXxPQAxZ16RtHqgTkOYyLN3hCyhLoLjmFoAvscU+kSPbXltv0vMR8ONM4z g0hQ== X-Gm-Message-State: ALyK8tIYgyDk143vQumiXe34jxcIAhwUDQT/9bO8TECoeCmbwUYAJwVTtjs2bgwNwN5pt9oH X-Received: by 10.55.48.203 with SMTP id w194mr1969906qkw.168.1466595255302; Wed, 22 Jun 2016 04:34:15 -0700 (PDT) Received: from redhat.com (89-76-20-228.dynamic.chello.pl. [89.76.20.228]) by smtp.gmail.com with ESMTPSA id 29sm26019811qtx.4.2016.06.22.04.34.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Jun 2016 04:34:14 -0700 (PDT) References: <1466525921-15738-1-git-send-email-phil@nwl.cc> <1466525921-15738-8-git-send-email-phil@nwl.cc> User-agent: mu4e 0.9.17; emacs 24.5.1 From: Jakub Sitnicki To: Phil Sutter Cc: Stephen Hemminger , Daniel Borkmann , David Ahern , Nicolas Dichtel , Julien Floret , netdev@vger.kernel.org Subject: Re: [iproute PATCH v2 7/7] ip/tcp_metrics: Simplify process_msg a bit In-reply-to: <1466525921-15738-8-git-send-email-phil@nwl.cc> Date: Wed, 22 Jun 2016 13:34:13 +0200 Message-ID: <87k2hhmp8q.fsf@frog.home> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, Jun 21, 2016 at 06:18 PM CEST, Phil Sutter wrote: > By combining the attribute extraction and check for existence, the > additional indentation level in the 'else' clause can be avoided. > > In addition to that, common actions for 'daddr' are combined since the > function returns if neither of the branches are taken. > > Signed-off-by: Phil Sutter > --- > ip/tcp_metrics.c | 45 ++++++++++++++++++--------------------------- > 1 file changed, 18 insertions(+), 27 deletions(-) > > diff --git a/ip/tcp_metrics.c b/ip/tcp_metrics.c > index f82604f458ada..899830c127bcb 100644 > --- a/ip/tcp_metrics.c > +++ b/ip/tcp_metrics.c > @@ -112,47 +112,38 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, > parse_rtattr(attrs, TCP_METRICS_ATTR_MAX, (void *) ghdr + GENL_HDRLEN, > len); > > - a = attrs[TCP_METRICS_ATTR_ADDR_IPV4]; > - if (a) { > + if ((a = attrs[TCP_METRICS_ATTR_ADDR_IPV4])) { Copy the pointer inside the branch? Same gain on indentation while keeping checkpatch happy. I only compile-tested the patch below. Thanks, Jakub diff --git a/ip/tcp_metrics.c b/ip/tcp_metrics.c index f82604f..ac2613a 100644 --- a/ip/tcp_metrics.c +++ b/ip/tcp_metrics.c @@ -112,47 +112,44 @@ static int process_msg(const struct sockaddr_nl *who, struct nlmsghdr *n, parse_rtattr(attrs, TCP_METRICS_ATTR_MAX, (void *) ghdr + GENL_HDRLEN, len); - a = attrs[TCP_METRICS_ATTR_ADDR_IPV4]; - if (a) { + if (attrs[TCP_METRICS_ATTR_ADDR_IPV4]) { if (f.daddr.family && f.daddr.family != AF_INET) return 0; + a = attrs[TCP_METRICS_ATTR_ADDR_IPV4]; memcpy(&daddr.data, RTA_DATA(a), 4); daddr.bytelen = 4; family = AF_INET; atype = TCP_METRICS_ATTR_ADDR_IPV4; dlen = RTA_PAYLOAD(a); - } else { - a = attrs[TCP_METRICS_ATTR_ADDR_IPV6]; - if (a) { - if (f.daddr.family && f.daddr.family != AF_INET6) - return 0; - memcpy(&daddr.data, RTA_DATA(a), 16); - daddr.bytelen = 16; - family = AF_INET6; - atype = TCP_METRICS_ATTR_ADDR_IPV6; - dlen = RTA_PAYLOAD(a); - } else + } else if (attrs[TCP_METRICS_ATTR_ADDR_IPV6]) { + if (f.daddr.family && f.daddr.family != AF_INET6) return 0; + a = attrs[TCP_METRICS_ATTR_ADDR_IPV6]; + memcpy(&daddr.data, RTA_DATA(a), 16); + daddr.bytelen = 16; + family = AF_INET6; + atype = TCP_METRICS_ATTR_ADDR_IPV6; + dlen = RTA_PAYLOAD(a); + } else { + return 0; } - a = attrs[TCP_METRICS_ATTR_SADDR_IPV4]; - if (a) { + if (attrs[TCP_METRICS_ATTR_SADDR_IPV4]) { if (f.saddr.family && f.saddr.family != AF_INET) return 0; + a = attrs[TCP_METRICS_ATTR_SADDR_IPV4]; memcpy(&saddr.data, RTA_DATA(a), 4); saddr.bytelen = 4; stype = TCP_METRICS_ATTR_SADDR_IPV4; slen = RTA_PAYLOAD(a); - } else { + } else if (attrs[TCP_METRICS_ATTR_SADDR_IPV6]) { + if (f.saddr.family && f.saddr.family != AF_INET6) + return 0; a = attrs[TCP_METRICS_ATTR_SADDR_IPV6]; - if (a) { - if (f.saddr.family && f.saddr.family != AF_INET6) - return 0; - memcpy(&saddr.data, RTA_DATA(a), 16); - saddr.bytelen = 16; - stype = TCP_METRICS_ATTR_SADDR_IPV6; - slen = RTA_PAYLOAD(a); - } + memcpy(&saddr.data, RTA_DATA(a), 16); + saddr.bytelen = 16; + stype = TCP_METRICS_ATTR_SADDR_IPV6; + slen = RTA_PAYLOAD(a); } if (f.daddr.family && f.daddr.bitlen >= 0 &&