|
@@ -3062,12 +3062,20 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
|
|
|
}
|
|
|
|
|
|
if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) {
|
|
|
- /* Do opensystem first, then try sharedkey */
|
|
|
+ /* Flip back and forth between WEP auth modes until the max
|
|
|
+ * authentication tries has been exceeded.
|
|
|
+ */
|
|
|
if (system == WLAN_AUTH_OPEN) {
|
|
|
priv->CurrentAuthentTransactionSeqNum = 0x001;
|
|
|
priv->exclude_unencrypted = 1;
|
|
|
send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0);
|
|
|
return;
|
|
|
+ } else if ( system == WLAN_AUTH_SHARED_KEY
|
|
|
+ && priv->wep_is_on) {
|
|
|
+ priv->CurrentAuthentTransactionSeqNum = 0x001;
|
|
|
+ priv->exclude_unencrypted = 0;
|
|
|
+ send_authentication_request(priv, WLAN_AUTH_OPEN, NULL, 0);
|
|
|
+ return;
|
|
|
} else if (priv->connect_to_any_BSS) {
|
|
|
int bss_index;
|
|
|
|