|
cvsdist |
14587f6 |
--- net-tools-1.60/nameif.c.nameif 2000-10-18 19:26:29.000000000 +0200
|
|
cvsdist |
14587f6 |
+++ net-tools-1.60/nameif.c 2003-03-19 11:02:01.000000000 +0100
|
|
cvsdist |
14587f6 |
@@ -3,7 +3,7 @@
|
|
cvsdist |
14587f6 |
* Writen 2000 by Andi Kleen.
|
|
cvsdist |
14587f6 |
* Subject to the Gnu Public License, version 2.
|
|
cvsdist |
14587f6 |
* TODO: make it support token ring etc.
|
|
cvsdist |
14587f6 |
- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $
|
|
cvsdist |
14587f6 |
+ * $Id: nameif.c,v 1.3 2003/03/06 23:26:52 ecki Exp $
|
|
cvsdist |
14587f6 |
*/
|
|
cvsdist |
14587f6 |
#ifndef _GNU_SOURCE
|
|
cvsdist |
14587f6 |
#define _GNU_SOURCE
|
|
cvsdist |
14587f6 |
@@ -117,7 +117,8 @@
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
|
|
cvsdist |
14587f6 |
struct change {
|
|
cvsdist |
14587f6 |
- struct change *next,**pprev;
|
|
cvsdist |
14587f6 |
+ struct change *next;
|
|
cvsdist |
14587f6 |
+ int found;
|
|
cvsdist |
14587f6 |
char ifname[IFNAMSIZ+1];
|
|
cvsdist |
14587f6 |
unsigned char mac[6];
|
|
cvsdist |
14587f6 |
};
|
|
cvsdist |
14587f6 |
@@ -139,10 +140,7 @@
|
|
cvsdist |
14587f6 |
ch->ifname, pos);
|
|
cvsdist |
14587f6 |
if (parsemac(p,ch->mac) < 0)
|
|
cvsdist |
14587f6 |
complain(_("cannot parse MAC `%s' at %s"), p, pos);
|
|
cvsdist |
14587f6 |
- if (clist)
|
|
cvsdist |
14587f6 |
- clist->pprev = &ch->next;
|
|
cvsdist |
14587f6 |
ch->next = clist;
|
|
cvsdist |
14587f6 |
- ch->pprev = &clist;
|
|
cvsdist |
14587f6 |
clist = ch;
|
|
cvsdist |
14587f6 |
return 0;
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
@@ -200,7 +198,7 @@
|
|
cvsdist |
14587f6 |
|
|
cvsdist |
14587f6 |
void usage(void)
|
|
cvsdist |
14587f6 |
{
|
|
cvsdist |
14587f6 |
- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
|
|
cvsdist |
14587f6 |
+ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
|
|
cvsdist |
14587f6 |
exit(1);
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
|
|
cvsdist |
14587f6 |
@@ -277,21 +275,21 @@
|
|
cvsdist |
14587f6 |
ch = lookupmac(mac);
|
|
cvsdist |
14587f6 |
if (!ch)
|
|
cvsdist |
14587f6 |
continue;
|
|
cvsdist |
14587f6 |
-
|
|
cvsdist |
14587f6 |
- *ch->pprev = ch->next;
|
|
cvsdist |
14587f6 |
+
|
|
cvsdist |
14587f6 |
+ ch->found = 1;
|
|
cvsdist |
14587f6 |
if (strcmp(p, ch->ifname)) {
|
|
cvsdist |
14587f6 |
if (setname(p, ch->ifname) < 0)
|
|
cvsdist |
14587f6 |
complain(_("cannot change name of %s to %s: %s"),
|
|
cvsdist |
14587f6 |
p, ch->ifname, strerror(errno));
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
- free(ch);
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
fclose(ifh);
|
|
cvsdist |
14587f6 |
|
|
cvsdist |
14587f6 |
while (clist) {
|
|
cvsdist |
14587f6 |
struct change *ch = clist;
|
|
cvsdist |
14587f6 |
clist = clist->next;
|
|
cvsdist |
14587f6 |
- warning(_("interface '%s' not found"), ch->ifname);
|
|
cvsdist |
14587f6 |
+ if (!ch->found)
|
|
cvsdist |
14587f6 |
+ warning(_("interface '%s' not found"), ch->ifname);
|
|
cvsdist |
14587f6 |
free(ch);
|
|
cvsdist |
14587f6 |
}
|
|
cvsdist |
14587f6 |
|