Skip to content
Permalink
Browse files

wpa_supplicant: fix calling channel switch via wpa_cli on mesh interf…

…aces

Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information...
nbd168 committed Jan 28, 2019
1 parent ae6b581 commit 4443804b545f19b12571cb8b532fa55926e3e3f3
Showing with 39 additions and 0 deletions.
  1. +39 −0 package/network/services/hostapd/patches/341-mesh-ctrl-iface-channel-switch.patch
@@ -0,0 +1,39 @@
--- a/wpa_supplicant/ap.c
+++ b/wpa_supplicant/ap.c
@@ -1363,15 +1363,35 @@ 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 (!(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 */

0 comments on commit 4443804

Please sign in to comment.
You can’t perform that action at this time.