From 638c45755f5750a95a3c305a37b711bd7c580643 Mon Sep 17 00:00:00 2001 From: Dmitry Ivanov Date: Mon, 14 Sep 2015 12:53:14 +0300 Subject: [PATCH] Initialize wireless interface attributes in proper function Currently multicast to unicast feature may be configured for incorrect wireless interface in case of reconfiguration. Test case: Initial wireless configuration: config wifi-iface option mode ap option disabled 1 config wifi-iface option mode sta option disabled 0 config wifi-iface option mode ap option disabled 0 After reboot, multicast to unicast feature is configured for interface #3 (wlan0-1) only. Next, enable interface #1 and issue "wifi" command. Now, multicast to unicast feature is configured for interface #2 (wlan0) which is wrong. It should be configured for interfaces #1 and #3 only. This patch resolves this problem. Signed-off-by: Dmitry Ivanov Signed-off-by: Felix Fietkau --- wireless.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/wireless.c b/wireless.c index dcadfad..1f96089 100644 --- a/wireless.c +++ b/wireless.c @@ -559,6 +559,14 @@ wireless_interface_init_config(struct wireless_interface *vif) if ((cur = tb[VIF_ATTR_NETWORK])) vif->network = cur; + + cur = tb[VIF_ATTR_ISOLATE]; + if (cur) + vif->isolate = blobmsg_get_bool(cur); + + cur = tb[VIF_ATTR_MODE]; + if (cur) + vif->ap_mode = !strcmp(blobmsg_get_string(cur), "ap"); } static void @@ -715,14 +723,6 @@ void wireless_interface_create(struct wireless_device *wdev, struct blob_attr *d vif->section = section; vif->isolate = false; - cur = tb[VIF_ATTR_ISOLATE]; - if (cur && blobmsg_get_bool(cur)) - vif->isolate = blobmsg_get_bool(cur); - - cur = tb[VIF_ATTR_MODE]; - if (cur && !strcmp(blobmsg_get_string(cur), "ap")) - vif->ap_mode = true; - vlist_add(&wdev->interfaces, &vif->node, vif->name); } -- 2.11.0