| 123456789101112131415161718192021222324252627282930313233 |
- From: Felix Fietkau <[email protected]>
- Date: Wed, 20 Oct 2021 21:13:10 +0200
- Subject: [PATCH] hostpad: fix a race condition on adding AP mode wds sta
- interfaces
- Both hostapd and netifd attempt to add a VLAN device to a bridge.
- Depending on which one wins the race, bridge vlan settings might be incomplete,
- or hostapd might run into an error and refuse to service the client.
- Fix this by preventing hostapd from adding interfaces to the bridge and
- instead rely entirely on netifd handling this properly
- --- a/hostapd/config_file.c
- +++ b/hostapd/config_file.c
- @@ -2241,6 +2241,8 @@ static int hostapd_config_fill(struct ho
- sizeof(conf->bss[0]->iface));
- } else if (os_strcmp(buf, "bridge") == 0) {
- os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
- + if (!bss->wds_bridge[0])
- + os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge));
- } else if (os_strcmp(buf, "bridge_hairpin") == 0) {
- bss->bridge_hairpin = atoi(pos);
- } else if (os_strcmp(buf, "vlan_bridge") == 0) {
- --- a/src/ap/ap_drv_ops.c
- +++ b/src/ap/ap_drv_ops.c
- @@ -390,8 +390,6 @@ int hostapd_set_wds_sta(struct hostapd_d
- return -1;
- if (hapd->conf->wds_bridge[0])
- bridge = hapd->conf->wds_bridge;
- - else if (hapd->conf->bridge[0])
- - bridge = hapd->conf->bridge;
- return hapd->driver->set_wds_sta(hapd->drv_priv, addr, aid, val,
- bridge, ifname_wds);
- }
|