From 22b8be3d0fd93f141134b2bc41ff73d582ba8978 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 7 May 2013 15:12:27 -0500 Subject: [PATCH] Update to v2.0 --- .gitignore | 1 + libnl3-includes.patch | 2 +- sources | 2 +- ..._supplicant-2.0-generate-libeap-peer.patch | 5 +- wpa_supplicant-gui-qt4.patch | 2 +- ...icant-squelch-driver-disconnect-spam.patch | 96 ------------------- wpa_supplicant.spec | 11 ++- 7 files changed, 13 insertions(+), 106 deletions(-) rename wpa_supplicant-0.7.2-generate-libeap-peer.patch => wpa_supplicant-2.0-generate-libeap-peer.patch (99%) delete mode 100644 wpa_supplicant-squelch-driver-disconnect-spam.patch diff --git a/.gitignore b/.gitignore index b2b33f8..ac78a8e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ wpa_supplicant-0.6.8.tar.gz /wpa_supplicant-1.0-rc1.tar.gz /wpa_supplicant-1.0-rc2.tar.gz /wpa_supplicant-1.1.tar.gz +/wpa_supplicant-2.0.tar.gz diff --git a/libnl3-includes.patch b/libnl3-includes.patch index 5d89039..53a3c85 100644 --- a/libnl3-includes.patch +++ b/libnl3-includes.patch @@ -5,7 +5,7 @@ diff -up wpa_supplicant-1.0-rc2/src/drivers/drivers.mak.foo wpa_supplicant-1.0-r ifdef CONFIG_LIBNL32 DRV_LIBS += -lnl-3 DRV_LIBS += -lnl-genl-3 -- DRV_CFLAGS += -DCONFIG_LIBNL20 +- DRV_CFLAGS += -DCONFIG_LIBNL20 -I/usr/include/libnl3 + DRV_CFLAGS += -DCONFIG_LIBNL20 `pkg-config --cflags libnl-3.0` else ifdef CONFIG_LIBNL_TINY diff --git a/sources b/sources index c1d7459..02765ba 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b29b9af02d7e092db8c5c8508de0e45c wpa_supplicant-1.1.tar.gz +3be2ebfdcced52e00eda0afe2889839d wpa_supplicant-2.0.tar.gz diff --git a/wpa_supplicant-0.7.2-generate-libeap-peer.patch b/wpa_supplicant-2.0-generate-libeap-peer.patch similarity index 99% rename from wpa_supplicant-0.7.2-generate-libeap-peer.patch rename to wpa_supplicant-2.0-generate-libeap-peer.patch index f4c38d2..8f12bb1 100644 --- a/wpa_supplicant-0.7.2-generate-libeap-peer.patch +++ b/wpa_supplicant-2.0-generate-libeap-peer.patch @@ -42,7 +42,7 @@ diff --git a/src/eap_peer/Makefile b/src/eap_peer/Makefile index 3651056..58c067a 100644 --- a/src/eap_peer/Makefile +++ b/src/eap_peer/Makefile -@@ -1,11 +1,192 @@ +@@ -1,11 +1,193 @@ -all: - @echo Nothing to be made. +LIBEAP_NAME = libeap @@ -89,7 +89,6 @@ index 3651056..58c067a 100644 +OBJS_both += ../utils/base64.o +OBJS_both += ../utils/wpabuf.o +OBJS_both += ../crypto/md5.o -+OBJS_both += ../crypto/sha1.o +OBJS_both += ../crypto/sha1-tlsprf.o +OBJS_both += ../crypto/aes-encblock.o +OBJS_both += ../crypto/aes-wrap.o @@ -148,6 +147,8 @@ index 3651056..58c067a 100644 +OBJS_both += ../crypto/crypto_openssl.o +LIBS += -lssl -lcrypto +override CFLAGS += -DINTERNAL_SHA256 ++else ++OBJS_both += ../crypto/sha1.o +endif + +ifeq ($(CONFIG_TLS), internal) diff --git a/wpa_supplicant-gui-qt4.patch b/wpa_supplicant-gui-qt4.patch index e4cf637..ab7a38d 100644 --- a/wpa_supplicant-gui-qt4.patch +++ b/wpa_supplicant-gui-qt4.patch @@ -2,7 +2,7 @@ diff -up wpa_supplicant-0.7.3/wpa_supplicant/Makefile.qt4 wpa_supplicant-0.7.3/w --- wpa_supplicant-0.7.3/wpa_supplicant/Makefile.qt4 2010-09-07 10:43:39.000000000 -0500 +++ wpa_supplicant-0.7.3/wpa_supplicant/Makefile 2010-12-08 10:07:44.152664004 -0600 @@ -1352,10 +1352,10 @@ wpa_gui: wpa_gui/Makefile - $(MAKE) -C wpa_gui + @echo "wpa_gui has been removed - see wpa_gui-qt4 for replacement" wpa_gui-qt4/Makefile: - qmake -o wpa_gui-qt4/Makefile wpa_gui-qt4/wpa_gui.pro diff --git a/wpa_supplicant-squelch-driver-disconnect-spam.patch b/wpa_supplicant-squelch-driver-disconnect-spam.patch deleted file mode 100644 index f53a418..0000000 --- a/wpa_supplicant-squelch-driver-disconnect-spam.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -up wpa_supplicant-0.6.8/wpa_supplicant/events.c.disconnect-spam wpa_supplicant-0.6.8/wpa_supplicant/events.c ---- wpa_supplicant-0.6.8/wpa_supplicant/events.c.disconnect-spam 2010-05-06 18:10:51.348288705 -0700 -+++ wpa_supplicant-0.6.8/wpa_supplicant/events.c 2010-05-06 18:10:51.356288887 -0700 -@@ -1302,6 +1302,15 @@ static void wpa_supplicant_event_disasso - wpa_s->keys_cleared = 0; - wpa_clear_keys(wpa_s, wpa_s->bssid); - } -+ -+ if (wpa_s->wpa_state == WPA_DISCONNECTED) { -+ wpa_s->disconnect_count++; -+ if (!eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) { -+ eloop_register_timeout(6, 0, wpa_disconnect_spam_handle, wpa_s, NULL); -+ wpa_printf(MSG_DEBUG, "%s: scheduled DISCONNECT spam handler", __FUNCTION__); -+ } -+ } -+ - wpa_supplicant_mark_disassoc(wpa_s); - - if (authenticating && (wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME)) -diff -up wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant.c.disconnect-spam wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant.c ---- wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant.c.disconnect-spam 2010-05-06 18:10:51.340288662 -0700 -+++ wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant.c 2010-05-06 18:12:06.090413976 -0700 -@@ -382,6 +382,9 @@ static void wpa_supplicant_cleanup(struc - - wpa_supplicant_cancel_scan(wpa_s); - wpa_supplicant_cancel_auth_timeout(wpa_s); -+ if (eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) -+ eloop_cancel_timeout(wpa_disconnect_spam_handle, wpa_s, NULL); -+ - eloop_cancel_timeout(wpa_supplicant_stop_countermeasures, wpa_s, NULL); - #ifdef CONFIG_DELAYED_MIC_ERROR_REPORT - eloop_cancel_timeout(wpa_supplicant_delayed_mic_error_report, -@@ -461,6 +464,23 @@ const char * wpa_supplicant_state_txt(in - #endif /* CONFIG_BGSCAN */ - - -+void wpa_disconnect_spam_handle(void *eloop_ctx, void *timeout_ctx) -+{ -+ struct wpa_supplicant *wpa_s = eloop_ctx; -+ const u8 bssid[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; -+ -+ wpa_printf(MSG_DEBUG, "%s: %d disconnect events in 6 seconds", -+ __FUNCTION__, wpa_s->disconnect_count); -+ -+ if (wpa_s->disconnect_count >= 3) { -+ wpa_printf(MSG_DEBUG, "%s: forcing SSID/BSSID reset", __FUNCTION__); -+ wpa_drv_disassociate(wpa_s, bssid, WLAN_REASON_DEAUTH_LEAVING); -+ wpa_supplicant_req_scan(wpa_s, 1, 0); -+ } -+ wpa_s->disconnect_count = 0; -+} -+ -+ - /** - * wpa_supplicant_set_state - Set current connection state - * @wpa_s: Pointer to wpa_supplicant data -@@ -478,6 +498,18 @@ void wpa_supplicant_set_state(struct wpa - if (state != WPA_SCANNING) - wpa_supplicant_notify_scanning(wpa_s, 0); - -+ if (state != WPA_DISCONNECTED && state != WPA_SCANNING) { -+ /* If the state isn't disconnected, cancel any registered -+ * disconnect spam handler, which should only live while -+ * disconnect events are coming in quickly. -+ */ -+ wpa_s->disconnect_count = 0; -+ if (eloop_is_timeout_registered(wpa_disconnect_spam_handle, wpa_s, NULL)) { -+ wpa_printf(MSG_DEBUG, "%s: canceling DISCONNECT spam handler", __FUNCTION__); -+ eloop_cancel_timeout(wpa_disconnect_spam_handle, wpa_s, NULL); -+ } -+ } -+ - if (state == WPA_COMPLETED && wpa_s->new_connection) { - #if defined(CONFIG_CTRL_IFACE) || !defined(CONFIG_NO_STDOUT_DEBUG) - struct wpa_ssid *ssid = wpa_s->current_ssid; -diff -up wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant_i.h.disconnect-spam wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant_i.h ---- wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant_i.h.disconnect-spam 2009-02-15 10:00:00.000000000 -0800 -+++ wpa_supplicant-0.6.8/wpa_supplicant/wpa_supplicant_i.h 2010-05-06 18:10:51.358288792 -0700 -@@ -397,6 +397,8 @@ struct wpa_supplicant { - int wps_success; /* WPS success event received */ - struct wps_er *wps_er; - int blacklist_cleared; -+ -+ int disconnect_count; - - struct wpabuf *pending_eapol_rx; - struct os_time pending_eapol_rx_time; -@@ -461,6 +463,7 @@ void wpa_clear_keys(struct wpa_supplican - int sec, int usec); - void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s, - enum wpa_states state); -+void wpa_disconnect_spam_handle(void *eloop_ctx, void *timeout_ctx); - struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s); - const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s); - void wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s); - diff --git a/wpa_supplicant.spec b/wpa_supplicant.spec index 9d5e32d..8a4c568 100644 --- a/wpa_supplicant.spec +++ b/wpa_supplicant.spec @@ -4,7 +4,7 @@ Summary: WPA/WPA2/IEEE 802.1X Supplicant Name: wpa_supplicant Epoch: 1 -Version: 1.1 +Version: 2.0 Release: 1%{?dist} License: BSD Group: System Environment/Base @@ -30,8 +30,6 @@ Patch1: wpa_supplicant-flush-debug-output.patch Patch2: wpa_supplicant-dbus-service-file-args.patch # quiet an annoying and frequent syslog message Patch3: wpa_supplicant-quiet-scan-results-message.patch -# recover from streams of driver disconnect messages (iwl3945) -Patch4: wpa_supplicant-squelch-driver-disconnect-spam.patch # allow more private key encryption algorithms Patch5: wpa_supplicant-openssl-more-algs.patch # distro specific customization for Qt4 build tools, not suitable for upstream @@ -42,7 +40,7 @@ Patch7: libnl3-includes.patch Patch8: rh837402-less-aggressive-roaming.patch # Dirty hack for WiMAX # http://linuxwimax.org/Download?action=AttachFile&do=get&target=wpa-1.5-README.txt -Patch100: wpa_supplicant-0.7.2-generate-libeap-peer.patch +Patch100: wpa_supplicant-2.0-generate-libeap-peer.patch URL: http://w1.fi/wpa_supplicant/ @@ -100,7 +98,6 @@ Don't use this unless you know what you're doing. %patch1 -p1 -b .flush-debug-output %patch2 -p1 -b .dbus-service-file %patch3 -p1 -b .quiet-scan-results-msg -%patch4 -p1 -b .disconnect-spam %patch5 -p1 -b .more-openssl-algs %patch6 -p1 -b .qt4 %patch7 -p1 -b .libnl3 @@ -232,6 +229,10 @@ fi %postun -n libeap -p /sbin/ldconfig %changelog +* Mon May 6 2013 Dan Williams - 1:2.0-1 +- Update to 2.0 +- Be less aggressive when roaming due to signal strength changes (rh #837402) + * Mon Apr 1 2013 Dan Williams - 1:1.1-1 - Update to 1.1 - Be less aggressive when roaming due to signal strength changes