Steve Grubb writes:
[oweals/busybox.git] / networking / nameif.c
index cd18b4c18d2f8f4b0a86614c4cec193130f2337c..10f13b4bcda72b28d93fc7e7e25315e363111d66 100644 (file)
@@ -1,9 +1,9 @@
 /*
  * nameif.c - Naming Interfaces based on MAC address for busybox.
  *
- * Writen 2000 by Andi Kleen.
+ * Written 2000 by Andi Kleen.
  * Busybox port 2002 by Nick Fedchik <nick@fedchik.org.ua>
- *                     Glenn McGrath <bug1@optushome.com.au>
+ *                     Glenn McGrath <bug1@iinet.net.au>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 #include "busybox.h"
 
+/* Older versions of net/if.h do not appear to define IF_NAMESIZE. */
+#ifndef IF_NAMESIZE
+#  ifdef IFNAMSIZ
+#    define IF_NAMESIZE IFNAMSIZ
+#  else
+#    define IF_NAMESIZE 16
+#  endif
+#endif
+
 /* take from linux/sockios.h */
-#define SIOCSIFNAME    0x8923          /* set interface name */
+#define SIOCSIFNAME    0x8923  /* set interface name */
 
-/* Octets in one ethernet addr, from <linux/if_ether.h> */
+/* Octets in one Ethernet addr, from <linux/if_ether.h> */
 #define ETH_ALEN       6
 
 #ifndef ifr_newname
@@ -63,11 +72,11 @@ static void serror(const char *s, ...)
        va_start(ap, s);
 
        if (use_syslog) {
-               openlog(applet_name, 0, LOG_LOCAL0);
+               openlog(bb_applet_name, 0, LOG_LOCAL0);
                vsyslog(LOG_ERR, s, ap);
                closelog();
        } else {
-               verror_msg(s, ap);
+               bb_verror_msg(s, ap);
                putc('\n', stderr);
        }
 
@@ -101,13 +110,8 @@ int nameif_main(int argc, char **argv)
        int if_index = 1;
        mactable_t *ch;
 
-       static struct option opts[] = {
-               {"syslog", 0, NULL, 's'},
-               {"configfile", 1, NULL, 'c'},
-               {NULL},
-       };
 
-       while ((opt = getopt_long(argc, argv, "c:s", opts, NULL)) != -1) {
+       while ((opt = getopt(argc, argv, "c:s")) != -1) {
                switch (opt) {
                case 'c':
                        fname = optarg;
@@ -116,12 +120,12 @@ int nameif_main(int argc, char **argv)
                        use_syslog = 1;
                        break;
                default:
-                       show_usage();
+                       bb_show_usage();
                }
        }
 
        if ((argc - optind) & 1)
-               show_usage();
+               bb_show_usage();
 
        if (optind < argc) {
                char **a = argv + optind;
@@ -131,7 +135,7 @@ int nameif_main(int argc, char **argv)
                        if (strlen(*a) > IF_NAMESIZE)
                                serror("interface name `%s' too long", *a);
                        ch = xcalloc(1, sizeof(mactable_t));
-                       ch->ifname = xstrdup(*a++);
+                       ch->ifname = bb_xstrdup(*a++);
                        ch->mac = cc_macaddr(*a++);
                        if (clist)
                                clist->prev = ch;
@@ -139,9 +143,9 @@ int nameif_main(int argc, char **argv)
                        clist = ch;
                }
        } else {
-               ifh = xfopen(fname, "r");
+               ifh = bb_xfopen(fname, "r");
 
-               while ((line = get_line_from_file(ifh)) != NULL) {
+               while ((line = bb_get_line_from_file(ifh)) != NULL) {
                        char *line_ptr;
                        size_t name_length;
 
@@ -150,10 +154,9 @@ int nameif_main(int argc, char **argv)
                                continue;
                        name_length = strcspn(line_ptr, " \t");
                        ch = xcalloc(1, sizeof(mactable_t));
-                       ch->ifname = xstrndup(line_ptr, name_length);
+                       ch->ifname = bb_xstrndup(line_ptr, name_length);
                        if (name_length > IF_NAMESIZE)
-                           serror("interface name `%s' too long",
-                                          ch->ifname);
+                               serror("interface name `%s' too long", ch->ifname);
                        line_ptr += name_length;
                        line_ptr += strspn(line_ptr, " \t");
                        name_length = strspn(line_ptr, "0123456789ABCDEFabcdef:");