![Daniel Golle](/assets/img/avatar_default.png)
Drop outdated and by now broken patchset originally supplied by Peter Oh in August 2018 but never merged upstream. Instead add the more promissing rework recently submitted by Markus Theil who picked up Peter's patchset, fixed and completed it and added support for HE (802.11ax) in mesh mode. This is only compile tested and needs some real-life testing. Fixes: FS#3214 Fixes:167028b750
("hostapd: Update to version 2.9 (2019-08-08)") Fixes:0a3ec87a66
("hostapd: update to latest Git hostap_2_9-1238-gdd2daf0848ed") Fixes:017320ead3
("hostapd: bring back mesh patches") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
194 lines
5.7 KiB
Diff
194 lines
5.7 KiB
Diff
--- a/hostapd/Makefile
|
|
+++ b/hostapd/Makefile
|
|
@@ -226,6 +226,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
|
|
@@ -3370,6 +3370,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) {
|
|
@@ -3411,6 +3412,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
|
|
@@ -952,6 +952,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
|
|
@@ -2267,7 +2267,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,
|
|
@@ -10366,6 +10366,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) {
|
|
@@ -10378,6 +10379,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);
|
|
@@ -10862,6 +10864,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) {
|
|
@@ -10870,12 +10873,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
|
|
@@ -25,6 +25,7 @@
|
|
#include "mbo_ap.h"
|
|
#include "taxonomy.h"
|
|
|
|
+#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)
|
|
@@ -451,6 +452,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,
|
|
@@ -806,12 +808,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
|
|
@@ -2711,6 +2711,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)
|
|
{
|
|
@@ -2897,6 +2898,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
|
|
@@ -4451,6 +4451,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) \
|
|
@@ -4601,7 +4602,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
|
|
@@ -2728,6 +2728,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
|
|
@@ -2809,6 +2811,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
|
|
@@ -1324,7 +1324,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)
|