]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Don't pass "dhcpcd $iface" to discover_interfaces so our
authorRoy Marples <roy@marples.name>
Wed, 2 Sep 2009 20:10:23 +0000 (20:10 +0000)
committerRoy Marples <roy@marples.name>
Wed, 2 Sep 2009 20:10:23 +0000 (20:10 +0000)
denyinterfaces config option works for hotplugged interfaces.

dhcpcd.c

index 716b5ef67a604f37daa62d162be3330c9a24e346..548f0152953bd22e3eee37594a7608aca163925e 100644 (file)
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -1187,7 +1187,6 @@ void
 handle_interface(int action, const char *ifname)
 {
        struct interface *ifs, *ifp, *ifn, *ifl = NULL;
-       const char * const argv[] = { "dhcpcd", ifname };
        int i;
 
        if (action == -1) {
@@ -1209,23 +1208,24 @@ handle_interface(int action, const char *ifname)
                        return;
        }
 
-       if ((ifs = discover_interfaces(2, UNCONST(argv)))) {
-               for (ifp = ifs; ifp; ifp = ifp->next) {
-                       /* Check if we already have the interface */
-                       for (ifn = ifaces; ifn; ifn = ifn->next) {
-                               if (strcmp(ifn->name, ifp->name) == 0)
-                                       break;
-                               ifl = ifn;
-                       }
-                       if (ifn)
-                               continue;
-                       init_state(ifp, 2, UNCONST(argv));
-                       if (ifl)
-                               ifl->next = ifp;
-                       else
-                               ifaces = ifp;
-                       start_interface(ifp);
+       ifs = discover_interfaces(0, NULL);
+       for (ifp = ifs; ifp; ifp = ifp->next) {
+               if (strcmp(ifp->name, ifname) != 0)
+                       continue;
+               /* Check if we already have the interface */
+               for (ifn = ifaces; ifn; ifn = ifn->next) {
+                       if (strcmp(ifn->name, ifp->name) == 0)
+                               break;
+                       ifl = ifn;
                }
+               if (ifn)
+                       continue;
+               init_state(ifp, 0, NULL);
+               if (ifl)
+                       ifl->next = ifp;
+               else
+                       ifaces = ifp;
+               start_interface(ifp);
        }
 }