hostapd: update to git HEAD of 2018-05-21, allow build against wolfssl
Support for building wpa_supplicant/hostapd against wolfssl has been added upstream recently, add build option to allow users using it. Signed-off-by: Daniel Golle <daniel@makrotopia.org>v19.07.3_mercusys_ac12_duma
parent
51740777fb
commit
69f544937f
@ -0,0 +1,185 @@
|
||||
From 8a6a7112e5b1391018531f6b6c317f8870e0fcb6 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Thu, 3 May 2018 13:12:28 +0200
|
||||
Subject: [PATCH 1/2] Revert "wpa_supplicant: Increase authentication timeout
|
||||
if CAC is started"
|
||||
|
||||
This reverts commit 37547ad63c9df61ce6899675028594da2527efef.
|
||||
---
|
||||
wpa_supplicant/events.c | 95 ++++---------------------------
|
||||
wpa_supplicant/wpa_supplicant.c | 20 -------
|
||||
wpa_supplicant/wpa_supplicant_i.h | 3 -
|
||||
3 files changed, 10 insertions(+), 108 deletions(-)
|
||||
|
||||
--- a/wpa_supplicant/events.c
|
||||
+++ b/wpa_supplicant/events.c
|
||||
@@ -3776,81 +3776,6 @@ static void wpa_supplicant_event_port_au
|
||||
}
|
||||
|
||||
|
||||
-static unsigned int wpas_event_cac_ms(const struct wpa_supplicant *wpa_s,
|
||||
- int freq)
|
||||
-{
|
||||
- size_t i;
|
||||
- int j;
|
||||
-
|
||||
- for (i = 0; i < wpa_s->hw.num_modes; i++) {
|
||||
- const struct hostapd_hw_modes *mode = &wpa_s->hw.modes[i];
|
||||
-
|
||||
- for (j = 0; j < mode->num_channels; j++) {
|
||||
- const struct hostapd_channel_data *chan;
|
||||
-
|
||||
- chan = &mode->channels[j];
|
||||
- if (chan->freq == freq)
|
||||
- return chan->dfs_cac_ms;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-static void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
-{
|
||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||
- if (wpa_s->ap_iface) {
|
||||
- wpas_ap_event_dfs_cac_started(wpa_s, radar);
|
||||
- } else
|
||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||
- {
|
||||
- unsigned int cac_time = wpas_event_cac_ms(wpa_s, radar->freq);
|
||||
-
|
||||
- cac_time /= 1000; /* convert from ms to sec */
|
||||
- if (!cac_time)
|
||||
- cac_time = 10 * 60; /* max timeout: 10 minutes */
|
||||
-
|
||||
- /* Restart auth timeout: CAC time added to initial timeout */
|
||||
- wpas_auth_timeout_restart(wpa_s, cac_time);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
-static void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
-{
|
||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||
- if (wpa_s->ap_iface) {
|
||||
- wpas_ap_event_dfs_cac_finished(wpa_s, radar);
|
||||
- } else
|
||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||
- {
|
||||
- /* Restart auth timeout with original value after CAC is
|
||||
- * finished */
|
||||
- wpas_auth_timeout_restart(wpa_s, 0);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
-static void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
-{
|
||||
-#if defined(NEED_AP_MLME) && defined(CONFIG_AP)
|
||||
- if (wpa_s->ap_iface) {
|
||||
- wpas_ap_event_dfs_cac_aborted(wpa_s, radar);
|
||||
- } else
|
||||
-#endif /* NEED_AP_MLME && CONFIG_AP */
|
||||
- {
|
||||
- /* Restart auth timeout with original value after CAC is
|
||||
- * aborted */
|
||||
- wpas_auth_timeout_restart(wpa_s, 0);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
static void wpa_supplicant_event_assoc_auth(struct wpa_supplicant *wpa_s,
|
||||
union wpa_event_data *data)
|
||||
{
|
||||
@@ -4298,25 +4223,25 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
wpas_ap_event_dfs_radar_detected(wpa_s,
|
||||
&data->dfs_event);
|
||||
break;
|
||||
- case EVENT_DFS_NOP_FINISHED:
|
||||
- if (data)
|
||||
- wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
||||
- &data->dfs_event);
|
||||
- break;
|
||||
-#endif /* NEED_AP_MLME */
|
||||
-#endif /* CONFIG_AP */
|
||||
case EVENT_DFS_CAC_STARTED:
|
||||
if (data)
|
||||
- wpas_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
||||
+ wpas_ap_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_CAC_FINISHED:
|
||||
if (data)
|
||||
- wpas_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
||||
+ wpas_ap_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_CAC_ABORTED:
|
||||
if (data)
|
||||
- wpas_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
||||
+ wpas_ap_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
||||
+ break;
|
||||
+ case EVENT_DFS_NOP_FINISHED:
|
||||
+ if (data)
|
||||
+ wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
||||
+ &data->dfs_event);
|
||||
break;
|
||||
+#endif /* NEED_AP_MLME */
|
||||
+#endif /* CONFIG_AP */
|
||||
case EVENT_RX_MGMT: {
|
||||
u16 fc, stype;
|
||||
const struct ieee80211_mgmt *mgmt;
|
||||
--- a/wpa_supplicant/wpa_supplicant.c
|
||||
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||
@@ -243,30 +243,10 @@ void wpa_supplicant_req_auth_timeout(str
|
||||
wpa_dbg(wpa_s, MSG_DEBUG, "Setting authentication timeout: %d sec "
|
||||
"%d usec", sec, usec);
|
||||
eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
|
||||
- wpa_s->last_auth_timeout_sec = sec;
|
||||
eloop_register_timeout(sec, usec, wpa_supplicant_timeout, wpa_s, NULL);
|
||||
}
|
||||
|
||||
|
||||
-/*
|
||||
- * wpas_auth_timeout_restart - Restart and change timeout for authentication
|
||||
- * @wpa_s: Pointer to wpa_supplicant data
|
||||
- * @sec_diff: difference in seconds applied to original timeout value
|
||||
- */
|
||||
-void wpas_auth_timeout_restart(struct wpa_supplicant *wpa_s, int sec_diff)
|
||||
-{
|
||||
- int new_sec = wpa_s->last_auth_timeout_sec + sec_diff;
|
||||
-
|
||||
- if (eloop_is_timeout_registered(wpa_supplicant_timeout, wpa_s, NULL)) {
|
||||
- wpa_dbg(wpa_s, MSG_DEBUG,
|
||||
- "Authentication timeout restart: %d sec", new_sec);
|
||||
- eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
|
||||
- eloop_register_timeout(new_sec, 0, wpa_supplicant_timeout,
|
||||
- wpa_s, NULL);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-
|
||||
/**
|
||||
* wpa_supplicant_cancel_auth_timeout - Cancel authentication timeout
|
||||
* @wpa_s: Pointer to wpa_supplicant data
|
||||
--- a/wpa_supplicant/wpa_supplicant_i.h
|
||||
+++ b/wpa_supplicant/wpa_supplicant_i.h
|
||||
@@ -1182,8 +1182,6 @@ struct wpa_supplicant {
|
||||
/* RIC elements for FT protocol */
|
||||
struct wpabuf *ric_ies;
|
||||
|
||||
- int last_auth_timeout_sec;
|
||||
-
|
||||
#ifdef CONFIG_DPP
|
||||
struct dl_list dpp_bootstrap; /* struct dpp_bootstrap_info */
|
||||
struct dl_list dpp_configurator; /* struct dpp_configurator */
|
||||
@@ -1258,7 +1256,6 @@ void wpa_supplicant_initiate_eapol(struc
|
||||
void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr);
|
||||
void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
|
||||
int sec, int usec);
|
||||
-void wpas_auth_timeout_restart(struct wpa_supplicant *wpa_s, int sec_diff);
|
||||
void wpa_supplicant_reinit_autoscan(struct wpa_supplicant *wpa_s);
|
||||
void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
|
||||
enum wpa_states state);
|
@ -0,0 +1,132 @@
|
||||
From 0d4900ccd1c7ec5c5ffecf5040f9c07a6a32deef Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Thu, 3 May 2018 13:12:35 +0200
|
||||
Subject: [PATCH 2/2] Revert "wpa_supplicant: Rename wpas_event_*() to
|
||||
wpas_ap_event_*()"
|
||||
|
||||
This reverts commit 2dd5fbbff884af488870a37e339b4817c83954de.
|
||||
---
|
||||
wpa_supplicant/ap.c | 20 ++++++++++----------
|
||||
wpa_supplicant/ap.h | 18 +++++++++---------
|
||||
wpa_supplicant/events.c | 13 ++++++-------
|
||||
3 files changed, 25 insertions(+), 26 deletions(-)
|
||||
|
||||
--- a/wpa_supplicant/ap.c
|
||||
+++ b/wpa_supplicant/ap.c
|
||||
@@ -1537,8 +1537,8 @@ int wpas_ap_pmksa_cache_add_external(str
|
||||
|
||||
|
||||
#ifdef NEED_AP_MLME
|
||||
-void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
+void wpas_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar)
|
||||
{
|
||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||
return;
|
||||
@@ -1550,8 +1550,8 @@ void wpas_ap_event_dfs_radar_detected(st
|
||||
}
|
||||
|
||||
|
||||
-void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
+void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar)
|
||||
{
|
||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||
return;
|
||||
@@ -1562,8 +1562,8 @@ void wpas_ap_event_dfs_cac_started(struc
|
||||
}
|
||||
|
||||
|
||||
-void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
+void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar)
|
||||
{
|
||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||
return;
|
||||
@@ -1574,8 +1574,8 @@ void wpas_ap_event_dfs_cac_finished(stru
|
||||
}
|
||||
|
||||
|
||||
-void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
+void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar)
|
||||
{
|
||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||
return;
|
||||
@@ -1586,8 +1586,8 @@ void wpas_ap_event_dfs_cac_aborted(struc
|
||||
}
|
||||
|
||||
|
||||
-void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar)
|
||||
+void wpas_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar)
|
||||
{
|
||||
if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0])
|
||||
return;
|
||||
--- a/wpa_supplicant/ap.h
|
||||
+++ b/wpa_supplicant/ap.h
|
||||
@@ -89,16 +89,16 @@ int wpas_ap_pmksa_cache_list_mesh(struct
|
||||
char *buf, size_t len);
|
||||
int wpas_ap_pmksa_cache_add_external(struct wpa_supplicant *wpa_s, char *cmd);
|
||||
|
||||
-void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar);
|
||||
-void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||
+void wpas_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
|
||||
struct dfs_event *radar);
|
||||
-void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar);
|
||||
-void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar);
|
||||
-void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
||||
- struct dfs_event *radar);
|
||||
+void wpas_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar);
|
||||
+void wpas_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar);
|
||||
+void wpas_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar);
|
||||
+void wpas_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
|
||||
+ struct dfs_event *radar);
|
||||
|
||||
void ap_periodic(struct wpa_supplicant *wpa_s);
|
||||
|
||||
--- a/wpa_supplicant/events.c
|
||||
+++ b/wpa_supplicant/events.c
|
||||
@@ -4220,25 +4220,24 @@ void wpa_supplicant_event(void *ctx, enu
|
||||
#ifdef NEED_AP_MLME
|
||||
case EVENT_DFS_RADAR_DETECTED:
|
||||
if (data)
|
||||
- wpas_ap_event_dfs_radar_detected(wpa_s,
|
||||
- &data->dfs_event);
|
||||
+ wpas_event_dfs_radar_detected(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_CAC_STARTED:
|
||||
if (data)
|
||||
- wpas_ap_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
||||
+ wpas_event_dfs_cac_started(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_CAC_FINISHED:
|
||||
if (data)
|
||||
- wpas_ap_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
||||
+ wpas_event_dfs_cac_finished(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_CAC_ABORTED:
|
||||
if (data)
|
||||
- wpas_ap_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
||||
+ wpas_event_dfs_cac_aborted(wpa_s, &data->dfs_event);
|
||||
break;
|
||||
case EVENT_DFS_NOP_FINISHED:
|
||||
if (data)
|
||||
- wpas_ap_event_dfs_cac_nop_finished(wpa_s,
|
||||
- &data->dfs_event);
|
||||
+ wpas_event_dfs_cac_nop_finished(wpa_s,
|
||||
+ &data->dfs_event);
|
||||
break;
|
||||
#endif /* NEED_AP_MLME */
|
||||
#endif /* CONFIG_AP */
|
@ -1,7 +1,7 @@
|
||||
From e7fc5d2e6b34102282ff94a6e5255af4b6e9ccb5 Mon Sep 17 00:00:00 2001
|
||||
From ce3e491e445ebea9705e76ac7ee3d4841ace1cad Mon Sep 17 00:00:00 2001
|
||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
Date: Thu, 12 Apr 2018 02:49:08 -0700
|
||||
Subject: [PATCH 11/15] mesh: Allow DFS channels to be selected if dfs is
|
||||
Date: Tue, 17 Apr 2018 21:55:08 -0700
|
||||
Subject: [PATCH 11/16] mesh: Allow DFS channels to be selected if dfs is
|
||||
enabled
|
||||
|
||||
Note: DFS is assumed to be usable if a country code has been set
|
@ -1,7 +1,7 @@
|
||||
From fcc5fe675d1155d65df0471aa06f746c28b66b6c Mon Sep 17 00:00:00 2001
|
||||
From cf2ba81fb307f3e87e13896f9dbf93c0c2a9eb92 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Oh <peter.oh@bowerswilkins.com>
|
||||
Date: Thu, 12 Apr 2018 02:49:11 -0700
|
||||
Subject: [PATCH 14/15] mesh: do not allow scan result to swap pri/sec
|
||||
Date: Tue, 17 Apr 2018 21:55:11 -0700
|
||||
Subject: [PATCH 14/16] mesh: do not allow scan result to swap pri/sec
|
||||
|
||||
Swapping between primary and secondary channel will break
|
||||
mesh from joining, hence don't allow it.
|
@ -1,52 +0,0 @@
|
||||
From 30c1693f42326d4f927e76120492bc9593b8f739 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Fri, 13 Apr 2018 00:42:10 +0200
|
||||
Subject: [PATCH] mesh: properly handle sae_password
|
||||
|
||||
The recently introduced sae_password parameter is only handled properly
|
||||
in wpa_supplicant/sme.c while wpa_supplicant/mesh.c assumed that
|
||||
ssid->passphrase exclusively holds the secret.
|
||||
Import the logic from sme.c to mesh.c to allow having only sae_password
|
||||
set which otherwise throws this error:
|
||||
AP-ENABLED
|
||||
mesh: Passphrase for SAE not configured
|
||||
Init RSN failed. Deinit mesh...
|
||||
wlan1: interface state ENABLED->DISABLED
|
||||
AP-DISABLED
|
||||
Segmentation fault
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
wpa_supplicant/mesh.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/wpa_supplicant/mesh.c
|
||||
+++ b/wpa_supplicant/mesh.c
|
||||
@@ -154,10 +154,14 @@ int wpas_mesh_init_rsn(struct wpa_suppli
|
||||
struct wpa_ssid *ssid = wpa_s->current_ssid;
|
||||
struct hostapd_data *bss = ifmsh->bss[0];
|
||||
static int default_groups[] = { 19, 20, 21, 25, 26, -1 };
|
||||
+ const char *password;
|
||||
size_t len;
|
||||
|
||||
if (mconf->security != MESH_CONF_SEC_NONE) {
|
||||
- if (ssid->passphrase == NULL) {
|
||||
+ password = ssid->sae_password;
|
||||
+ if (!password)
|
||||
+ password = ssid->passphrase;
|
||||
+ if (!password) {
|
||||
wpa_printf(MSG_ERROR,
|
||||
"mesh: Passphrase for SAE not configured");
|
||||
return -1;
|
||||
@@ -177,9 +181,9 @@ int wpas_mesh_init_rsn(struct wpa_suppli
|
||||
return -1;
|
||||
}
|
||||
|
||||
- len = os_strlen(ssid->passphrase);
|
||||
+ len = os_strlen(password);
|
||||
bss->conf->ssid.wpa_passphrase =
|
||||
- dup_binstr(ssid->passphrase, len);
|
||||
+ dup_binstr(password, len);
|
||||
|
||||
wpa_s->mesh_rsn = mesh_rsn_auth_init(wpa_s, mconf);
|
||||
if (!wpa_s->mesh_rsn)
|
@ -1,21 +0,0 @@
|
||||
--- a/src/rsn_supp/pmksa_cache.h
|
||||
+++ b/src/rsn_supp/pmksa_cache.h
|
||||
@@ -101,7 +101,7 @@ static inline void pmksa_cache_deinit(st
|
||||
|
||||
static inline struct rsn_pmksa_cache_entry *
|
||||
pmksa_cache_get(struct rsn_pmksa_cache *pmksa, const u8 *aa, const u8 *pmkid,
|
||||
- const void *network_ctx)
|
||||
+ const void *network_ctx, int akmp)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@@ -148,7 +148,8 @@ static inline int pmksa_cache_set_curren
|
||||
const u8 *bssid,
|
||||
void *network_ctx,
|
||||
int try_opportunistic,
|
||||
- const u8 *fils_cache_id)
|
||||
+ const u8 *fils_cache_id,
|
||||
+ int akmp)
|
||||
{
|
||||
return -1;
|
||||
}
|
Loading…
Reference in New Issue