984af95bd0e115538ce46c6597b3a32f0e63c791
[openwrt/svn-archive/archive.git] / package / hostapd / patches / 320-wds_fix.patch
1 --- a/src/drivers/driver_nl80211.c
2 +++ b/src/drivers/driver_nl80211.c
3 @@ -4987,9 +4987,11 @@ static int i802_set_wds_sta(void *priv,
4 wpa_printf(MSG_DEBUG, "nl80211: Set WDS STA addr=" MACSTR
5 " aid=%d val=%d name=%s", MAC2STR(addr), aid, val, name);
6 if (val) {
7 - if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN,
8 + if (!if_nametoindex(name)) {
9 + if (nl80211_create_iface(drv, name, NL80211_IFTYPE_AP_VLAN,
10 NULL, 1) < 0)
11 - return -1;
12 + return -1;
13 + }
14 linux_set_iface_flags(drv->ioctl_sock, name, 1);
15 return i802_set_sta_vlan(priv, addr, name, 0);
16 } else {
17 --- a/src/ap/ieee802_11.c
18 +++ b/src/ap/ieee802_11.c
19 @@ -1659,6 +1659,9 @@ static void handle_assoc_cb(struct hosta
20 "Could not add STA to kernel driver");
21 }
22
23 + if (sta->flags & WLAN_STA_WDS)
24 + hapd->drv.set_wds_sta(hapd, sta->addr, sta->aid, 1);
25 +
26 if (sta->eapol_sm == NULL) {
27 /*
28 * This STA does not use RADIUS server for EAP authentication,