aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Sutter <phil.sutter@viprinet.com>2011-03-06 19:15:30 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2011-03-06 19:15:30 +0100
commit2adc0e6d8b146991063309238569a703af6bda8f (patch)
tree732582cfd34d42782fd5f35c599ca4452250b674
parentbd74e3d8beb0fedc4c1fdd9469a9de3f1f04c7b5 (diff)
downloadbusybox-w32-2adc0e6d8b146991063309238569a703af6bda8f.tar.gz
busybox-w32-2adc0e6d8b146991063309238569a703af6bda8f.tar.bz2
busybox-w32-2adc0e6d8b146991063309238569a703af6bda8f.zip
nameif: fix parsing of /proc/net/dev; small code shrink
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>
-rw-r--r--networking/nameif.c20
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
135int nameif_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 135int nameif_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
136int nameif_main(int argc, char **argv) 136int 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 */