| --- a/hostapd/Makefile |
| +++ b/hostapd/Makefile |
| @@ -221,6 +221,9 @@ endif |
| ifdef CONFIG_NO_CTRL_IFACE |
| CFLAGS += -DCONFIG_NO_CTRL_IFACE |
| else |
| +ifdef CONFIG_CTRL_IFACE_MIB |
| +CFLAGS += -DCONFIG_CTRL_IFACE_MIB |
| +endif |
| ifeq ($(CONFIG_CTRL_IFACE), udp) |
| CFLAGS += -DCONFIG_CTRL_IFACE_UDP |
| else |
| --- a/hostapd/ctrl_iface.c |
| +++ b/hostapd/ctrl_iface.c |
| @@ -3314,6 +3314,7 @@ static int hostapd_ctrl_iface_receive_pr |
| reply_size); |
| } else if (os_strcmp(buf, "STATUS-DRIVER") == 0) { |
| reply_len = hostapd_drv_status(hapd, reply, reply_size); |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| } else if (os_strcmp(buf, "MIB") == 0) { |
| reply_len = ieee802_11_get_mib(hapd, reply, reply_size); |
| if (reply_len >= 0) { |
| @@ -3355,6 +3356,7 @@ static int hostapd_ctrl_iface_receive_pr |
| } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { |
| reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply, |
| reply_size); |
| +#endif |
| } else if (os_strcmp(buf, "ATTACH") == 0) { |
| if (hostapd_ctrl_iface_attach(hapd, from, fromlen, NULL)) |
| reply_len = -1; |
| --- a/wpa_supplicant/Makefile |
| +++ b/wpa_supplicant/Makefile |
| @@ -983,6 +983,9 @@ ifdef CONFIG_FILS |
| OBJS += ../src/ap/fils_hlp.o |
| endif |
| ifdef CONFIG_CTRL_IFACE |
| +ifdef CONFIG_CTRL_IFACE_MIB |
| +CFLAGS += -DCONFIG_CTRL_IFACE_MIB |
| +endif |
| OBJS += ../src/ap/ctrl_iface_ap.o |
| endif |
| |
| --- a/wpa_supplicant/ctrl_iface.c |
| +++ b/wpa_supplicant/ctrl_iface.c |
| @@ -2326,7 +2326,7 @@ static int wpa_supplicant_ctrl_iface_sta |
| pos += ret; |
| } |
| |
| -#ifdef CONFIG_AP |
| +#if defined(CONFIG_AP) && defined(CONFIG_CTRL_IFACE_MIB) |
| if (wpa_s->ap_iface) { |
| pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos, |
| end - pos, |
| @@ -12087,6 +12087,7 @@ char * wpa_supplicant_ctrl_iface_process |
| reply_len = -1; |
| } else if (os_strncmp(buf, "NOTE ", 5) == 0) { |
| wpa_printf(MSG_INFO, "NOTE: %s", buf + 5); |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| } else if (os_strcmp(buf, "MIB") == 0) { |
| reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size); |
| if (reply_len >= 0) { |
| @@ -12099,6 +12100,7 @@ char * wpa_supplicant_ctrl_iface_process |
| reply_size - reply_len); |
| #endif /* CONFIG_MACSEC */ |
| } |
| +#endif |
| } else if (os_strncmp(buf, "STATUS", 6) == 0) { |
| reply_len = wpa_supplicant_ctrl_iface_status( |
| wpa_s, buf + 6, reply, reply_size); |
| @@ -12587,6 +12589,7 @@ char * wpa_supplicant_ctrl_iface_process |
| reply_len = wpa_supplicant_ctrl_iface_bss( |
| wpa_s, buf + 4, reply, reply_size); |
| #ifdef CONFIG_AP |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| } else if (os_strcmp(buf, "STA-FIRST") == 0) { |
| reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size); |
| } else if (os_strncmp(buf, "STA ", 4) == 0) { |
| @@ -12595,12 +12598,15 @@ char * wpa_supplicant_ctrl_iface_process |
| } else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) { |
| reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply, |
| reply_size); |
| +#endif |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| } else if (os_strncmp(buf, "DEAUTHENTICATE ", 15) == 0) { |
| if (ap_ctrl_iface_sta_deauthenticate(wpa_s, buf + 15)) |
| reply_len = -1; |
| } else if (os_strncmp(buf, "DISASSOCIATE ", 13) == 0) { |
| if (ap_ctrl_iface_sta_disassociate(wpa_s, buf + 13)) |
| reply_len = -1; |
| +#endif |
| } else if (os_strncmp(buf, "CHAN_SWITCH ", 12) == 0) { |
| if (ap_ctrl_iface_chanswitch(wpa_s, buf + 12)) |
| reply_len = -1; |
| --- a/src/ap/ctrl_iface_ap.c |
| +++ b/src/ap/ctrl_iface_ap.c |
| @@ -26,6 +26,26 @@ |
| #include "taxonomy.h" |
| #include "wnm_ap.h" |
| |
| +static const char * hw_mode_str(enum hostapd_hw_mode mode) |
| +{ |
| + switch (mode) { |
| + case HOSTAPD_MODE_IEEE80211B: |
| + return "b"; |
| + case HOSTAPD_MODE_IEEE80211G: |
| + return "g"; |
| + case HOSTAPD_MODE_IEEE80211A: |
| + return "a"; |
| + case HOSTAPD_MODE_IEEE80211AD: |
| + return "ad"; |
| + case HOSTAPD_MODE_IEEE80211ANY: |
| + return "any"; |
| + case NUM_HOSTAPD_MODES: |
| + return "invalid"; |
| + } |
| + return "unknown"; |
| +} |
| + |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| |
| static size_t hostapd_write_ht_mcs_bitmask(char *buf, size_t buflen, |
| size_t curr_len, const u8 *mcs_set) |
| @@ -212,26 +232,6 @@ static const char * timeout_next_str(int |
| } |
| |
| |
| -static const char * hw_mode_str(enum hostapd_hw_mode mode) |
| -{ |
| - switch (mode) { |
| - case HOSTAPD_MODE_IEEE80211B: |
| - return "b"; |
| - case HOSTAPD_MODE_IEEE80211G: |
| - return "g"; |
| - case HOSTAPD_MODE_IEEE80211A: |
| - return "a"; |
| - case HOSTAPD_MODE_IEEE80211AD: |
| - return "ad"; |
| - case HOSTAPD_MODE_IEEE80211ANY: |
| - return "any"; |
| - case NUM_HOSTAPD_MODES: |
| - return "invalid"; |
| - } |
| - return "unknown"; |
| -} |
| - |
| - |
| static int hostapd_ctrl_iface_sta_mib(struct hostapd_data *hapd, |
| struct sta_info *sta, |
| char *buf, size_t buflen) |
| @@ -493,6 +493,7 @@ int hostapd_ctrl_iface_sta_next(struct h |
| return hostapd_ctrl_iface_sta_mib(hapd, sta->next, buf, buflen); |
| } |
| |
| +#endif |
| |
| #ifdef CONFIG_P2P_MANAGER |
| static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype, |
| @@ -884,12 +885,12 @@ int hostapd_ctrl_iface_status(struct hos |
| return len; |
| len += ret; |
| } |
| - |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| if (iface->conf->ieee80211n && !hapd->conf->disable_11n && mode) { |
| len = hostapd_write_ht_mcs_bitmask(buf, buflen, len, |
| mode->mcs_set); |
| } |
| - |
| +#endif /* CONFIG_CTRL_IFACE_MIB */ |
| if (iface->current_rates && iface->num_rates) { |
| ret = os_snprintf(buf + len, buflen - len, "supported_rates="); |
| if (os_snprintf_error(buflen - len, ret)) |
| --- a/src/ap/ieee802_1x.c |
| +++ b/src/ap/ieee802_1x.c |
| @@ -2834,6 +2834,7 @@ static const char * bool_txt(bool val) |
| return val ? "TRUE" : "FALSE"; |
| } |
| |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| |
| int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen) |
| { |
| @@ -3020,6 +3021,7 @@ int ieee802_1x_get_mib_sta(struct hostap |
| return len; |
| } |
| |
| +#endif |
| |
| #ifdef CONFIG_HS20 |
| static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx) |
| --- a/src/ap/wpa_auth.c |
| +++ b/src/ap/wpa_auth.c |
| @@ -5328,6 +5328,7 @@ static const char * wpa_bool_txt(int val |
| return val ? "TRUE" : "FALSE"; |
| } |
| |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| |
| #define RSN_SUITE "%02x-%02x-%02x-%d" |
| #define RSN_SUITE_ARG(s) \ |
| @@ -5480,7 +5481,7 @@ int wpa_get_mib_sta(struct wpa_state_mac |
| |
| return len; |
| } |
| - |
| +#endif |
| |
| void wpa_auth_countermeasures_start(struct wpa_authenticator *wpa_auth) |
| { |
| --- a/src/rsn_supp/wpa.c |
| +++ b/src/rsn_supp/wpa.c |
| @@ -3834,6 +3834,8 @@ static u32 wpa_key_mgmt_suite(struct wpa |
| } |
| |
| |
| +#ifdef CONFIG_CTRL_IFACE_MIB |
| + |
| #define RSN_SUITE "%02x-%02x-%02x-%d" |
| #define RSN_SUITE_ARG(s) \ |
| ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff |
| @@ -3915,6 +3917,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch |
| |
| return (int) len; |
| } |
| +#endif |
| #endif /* CONFIG_CTRL_IFACE */ |
| |
| |
| --- a/wpa_supplicant/ap.c |
| +++ b/wpa_supplicant/ap.c |
| @@ -1499,7 +1499,7 @@ int wpas_ap_wps_nfc_report_handover(stru |
| #endif /* CONFIG_WPS */ |
| |
| |
| -#ifdef CONFIG_CTRL_IFACE |
| +#if defined(CONFIG_CTRL_IFACE) && defined(CONFIG_CTRL_IFACE_MIB) |
| |
| int ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s, |
| char *buf, size_t buflen) |