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