From: Petr Machata <petrm@nvidia.com>
To: David Ahern <dsahern@gmail.com>,
Stephen Hemminger <stephen@networkplumber.org>,
<netdev@vger.kernel.org>
Cc: Patrisious Haddad <phaddad@nvidia.com>, Petr Machata <petrm@nvidia.com>
Subject: [PATCH iproute2-next 0/3] Change parse_one_of(), parse_on_off() to strcmp()
Date: Wed, 15 Nov 2023 16:31:56 +0100 [thread overview]
Message-ID: <cover.1700061513.git.petrm@nvidia.com> (raw)
Library functions parse_one_of() and parse_on_off() were added about three
years ago to unify all the disparate reimplementations of the same basic
idea. It used the matches() function to determine whether a string under
consideration corresponds to one of the patterns. This reflected many,
though not all cases of on/off parsing at the time.
This decision has some odd consequences. In particular, "o" can be used as
a shorthand for "off", which is not obvious, because "o" is the prefix of
both. By sheer luck, the end result actually makes some sense: "on" means
on, anything else either means off or errors out. Similar issues are in
principle also possible for parse_one_of() uses, though currently this does
not come up.
Ideally parse_on_off() would accept the strings "on" and "off" and no
others, likewise for parse_one_of().
Hence this patchset, which renames the existing functions to
parse_one_of_deprecated() and parse_on_off_deprecated(), respectively,
and introduces the new functions in their place, parse_one_of() and
parse_on_off(), which use strcmp() under the hood.
Petr Machata (3):
lib: utils: Switch matches() to returning int again
lib: utils: Generalize code of parse_one_of(), parse_on_off()
lib: utils: Add parse_one_of_deprecated(), parse_on_off_deprecated()
bridge/link.c | 48 ++++++++++++++++++++++++++--------------
bridge/vlan.c | 4 ++--
dcb/dcb_ets.c | 6 +++--
dcb/dcb_pfc.c | 5 +++--
include/utils.h | 6 ++++-
ip/iplink.c | 15 ++++++++-----
ip/iplink_bridge_slave.c | 2 +-
ip/ipmacsec.c | 27 +++++++++++++---------
ip/ipstats.c | 3 ++-
lib/utils.c | 44 ++++++++++++++++++++++++++++--------
10 files changed, 109 insertions(+), 51 deletions(-)
--
2.41.0
next reply other threads:[~2023-11-15 15:32 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-15 15:31 Petr Machata [this message]
2023-11-15 15:31 ` [PATCH iproute2-next 1/3] lib: utils: Switch matches() to returning int again Petr Machata
2023-11-15 15:31 ` [PATCH iproute2-next 2/3] lib: utils: Generalize code of parse_one_of(), parse_on_off() Petr Machata
2023-11-15 15:31 ` [PATCH iproute2-next 3/3] lib: utils: Add parse_one_of_deprecated(), parse_on_off_deprecated() Petr Machata
2023-11-15 15:57 ` Stephen Hemminger
2023-11-15 15:59 ` Stephen Hemminger
2023-11-15 16:57 ` Petr Machata
2023-11-20 22:27 ` David Ahern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1700061513.git.petrm@nvidia.com \
--to=petrm@nvidia.com \
--cc=dsahern@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=phaddad@nvidia.com \
--cc=stephen@networkplumber.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).