Patch from Thomas Winkler:
authorEric Andersen <andersen@codepoet.org>
Wed, 31 Mar 2004 11:30:08 +0000 (11:30 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 31 Mar 2004 11:30:08 +0000 (11:30 -0000)
ifconfig did not look up hostnames, so
ifconfig lo localhost
would not work, you have to do
ifconfig lo 127.0.0.1

networking/ifconfig.c

index b884ef7c3d19724e268559dfe0fb71b05d351020..4e3df2982cfa7e57a8a943de4b5b1d16cb68c913 100644 (file)
@@ -15,7 +15,7 @@
  * Foundation;  either  version 2 of the License, or  (at
  * your option) any later version.
  *
- * $Id: ifconfig.c,v 1.29 2004/03/15 08:28:48 andersen Exp $
+ * $Id: ifconfig.c,v 1.30 2004/03/31 11:30:08 andersen Exp $
  *
  */
 
@@ -37,6 +37,7 @@
 #include <string.h>            /* strcmp and friends */
 #include <ctype.h>             /* isdigit and friends */
 #include <stddef.h>            /* offsetof */
+#include <netdb.h>
 #include <sys/ioctl.h>
 #include <net/if.h>
 #include <net/if_arp.h>
@@ -443,8 +444,13 @@ int ifconfig_main(int argc, char **argv)
 #endif
                                                } else if (inet_aton(host, &sai.sin_addr) == 0) {
                                                        /* It's not a dotted quad. */
-                                                       ++goterr;
-                                                       continue;
+                                                       struct hostent *hp;
+                                                       if ((hp = gethostbyname(host)) == (struct hostent *)NULL) {
+                                                               ++goterr;
+                                                               continue;
+                                                       }
+                                                       memcpy((char *) &sai.sin_addr, (char *) hp->h_addr_list[0],
+                                                       sizeof(struct in_addr));
                                                }
 #ifdef CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS
                                                if (mask & A_HOSTNAME) {