diff options
author | Felix Fietkau <nbd@nbd.name> | 2020-11-18 13:38:17 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-11-18 13:38:19 +0100 |
commit | 351d690f1a09e062ef951ac406ee571e1f1fe3e6 (patch) | |
tree | a142451fac10848da5970c65ee3ac9ce92e0f2a9 /ubus.c | |
parent | 4a41135750d97e06d1f6d808a9d24bb4b472aca4 (diff) | |
download | netifd-351d690f1a09e062ef951ac406ee571e1f1fe3e6.tar.gz |
wireless: fix passing bridge name for vlan hotplug pass-through
When preparing the interface for hotplug add, pass the bridge
device back to the caller, since it may not match the original device
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'ubus.c')
-rw-r--r-- | ubus.c | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -986,19 +986,27 @@ netifd_handle_iface_prepare(struct ubus_context *ctx, struct ubus_object *obj, struct blob_attr *msg) { struct interface *iface; - struct device *dev; + struct device *dev, *bridge_dev = NULL; const struct device_hotplug_ops *ops; iface = container_of(obj, struct interface, ubus); dev = iface->main_dev.dev; if (!dev) - return 0; + goto out; ops = dev->hotplug_ops; if (!ops) - return 0; + goto out; + + ops->prepare(dev, &bridge_dev); + +out: + blob_buf_init(&b, 0); + if (bridge_dev) + blobmsg_add_string(&b, "bridge", bridge_dev->ifname); + ubus_send_reply(ctx, req, b.head); - return ops->prepare(dev); + return 0; } static int |