diff options
author | Dmitry Ivanov <dmitrijs.ivanovs@ubnt.com> | 2015-09-14 12:53:14 +0300 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-09-26 13:52:53 +0200 |
commit | 638c45755f5750a95a3c305a37b711bd7c580643 (patch) | |
tree | c5ee11a506d4dd6a26b84c891d24b6c850153654 /wireless.c | |
parent | a0f133ed22dee4eccc05961f646e14ecc0514060 (diff) |
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.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -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); } |