wireless: prepare bridge interfaces before passing them to the setup script
[project/netifd.git] / wireless.c
index fb66e7f..3c785f6 100644 (file)
@@ -76,6 +76,9 @@ vif_config_add_bridge(struct blob_buf *buf, const char *network, bool prepare)
        if (dev->type != &bridge_device_type)
                return;
 
        if (dev->type != &bridge_device_type)
                return;
 
+       if (dev->hotplug_ops && dev->hotplug_ops->prepare)
+               dev->hotplug_ops->prepare(dev);
+
        blobmsg_add_string(buf, "bridge", dev->ifname);
 }
 
        blobmsg_add_string(buf, "bridge", dev->ifname);
 }
 
@@ -338,6 +341,9 @@ __wireless_device_set_down(struct wireless_device *wdev)
 static void
 wireless_device_retry_setup(struct wireless_device *wdev)
 {
 static void
 wireless_device_retry_setup(struct wireless_device *wdev)
 {
+       if (wdev->state == IFS_TEARDOWN || wdev->state == IFS_DOWN || wdev->cancel)
+               return;
+
        if (--wdev->retry < 0)
                wdev->autostart = false;
 
        if (--wdev->retry < 0)
                wdev->autostart = false;