/*
* 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
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);
}
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;
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;
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;
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;
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:");