| 123456789101112131415161718192021222324252627282930313233343536373839 |
- --- 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 */
-
|