nameif: fix parsing of /proc/net/dev; small code shrink
authorPhil Sutter <phil.sutter@viprinet.com>
Sun, 6 Mar 2011 18:15:30 +0000 (19:15 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Mar 2011 18:15:30 +0000 (19:15 +0100)
function                                             old     new   delta
nameif_main                                          628     618     -10

Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/nameif.c

index 6cf1c50c2e26310c0549e696cd03fb21153779ca..e9bff8b117bf11319c02ba01e65171a6c10284e0 100644 (file)
@@ -133,7 +133,7 @@ void delete_eth_table(ethtable_t *ch);
 #endif
 
 int nameif_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int nameif_main(int argc, char **argv)
+int nameif_main(int argc UNUSED_PARAM, char **argv)
 {
        ethtable_t *clist = NULL;
        const char *fname = "/etc/mactab";
@@ -148,17 +148,15 @@ int nameif_main(int argc, char **argv)
                 * can't hurt. 2>/dev/null if you don't like it: */
                logmode |= LOGMODE_SYSLOG;
        }
-       argc -= optind;
        argv += optind;
 
-       if (argc & 1)
-               bb_show_usage();
-
-       if (argc) {
-               while (*argv) {
-                       char *ifname = *argv++;
-                       prepend_new_eth_table(&clist, ifname, *argv++);
-               }
+       if (argv[0]) {
+               do {
+                       if (!argv[1])
+                               bb_show_usage();
+                       prepend_new_eth_table(&clist, argv[0], argv[1]);
+                       argv += 2;
+               } while (*argv);
        } else {
                parser = config_open(fname);
                while (config_read(parser, token, 2, 2, "# \t", PARSE_NORMAL))
@@ -174,7 +172,7 @@ int nameif_main(int argc, char **argv)
 #if  ENABLE_FEATURE_NAMEIF_EXTENDED
                struct ethtool_drvinfo drvinfo;
 #endif
-               if (parser->lineno < 2)
+               if (parser->lineno <= 2)
                        continue; /* Skip the first two lines */
 
                /* Find the current interface name and copy it to ifr.ifr_name */