diff --git a/ifconfig.c b/ifconfig.c index daf189458..95dda3bce 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.6 2001/03/09 23:06:15 mjn3 Exp $ + * $Id: ifconfig.c,v 1.7 2001/03/10 02:00:54 mjn3 Exp $ * */ @@ -234,7 +234,7 @@ static int in_ether(char *bufp, struct sockaddr *sap); #endif #ifdef BB_FEATURE_IFCONFIG_STATUS -extern int display_interfaces(void); +extern int display_interfaces(int display_all); #endif /* @@ -263,21 +263,27 @@ int ifconfig_main(int argc, char **argv) if(argc < 2) { #ifdef BB_FEATURE_IFCONFIG_STATUS - return(display_interfaces()); + return(display_interfaces(0)); #else show_usage(); #endif } + /* skip argv[0] */ + argc--; + argv++; + +#ifdef BB_FEATURE_IFCONFIG_STATUS + if ((argc == 1) && (strcmp(*argv, "-a") == 0)) { + return(display_interfaces(1)); + } +#endif + /* Create a channel to the NET kernel. */ if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror_msg_and_die("socket"); } - /* skip argv[0] */ - argc--; - argv++; - /* get interface name */ safe_strncpy(ifr.ifr_name, *argv, IFNAMSIZ); @@ -290,7 +296,7 @@ int ifconfig_main(int argc, char **argv) mask = M_MASK; /* set the appropriate mask. */ } for (op = OptArray ; op->name ; op++) { /* Find table entry. */ - if (!strcmp(p,op->name)) { /* If name matches... */ + if (strcmp(p,op->name) == 0) { /* If name matches... */ if ((mask &= op->flags)) { /* set the mask and go. */ goto FOUND_ARG;; } diff --git a/interface.c b/interface.c index 4df1a721a..648888bf5 100644 --- a/interface.c +++ b/interface.c @@ -3,7 +3,7 @@ * that either displays or sets the characteristics of * one or more of the system's networking interfaces. * - * Version: $Id: interface.c,v 1.2 2001/03/06 20:54:43 andersen Exp $ + * Version: $Id: interface.c,v 1.3 2001/03/10 02:00:54 mjn3 Exp $ * * Author: Fred N. van Kempen, * and others. Copyright 1993 MicroWalt Corporation @@ -2059,14 +2059,15 @@ static int if_print(char *ifname) return res; } -int display_interfaces(void) +int display_interfaces(int opt_all) { int status; + opt_a = opt_all; + /* Create a channel to the NET kernel. */ if ((skfd = sockets_open(0)) < 0) { - perror("socket"); - exit(1); + perror_msg_and_die("socket"); } /* Do we have to show the current setup? */ diff --git a/networking/ifconfig.c b/networking/ifconfig.c index daf189458..95dda3bce 100644 --- a/networking/ifconfig.c +++ b/networking/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.6 2001/03/09 23:06:15 mjn3 Exp $ + * $Id: ifconfig.c,v 1.7 2001/03/10 02:00:54 mjn3 Exp $ * */ @@ -234,7 +234,7 @@ static int in_ether(char *bufp, struct sockaddr *sap); #endif #ifdef BB_FEATURE_IFCONFIG_STATUS -extern int display_interfaces(void); +extern int display_interfaces(int display_all); #endif /* @@ -263,21 +263,27 @@ int ifconfig_main(int argc, char **argv) if(argc < 2) { #ifdef BB_FEATURE_IFCONFIG_STATUS - return(display_interfaces()); + return(display_interfaces(0)); #else show_usage(); #endif } + /* skip argv[0] */ + argc--; + argv++; + +#ifdef BB_FEATURE_IFCONFIG_STATUS + if ((argc == 1) && (strcmp(*argv, "-a") == 0)) { + return(display_interfaces(1)); + } +#endif + /* Create a channel to the NET kernel. */ if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror_msg_and_die("socket"); } - /* skip argv[0] */ - argc--; - argv++; - /* get interface name */ safe_strncpy(ifr.ifr_name, *argv, IFNAMSIZ); @@ -290,7 +296,7 @@ int ifconfig_main(int argc, char **argv) mask = M_MASK; /* set the appropriate mask. */ } for (op = OptArray ; op->name ; op++) { /* Find table entry. */ - if (!strcmp(p,op->name)) { /* If name matches... */ + if (strcmp(p,op->name) == 0) { /* If name matches... */ if ((mask &= op->flags)) { /* set the mask and go. */ goto FOUND_ARG;; }