aboutsummaryrefslogtreecommitdiff
path: root/ifconfig.c
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2001-03-12 09:57:59 +0000
committerManuel Novoa III <mjn3@codepoet.org>2001-03-12 09:57:59 +0000
commit68ea1d032561b9bd47c0b0877ec58ddd1288b594 (patch)
treeda374e2e60360979e05c36541a88b99b41b08190 /ifconfig.c
parent1365bb786155439041b7777d31bcfadb5276e824 (diff)
downloadbusybox-68ea1d032561b9bd47c0b0877ec58ddd1288b594.tar.gz
Reduced code size of interface. Support ifconfig -a and ifconfig interface
display. Change %llu to %Lu in ifconfig for hacked unsigned long long support in uClibc scanf.
Diffstat (limited to 'ifconfig.c')
-rw-r--r--ifconfig.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/ifconfig.c b/ifconfig.c
index 95dda3bce..75bcf38e8 100644
--- a/ifconfig.c
+++ b/ifconfig.c
@@ -15,7 +15,7 @@
* Foundation; either version 2 of the License, or (at
* your option) any later version.
*
- * $Id: ifconfig.c,v 1.7 2001/03/10 02:00:54 mjn3 Exp $
+ * $Id: ifconfig.c,v 1.8 2001/03/12 09:57:59 mjn3 Exp $
*
*/
@@ -26,7 +26,7 @@
* converting to a table-driven approach. Added several (optional)
* args missing from initial port.
*
- * Still missing: media.
+ * Still missing: media, tunnel.
*/
#include <stdio.h>
@@ -234,7 +234,8 @@ static int in_ether(char *bufp, struct sockaddr *sap);
#endif
#ifdef BB_FEATURE_IFCONFIG_STATUS
-extern int display_interfaces(int display_all);
+extern int interface_opt_a;
+extern int display_interfaces(char *ifname);
#endif
/*
@@ -261,24 +262,26 @@ int ifconfig_main(int argc, char **argv)
goterr = 0;
did_flags = 0;
- if(argc < 2) {
-#ifdef BB_FEATURE_IFCONFIG_STATUS
- return(display_interfaces(0));
-#else
- show_usage();
-#endif
- }
-
/* skip argv[0] */
- argc--;
- argv++;
+ ++argv;
+ --argc;
#ifdef BB_FEATURE_IFCONFIG_STATUS
- if ((argc == 1) && (strcmp(*argv, "-a") == 0)) {
- return(display_interfaces(1));
+ if ((argc > 0) && (strcmp(*argv,"-a") == 0)) {
+ interface_opt_a = 1;
+ --argc;
+ ++argv;
}
#endif
+ if(argc <= 1) {
+#ifdef BB_FEATURE_IFCONFIG_STATUS
+ return display_interfaces(argc ? *argv : NULL);
+#else
+ show_usage();
+#endif
+ }
+
/* Create a channel to the NET kernel. */
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror_msg_and_die("socket");