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-a3cf2f4a3e73master
parent
1bf0a3ebdf
commit
a761723620
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue