summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ubus.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/ubus.c b/ubus.c
index d8c6a4f..e563e1f 100644
--- a/ubus.c
+++ b/ubus.c
@@ -983,10 +983,16 @@ netifd_handle_wdev_up(struct ubus_context *ctx, struct ubus_object *obj,
int ret;
wdev = get_wdev(msg, &ret);
- if (!wdev)
+ if (ret == UBUS_STATUS_NOT_FOUND)
return ret;
- wireless_device_set_up(wdev);
+ if (wdev) {
+ wireless_device_set_up(wdev);
+ } else {
+ vlist_for_each_element(&wireless_devices, wdev, node)
+ wireless_device_set_up(wdev);
+ }
+
return 0;
}
@@ -999,10 +1005,16 @@ netifd_handle_wdev_down(struct ubus_context *ctx, struct ubus_object *obj,
int ret;
wdev = get_wdev(msg, &ret);
- if (!wdev)
+ if (ret == UBUS_STATUS_NOT_FOUND)
return ret;
- wireless_device_set_down(wdev);
+ if (wdev) {
+ wireless_device_set_down(wdev);
+ } else {
+ vlist_for_each_element(&wireless_devices, wdev, node)
+ wireless_device_set_down(wdev);
+ }
+
return 0;
}