From 8b08bda66b899cde8fae05fc6f76a18a62a25400 Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Fri, 13 Dec 2002 09:02:16 +0000 Subject: [PATCH] Fix bug when reading mac from command line, continue; if hwaddrr not found --- networking/nameif.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/networking/nameif.c b/networking/nameif.c index 1edd64111..4b2d090ca 100644 --- a/networking/nameif.c +++ b/networking/nameif.c @@ -67,7 +67,7 @@ static void serror_msg_and_die(const char use_syslog, const char *s, ...) } va_end(ap); - + exit(EXIT_FAILURE); } @@ -121,7 +121,7 @@ int nameif_main(int argc, char **argv) ch = xcalloc(1, sizeof(mactable_t)); ch->ifname = strdup(argv[optind - 1]); ch->mac = xcalloc(1, ETH_ALEN); - memcpy(ch->mac, &mac, ETH_ALEN); + memcpy(ch->mac, mac, ETH_ALEN); optind++; if (clist) clist->pprev = &ch->next; @@ -186,7 +186,8 @@ int nameif_main(int argc, char **argv) memset(&ifr, 0, sizeof(struct ifreq)); strncpy(ifr.ifr_name, line_ptr, iface_name_length); if (ioctl(ctl_sk, SIOCGIFHWADDR, &ifr) < 0) { - serror_msg_and_die(use_syslog, "cannot change name of %s to %s: %s", ifr.ifr_name, ch->ifname, strerror(errno)); +// serror_msg(use_syslog, "cannot read hardware address of %s: %s", ifr.ifr_name, strerror(errno)); + continue; } for (ch = clist; ch; ch = ch->next) if (!memcmp(ch->mac, ifr.ifr_hwaddr.sa_data, ETH_ALEN)) @@ -194,6 +195,7 @@ int nameif_main(int argc, char **argv) if (ch == NULL) { continue; } + strcpy(ifr.ifr_newname, ch->ifname); if (ioctl(ctl_sk, SIOCSIFNAME, &ifr) < 0) {;