]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/ap.c
Extend wpa_supplicant STA* ctrl_iface commands for mesh
[thirdparty/hostap.git] / wpa_supplicant / ap.c
index 8c3d3b8299e9c1d799dbbfbbd1808cd6d1632f82..64a01201786eccf17bd8f75e8392bc8bfdf9db98 100644 (file)
@@ -994,30 +994,45 @@ int wpas_ap_wps_nfc_report_handover(struct wpa_supplicant *wpa_s,
 int ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s,
                            char *buf, size_t buflen)
 {
-       if (wpa_s->ap_iface == NULL)
+       struct hostapd_data *hapd;
+
+       if (wpa_s->ap_iface)
+               hapd = wpa_s->ap_iface->bss[0];
+       else if (wpa_s->ifmsh)
+               hapd = wpa_s->ifmsh->bss[0];
+       else
                return -1;
-       return hostapd_ctrl_iface_sta_first(wpa_s->ap_iface->bss[0],
-                                           buf, buflen);
+       return hostapd_ctrl_iface_sta_first(hapd, buf, buflen);
 }
 
 
 int ap_ctrl_iface_sta(struct wpa_supplicant *wpa_s, const char *txtaddr,
                      char *buf, size_t buflen)
 {
-       if (wpa_s->ap_iface == NULL)
+       struct hostapd_data *hapd;
+
+       if (wpa_s->ap_iface)
+               hapd = wpa_s->ap_iface->bss[0];
+       else if (wpa_s->ifmsh)
+               hapd = wpa_s->ifmsh->bss[0];
+       else
                return -1;
-       return hostapd_ctrl_iface_sta(wpa_s->ap_iface->bss[0], txtaddr,
-                                     buf, buflen);
+       return hostapd_ctrl_iface_sta(hapd, txtaddr, buf, buflen);
 }
 
 
 int ap_ctrl_iface_sta_next(struct wpa_supplicant *wpa_s, const char *txtaddr,
                           char *buf, size_t buflen)
 {
-       if (wpa_s->ap_iface == NULL)
+       struct hostapd_data *hapd;
+
+       if (wpa_s->ap_iface)
+               hapd = wpa_s->ap_iface->bss[0];
+       else if (wpa_s->ifmsh)
+               hapd = wpa_s->ifmsh->bss[0];
+       else
                return -1;
-       return hostapd_ctrl_iface_sta_next(wpa_s->ap_iface->bss[0], txtaddr,
-                                          buf, buflen);
+       return hostapd_ctrl_iface_sta_next(hapd, txtaddr, buf, buflen);
 }