Update to v2.0

This commit is contained in:
Dan Williams 2013-05-07 15:12:27 -05:00
parent b950724d02
commit 22b8be3d0f
7 changed files with 13 additions and 106 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
b29b9af02d7e092db8c5c8508de0e45c wpa_supplicant-1.1.tar.gz
3be2ebfdcced52e00eda0afe2889839d wpa_supplicant-2.0.tar.gz

View File

@ -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)

View File

@ -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

View File

@ -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);

View File

@ -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 <dcbw@redhat.com> - 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 <dcbw@redhat.com> - 1:1.1-1
- Update to 1.1
- Be less aggressive when roaming due to signal strength changes