hostapd: Make STA flags available through ctrl_iface STA command
[mech_eap.git] / src / ap / sta_info.c
index c4a0a86..4592cc8 100644 (file)
@@ -1011,3 +1011,33 @@ void ap_sta_disassoc_cb(struct hostapd_data *hapd, struct sta_info *sta)
        eloop_cancel_timeout(ap_sta_disassoc_cb_timeout, hapd, sta);
        ap_sta_disassoc_cb_timeout(hapd, sta);
 }
+
+
+int ap_sta_flags_txt(u32 flags, char *buf, size_t buflen)
+{
+       int res;
+
+       buf[0] = '\0';
+       res = os_snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+                         (flags & WLAN_STA_AUTH ? "[AUTH]" : ""),
+                         (flags & WLAN_STA_ASSOC ? "[ASSOC]" : ""),
+                         (flags & WLAN_STA_AUTHORIZED ? "[AUTHORIZED]" : ""),
+                         (flags & WLAN_STA_PENDING_POLL ? "[PENDING_POLL" :
+                          ""),
+                         (flags & WLAN_STA_SHORT_PREAMBLE ?
+                          "[SHORT_PREAMBLE]" : ""),
+                         (flags & WLAN_STA_PREAUTH ? "[PREAUTH]" : ""),
+                         (flags & WLAN_STA_WMM ? "[WMM]" : ""),
+                         (flags & WLAN_STA_MFP ? "[MFP]" : ""),
+                         (flags & WLAN_STA_WPS ? "[WPS]" : ""),
+                         (flags & WLAN_STA_MAYBE_WPS ? "[MAYBE_WPS]" : ""),
+                         (flags & WLAN_STA_WDS ? "[WDS]" : ""),
+                         (flags & WLAN_STA_NONERP ? "[NonERP]" : ""),
+                         (flags & WLAN_STA_WPS2 ? "[WPS2]" : ""),
+                         (flags & WLAN_STA_GAS ? "[GAS]" : ""),
+                         (flags & WLAN_STA_VHT ? "[VHT]" : ""),
+                         (flags & WLAN_STA_WNM_SLEEP_MODE ?
+                          "[WNM_SLEEP_MODE]" : ""));
+
+       return res;
+}