Manually refreshed: 010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch 110-mbedtls-TLS-crypto-option-initial-port.patch 140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch 301-mesh-noscan.patch 601-ucode_support.patch 780-Implement-APuP-Access-Point-Micro-Peering.patch Dropped upstreamed: 330-nl80211_fix_set_freq.patch 804-hostapd-Fix-clearing-up-settings-for-color-switch.patch Automatically rebased all other patches. Tested-by: Rany Hany <rany_hany@riseup.net> # ramips_mt7621/asus_rt-ax53u, mt7622/xiaomi_redmi-router-ax6s Tested-by: Andre Heider <a.heider@gmail.com> # filogic/openwrt_one, ramips_mt7621/netgear_wac124 Tested-by: Agustin Lorenzo <agustin.lorenzo@thinco.es> # qualcommax/ipq807x (AX3600) Tested-by: Daniel Pawlik <pawlik.dan@gmail.com> # BPi-R4 with mt7996 Signed-off-by: Rany Hany <rany_hany@riseup.net>
48 lines
1.1 KiB
Diff
48 lines
1.1 KiB
Diff
From: Felix Fietkau <nbd@nbd.name>
|
|
Date: Mon, 28 Jan 2019 21:36:44 +0100
|
|
Subject: [PATCH] wpa_supplicant: fix calling channel switch via wpa_cli on
|
|
mesh interfaces
|
|
|
|
--- a/wpa_supplicant/ap.c
|
|
+++ b/wpa_supplicant/ap.c
|
|
@@ -1849,17 +1849,37 @@ int ap_switch_channel(struct wpa_supplic
|
|
|
|
|
|
#ifdef CONFIG_CTRL_IFACE
|
|
+
|
|
+static int __ap_ctrl_iface_chanswitch(struct hostapd_iface *iface,
|
|
+ struct csa_settings *settings)
|
|
+{
|
|
+#ifdef NEED_AP_MLME
|
|
+ if (!iface || !iface->bss[0])
|
|
+ return 0;
|
|
+
|
|
+ return hostapd_switch_channel(iface->bss[0], settings);
|
|
+#else
|
|
+ return -1;
|
|
+#endif
|
|
+}
|
|
+
|
|
+
|
|
int ap_ctrl_iface_chanswitch(struct wpa_supplicant *wpa_s, const char *pos)
|
|
{
|
|
struct csa_settings settings;
|
|
int ret = hostapd_parse_csa_settings(pos, &settings);
|
|
|
|
- if (ret)
|
|
- return ret;
|
|
+ if (!(wpa_s->ap_iface && wpa_s->ap_iface->bss[0]) &&
|
|
+ !(wpa_s->ifmsh && wpa_s->ifmsh->bss[0]))
|
|
+ return -1;
|
|
|
|
settings.link_id = -1;
|
|
|
|
- return ap_switch_channel(wpa_s, &settings);
|
|
+ ret = __ap_ctrl_iface_chanswitch(wpa_s->ap_iface, &settings);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
+ return __ap_ctrl_iface_chanswitch(wpa_s->ifmsh, &settings);
|
|
}
|
|
#endif /* CONFIG_CTRL_IFACE */
|
|
|