Files
wlan-ap/feeds/ipq95xx/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch
John Crispin dcdbb4f091 ipq95xx/hostapd: update to ath12.3-cs
Signed-off-by: John Crispin <john@phrozen.org>
2024-02-28 18:56:21 +01:00

53 lines
1.6 KiB
Diff

Index: hostapd-2023-02-21-ath12.3-cs/wpa_supplicant/ap.c
===================================================================
--- hostapd-2023-02-21-ath12.3-cs.orig/wpa_supplicant/ap.c
+++ hostapd-2023-02-21-ath12.3-cs/wpa_supplicant/ap.c
@@ -1852,25 +1852,35 @@ int ap_switch_channel(struct wpa_supplic
#ifdef CONFIG_CTRL_IFACE
-int ap_ctrl_iface_chanswitch(struct wpa_supplicant *wpa_s, const char *pos)
+
+static int __ap_ctrl_iface_chanswitch(struct hostapd_iface *iface,
+ struct csa_settings *settings)
{
- struct csa_settings settings;
- int ret;
+#ifdef NEED_AP_MLME
+ if (!iface || !iface->bss[0])
+ return 0;
+
+ return hostapd_switch_channel(iface->bss[0], settings);
+#else
+ return -1;
+#endif
+}
- if (wpa_s->ifmsh && wpa_s->ifmsh->conf->disable_csa_dfs == 1) {
- wpa_printf(MSG_DEBUG, "wpa chanswitch interface %s :"
- " cancelling radar handling timeout",
- wpa_s->ifmsh->conf->bss[0]->iface);
- eloop_cancel_timeout(hostapd_dfs_radar_handling_timeout,
- wpa_s->ifmsh, NULL);
- }
- ret = hostapd_parse_csa_settings(pos, &settings);
+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 (!(wpa_s->ap_iface && wpa_s->ap_iface->bss[0]) &&
+ !(wpa_s->ifmsh && wpa_s->ifmsh->bss[0]))
+ return -1;
+ ret = __ap_ctrl_iface_chanswitch(wpa_s->ap_iface, &settings);
if (ret)
return ret;
- return ap_switch_channel(wpa_s, &settings);
+ return __ap_ctrl_iface_chanswitch(wpa_s->ifmsh, &settings);
}
#endif /* CONFIG_CTRL_IFACE */