diff options
Diffstat (limited to 'net-tools/net-tools-1.60-nameif.patch')
-rw-r--r-- | net-tools/net-tools-1.60-nameif.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/net-tools/net-tools-1.60-nameif.patch b/net-tools/net-tools-1.60-nameif.patch new file mode 100644 index 0000000..a742a8e --- /dev/null +++ b/net-tools/net-tools-1.60-nameif.patch @@ -0,0 +1,61 @@ +From Rawhide. Fix for when the wrong device information is shown. + +diff -Naur net-tools-1.60.orig/nameif.c net-tools-1.60/nameif.c +--- net-tools-1.60.orig/nameif.c 2000-10-18 17:26:29.000000000 +0000 ++++ net-tools-1.60/nameif.c 2003-09-12 22:48:57.000000000 +0000 +@@ -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); + } + |