[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220107085127.0c0172eb@hermes.local>
Date: Fri, 7 Jan 2022 08:51:27 -0800
From: Stephen Hemminger <stephen@...workplumber.org>
To: Anton Danilov <littlesmilingcloud@...il.com>
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH iproute2] ip: Extend filter links/addresses
On Fri, 7 Jan 2022 17:17:38 +0300
Anton Danilov <littlesmilingcloud@...il.com> wrote:
> + if (filter.exclude_kind && match_link_kind(tb, filter.exclude_kind, 0) == -1 &&
> + !strcmp(filter.exclude_kind, "ether") && ifi->ifi_type == ARPHRD_ETHER)
> + return -1;
> + if (filter.exclude_kind && match_link_kind(tb, filter.exclude_kind, 0) == -1 &&
> + !strcmp(filter.exclude_kind, "loopback") && ifi->ifi_type == ARPHRD_LOOPBACK)
> + return -1;
> + if (filter.exclude_kind && match_link_kind(tb, filter.exclude_kind, 0) == -1 &&
> + !strcmp(filter.exclude_kind, "ppp") && ifi->ifi_type == ARPHRD_PPP)
> + return -1;
> + if (filter.exclude_kind && !match_link_kind(tb, filter.exclude_kind, 0))
> + return -1;
> +
> + if (filter.kind && match_link_kind(tb, filter.kind, 0) == -1 &&
> + !strcmp(filter.kind, "ether") && ifi->ifi_type == ARPHRD_ETHER)
> + ;
> + else if (filter.kind && match_link_kind(tb, filter.kind, 0) == -1 &&
> + !strcmp(filter.kind, "loopback") && ifi->ifi_type == ARPHRD_LOOPBACK)
> + ;
> + else if (filter.kind && match_link_kind(tb, filter.kind, 0) == -1 &&
> + !strcmp(filter.kind, "ppp") && ifi->ifi_type == ARPHRD_PPP)
> + ;
> + else if (filter.kind && match_link_kind(tb, filter.kind, 0))
> return -1;
This is complex enough it is getting messy, it should be helper functions.
Also the code has duplications which indicates it should be split as well.
Powered by blists - more mailing lists