summaryrefslogtreecommitdiffstats
path: root/package/hostapd
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-01-24 01:49:23 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-01-24 01:49:23 +0000
commit7824784240f8b1f5906b3b95cfe12b1825e04523 (patch)
tree9993362796129dc079bc33d360abf5053e377cd1 /package/hostapd
parent20d9fd2c16d05b80250900c053f424050098a5c8 (diff)
hostapd: merge an upstream workaround for broken clients sending the wrong wpa type (should fix #9561)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29876 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/hostapd')
-rw-r--r--package/hostapd/patches/100-pending_work.patch18
-rw-r--r--package/hostapd/patches/560-disable_ctrl_iface_mib.patch4
-rw-r--r--package/hostapd/patches/740-group_key_timeout.patch2
3 files changed, 21 insertions, 3 deletions
diff --git a/package/hostapd/patches/100-pending_work.patch b/package/hostapd/patches/100-pending_work.patch
index d9824f317..8b318190f 100644
--- a/package/hostapd/patches/100-pending_work.patch
+++ b/package/hostapd/patches/100-pending_work.patch
@@ -160,3 +160,21 @@
if (bss != &drv->first_bss) {
struct i802_bss *tbss;
+--- a/src/ap/wpa_auth.c
++++ b/src/ap/wpa_auth.c
+@@ -776,7 +776,14 @@ void wpa_receive(struct wpa_authenticato
+ }
+
+ if (sm->wpa == WPA_VERSION_WPA2) {
+- if (key->type != EAPOL_KEY_TYPE_RSN) {
++ if (key->type == EAPOL_KEY_TYPE_WPA) {
++ /*
++ * Some deployed station implementations seem to send
++ * msg 4/4 with incorrect type value in WPA2 mode.
++ */
++ wpa_printf(MSG_DEBUG, "Workaround: Allow EAPOL-Key "
++ "with unexpected WPA type in RSN mode");
++ } else if (key->type != EAPOL_KEY_TYPE_RSN) {
+ wpa_printf(MSG_DEBUG, "Ignore EAPOL-Key with "
+ "unexpected type %d in RSN mode",
+ key->type);
diff --git a/package/hostapd/patches/560-disable_ctrl_iface_mib.patch b/package/hostapd/patches/560-disable_ctrl_iface_mib.patch
index 22f282ab5..306c05117 100644
--- a/package/hostapd/patches/560-disable_ctrl_iface_mib.patch
+++ b/package/hostapd/patches/560-disable_ctrl_iface_mib.patch
@@ -123,7 +123,7 @@
struct sta_info *sta, int success)
--- a/src/ap/wpa_auth.c
+++ b/src/ap/wpa_auth.c
-@@ -2534,6 +2534,7 @@ static int wpa_cipher_bits(int cipher)
+@@ -2541,6 +2541,7 @@ static int wpa_cipher_bits(int cipher)
}
}
@@ -131,7 +131,7 @@
#define RSN_SUITE "%02x-%02x-%02x-%d"
#define RSN_SUITE_ARG(s) \
-@@ -2697,7 +2698,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
+@@ -2704,7 +2705,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
return len;
}
diff --git a/package/hostapd/patches/740-group_key_timeout.patch b/package/hostapd/patches/740-group_key_timeout.patch
index 694b0661f..c1493952c 100644
--- a/package/hostapd/patches/740-group_key_timeout.patch
+++ b/package/hostapd/patches/740-group_key_timeout.patch
@@ -1,6 +1,6 @@
--- a/src/ap/wpa_auth.c
+++ b/src/ap/wpa_auth.c
-@@ -1330,7 +1330,7 @@ static void wpa_send_eapol(struct wpa_au
+@@ -1337,7 +1337,7 @@ static void wpa_send_eapol(struct wpa_au
keyidx, encr, 0);
ctr = pairwise ? sm->TimeoutCtr : sm->GTimeoutCtr;