From: Roy Marples Date: Thu, 15 Oct 2009 07:33:24 +0000 (+0000) Subject: The hwaddr could have changed for existing interfaces. X-Git-Tag: v5.1.2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0871db169f482126323a933c46e50e4b587d9304;p=thirdparty%2Fdhcpcd.git The hwaddr could have changed for existing interfaces. --- diff --git a/dhcpcd.c b/dhcpcd.c index a207eefc..c41488d3 100644 --- a/dhcpcd.c +++ b/dhcpcd.c @@ -1229,13 +1229,19 @@ handle_interface(int action, const char *ifname) break; ifl = ifn; } - if (ifn) - continue; + if (ifn) { + /* The flags and hwaddr could have changed */ + ifn->flags = ifp->flags; + ifn->hwlen = ifp->hwlen; + if (ifp->hwlen != 0) + memcpy(ifn->hwaddr, ifp->hwaddr, ifn->hwlen); + } else { + if (ifl) + ifl->next = ifp; + else + ifaces = ifp; + } init_state(ifp, 0, NULL); - if (ifl) - ifl->next = ifp; - else - ifaces = ifp; start_interface(ifp); } }