diff options
| author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-01-24 01:49:23 +0000 | 
|---|---|---|
| committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-01-24 01:49:23 +0000 | 
| commit | 7824784240f8b1f5906b3b95cfe12b1825e04523 (patch) | |
| tree | 9993362796129dc079bc33d360abf5053e377cd1 | |
| parent | 20d9fd2c16d05b80250900c053f424050098a5c8 (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
| -rw-r--r-- | package/hostapd/patches/100-pending_work.patch | 18 | ||||
| -rw-r--r-- | package/hostapd/patches/560-disable_ctrl_iface_mib.patch | 4 | ||||
| -rw-r--r-- | package/hostapd/patches/740-group_key_timeout.patch | 2 | 
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;  | 
