diff options
-rw-r--r-- | networking/nameif.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/networking/nameif.c b/networking/nameif.c index 6cf1c50c2..e9bff8b11 100644 --- a/networking/nameif.c +++ b/networking/nameif.c | |||
@@ -133,7 +133,7 @@ void delete_eth_table(ethtable_t *ch); | |||
133 | #endif | 133 | #endif |
134 | 134 | ||
135 | int nameif_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 135 | int nameif_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
136 | int nameif_main(int argc, char **argv) | 136 | int nameif_main(int argc UNUSED_PARAM, char **argv) |
137 | { | 137 | { |
138 | ethtable_t *clist = NULL; | 138 | ethtable_t *clist = NULL; |
139 | const char *fname = "/etc/mactab"; | 139 | const char *fname = "/etc/mactab"; |
@@ -148,17 +148,15 @@ int nameif_main(int argc, char **argv) | |||
148 | * can't hurt. 2>/dev/null if you don't like it: */ | 148 | * can't hurt. 2>/dev/null if you don't like it: */ |
149 | logmode |= LOGMODE_SYSLOG; | 149 | logmode |= LOGMODE_SYSLOG; |
150 | } | 150 | } |
151 | argc -= optind; | ||
152 | argv += optind; | 151 | argv += optind; |
153 | 152 | ||
154 | if (argc & 1) | 153 | if (argv[0]) { |
155 | bb_show_usage(); | 154 | do { |
156 | 155 | if (!argv[1]) | |
157 | if (argc) { | 156 | bb_show_usage(); |
158 | while (*argv) { | 157 | prepend_new_eth_table(&clist, argv[0], argv[1]); |
159 | char *ifname = *argv++; | 158 | argv += 2; |
160 | prepend_new_eth_table(&clist, ifname, *argv++); | 159 | } while (*argv); |
161 | } | ||
162 | } else { | 160 | } else { |
163 | parser = config_open(fname); | 161 | parser = config_open(fname); |
164 | while (config_read(parser, token, 2, 2, "# \t", PARSE_NORMAL)) | 162 | while (config_read(parser, token, 2, 2, "# \t", PARSE_NORMAL)) |
@@ -174,7 +172,7 @@ int nameif_main(int argc, char **argv) | |||
174 | #if ENABLE_FEATURE_NAMEIF_EXTENDED | 172 | #if ENABLE_FEATURE_NAMEIF_EXTENDED |
175 | struct ethtool_drvinfo drvinfo; | 173 | struct ethtool_drvinfo drvinfo; |
176 | #endif | 174 | #endif |
177 | if (parser->lineno < 2) | 175 | if (parser->lineno <= 2) |
178 | continue; /* Skip the first two lines */ | 176 | continue; /* Skip the first two lines */ |
179 | 177 | ||
180 | /* Find the current interface name and copy it to ifr.ifr_name */ | 178 | /* Find the current interface name and copy it to ifr.ifr_name */ |