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 | |
| parent | ee921393a513d10c7a28d41a9b2eaec174a8cd0f (diff) | |
| download | busybox-w32-761ce14fd266d8bf78b8f9c83ec2425ede0648b9.tar.gz busybox-w32-761ce14fd266d8bf78b8f9c83ec2425ede0648b9.tar.bz2 busybox-w32-761ce14fd266d8bf78b8f9c83ec2425ede0648b9.zip | |
- 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
| -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) | |||
| 26 | { | 26 | { |
| 27 | int argc = *argcp; | 27 | int argc = *argcp; |
| 28 | char **argv = *argvp; | 28 | char **argv = *argvp; |
| 29 | static const char * const ip_common_commands[] = | ||
| 30 | {"-family", "inet", "inet6", "link", | ||
| 31 | "-4", "-6", "-0", "-oneline", 0}; | ||
| 32 | enum { | ||
| 33 | ARG_family, | ||
| 34 | ARG_inet, | ||
| 35 | ARG_inet6, | ||
| 36 | ARG_link, | ||
| 37 | ARG_IPv4, | ||
| 38 | ARG_IPv6, | ||
| 39 | ARG_packet, | ||
| 40 | ARG_oneline | ||
| 41 | }; | ||
| 42 | smalluint arg; | ||
| 29 | 43 | ||
| 30 | while (argc > 1) { | 44 | while (argc > 1) { |
| 31 | char *opt = argv[1]; | 45 | char *opt = argv[1]; |
| @@ -35,33 +49,32 @@ void ip_parse_common_args(int *argcp, char ***argvp) | |||
| 35 | argv++; | 49 | argv++; |
| 36 | break; | 50 | break; |
| 37 | } | 51 | } |
| 38 | |||
| 39 | if (opt[0] != '-') | 52 | if (opt[0] != '-') |
| 40 | break; | 53 | break; |
| 41 | |||
| 42 | if (opt[1] == '-') | 54 | if (opt[1] == '-') |
| 43 | opt++; | 55 | opt++; |
| 44 | 56 | arg = index_in_str_array(ip_common_commands, opt) + 1; | |
| 45 | if (matches(opt, "-family") == 0) { | 57 | if (arg == ARG_family) { |
| 46 | argc--; | 58 | argc--; |
| 47 | argv++; | 59 | argv++; |
| 48 | if (!argv[1]) | 60 | if (!argv[1]) |
| 49 | bb_show_usage(); | 61 | bb_show_usage(); |
| 50 | if (strcmp(argv[1], "inet") == 0) | 62 | arg = index_in_str_array(ip_common_commands, argv[1]) + 1; |
| 63 | if (arg == ARG_inet) | ||
| 51 | preferred_family = AF_INET; | 64 | preferred_family = AF_INET; |
| 52 | else if (strcmp(argv[1], "inet6") == 0) | 65 | else if (arg == ARG_inet6) |
| 53 | preferred_family = AF_INET6; | 66 | preferred_family = AF_INET6; |
| 54 | else if (strcmp(argv[1], "link") == 0) | 67 | else if (arg == ARG_link) |
| 55 | preferred_family = AF_PACKET; | 68 | preferred_family = AF_PACKET; |
| 56 | else | 69 | else |
| 57 | invarg(argv[1], "protocol family"); | 70 | invarg(argv[1], "protocol family"); |
| 58 | } else if (strcmp(opt, "-4") == 0) { | 71 | } else if (arg == ARG_IPv4) { |
| 59 | preferred_family = AF_INET; | 72 | preferred_family = AF_INET; |
| 60 | } else if (strcmp(opt, "-6") == 0) { | 73 | } else if (arg == ARG_IPv6) { |
| 61 | preferred_family = AF_INET6; | 74 | preferred_family = AF_INET6; |
| 62 | } else if (strcmp(opt, "-0") == 0) { | 75 | } else if (arg == ARG_packet) { |
| 63 | preferred_family = AF_PACKET; | 76 | preferred_family = AF_PACKET; |
| 64 | } else if (matches(opt, "-oneline") == 0) { | 77 | } else if (arg == ARG_oneline) { |
| 65 | ++oneline; | 78 | ++oneline; |
| 66 | } else { | 79 | } else { |
| 67 | bb_show_usage(); | 80 | bb_show_usage(); |
