summaryrefslogtreecommitdiff
path: root/wireless.c
diff options
context:
space:
mode:
authorDmitry Ivanov <dmitrijs.ivanovs@ubnt.com>2015-09-14 12:53:14 +0300
committerFelix Fietkau <nbd@openwrt.org>2015-09-26 13:52:53 +0200
commit638c45755f5750a95a3c305a37b711bd7c580643 (patch)
treec5ee11a506d4dd6a26b84c891d24b6c850153654 /wireless.c
parenta0f133ed22dee4eccc05961f646e14ecc0514060 (diff)
downloadnetifd-638c45755f5750a95a3c305a37b711bd7c580643.tar.gz
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 <dima@ubnt.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'wireless.c')
-rw-r--r--wireless.c16
1 files 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);
}