aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch')
-rw-r--r--package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch185
1 files changed, 185 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch b/package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch
new file mode 100644
index 0000000000..8d9cd456d5
--- /dev/null
+++ b/package/network/services/hostapd/patches/0001-Revert-wpa_supplicant-Increase-authentication-timeou.patch
@@ -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);