diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-06-20 12:42:03 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2007-06-20 12:42:03 +0000 |
commit | 761ce14fd266d8bf78b8f9c83ec2425ede0648b9 (patch) | |
tree | 7d04c931cd9f15cf7a9edea540db99d990aa1355 /networking | |
parent | ee921393a513d10c7a28d41a9b2eaec174a8cd0f (diff) |
- remove another user of the deprecated matches() func by moving it to use index_in_str_array. Untested.
text data bss dec hex filename
445 0 4 449 1c1 ip_parse_common_args.o.oorig
391 0 4 395 18b ip_parse_common_args.o
Diffstat (limited to 'networking')
-rw-r--r-- | networking/libiproute/ip_parse_common_args.c | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/networking/libiproute/ip_parse_common_args.c b/networking/libiproute/ip_parse_common_args.c index cea5b4753..3606d3877 100644 --- a/networking/libiproute/ip_parse_common_args.c +++ b/networking/libiproute/ip_parse_common_args.c @@ -26,6 +26,20 @@ void ip_parse_common_args(int *argcp, char ***argvp) { int argc = *argcp; char **argv = *argvp; + static const char * const ip_common_commands[] = + {"-family", "inet", "inet6", "link", + "-4", "-6", "-0", "-oneline", 0}; + enum { + ARG_family, + ARG_inet, + ARG_inet6, + ARG_link, + ARG_IPv4, + ARG_IPv6, + ARG_packet, + ARG_oneline + }; + smalluint arg; while (argc > 1) { char *opt = argv[1]; @@ -35,33 +49,32 @@ void ip_parse_common_args(int *argcp, char ***argvp) argv++; break; } - if (opt[0] != '-') break; - if (opt[1] == '-') opt++; - - if (matches(opt, "-family") == 0) { + arg = index_in_str_array(ip_common_commands, opt) + 1; + if (arg == ARG_family) { argc--; argv++; if (!argv[1]) bb_show_usage(); - if (strcmp(argv[1], "inet") == 0) + arg = index_in_str_array(ip_common_commands, argv[1]) + 1; + if (arg == ARG_inet) preferred_family = AF_INET; - else if (strcmp(argv[1], "inet6") == 0) + else if (arg == ARG_inet6) preferred_family = AF_INET6; - else if (strcmp(argv[1], "link") == 0) + else if (arg == ARG_link) preferred_family = AF_PACKET; else invarg(argv[1], "protocol family"); - } else if (strcmp(opt, "-4") == 0) { + } else if (arg == ARG_IPv4) { preferred_family = AF_INET; - } else if (strcmp(opt, "-6") == 0) { + } else if (arg == ARG_IPv6) { preferred_family = AF_INET6; - } else if (strcmp(opt, "-0") == 0) { + } else if (arg == ARG_packet) { preferred_family = AF_PACKET; - } else if (matches(opt, "-oneline") == 0) { + } else if (arg == ARG_oneline) { ++oneline; } else { bb_show_usage(); |