aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/atmel.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2008-08-18 15:32:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-08-26 20:06:30 -0400
commitd0c2912fe8df81a8b723fb6ec4d4cdf523cbaff7 (patch)
treee5d2c767850eb246adfd81a7eb0d0a6a306b41fc /drivers/net/wireless/atmel.c
parent3c34a5d821b825b720189e87561ba18500cf8026 (diff)
atmel: try open system authentication too
When the AP rejects a Shared Key authentication request, try Open System auth too. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/atmel.c')
-rw-r--r--drivers/net/wireless/atmel.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index f23bcd07dee8..bd65c485098c 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -3062,12 +3062,20 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
3062 } 3062 }
3063 3063
3064 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) { 3064 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) {
3065 /* Do opensystem first, then try sharedkey */ 3065 /* Flip back and forth between WEP auth modes until the max
3066 * authentication tries has been exceeded.
3067 */
3066 if (system == WLAN_AUTH_OPEN) { 3068 if (system == WLAN_AUTH_OPEN) {
3067 priv->CurrentAuthentTransactionSeqNum = 0x001; 3069 priv->CurrentAuthentTransactionSeqNum = 0x001;
3068 priv->exclude_unencrypted = 1; 3070 priv->exclude_unencrypted = 1;
3069 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0); 3071 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0);
3070 return; 3072 return;
3073 } else if ( system == WLAN_AUTH_SHARED_KEY
3074 && priv->wep_is_on) {
3075 priv->CurrentAuthentTransactionSeqNum = 0x001;
3076 priv->exclude_unencrypted = 0;
3077 send_authentication_request(priv, WLAN_AUTH_OPEN, NULL, 0);
3078 return;
3071 } else if (priv->connect_to_any_BSS) { 3079 } else if (priv->connect_to_any_BSS) {
3072 int bss_index; 3080 int bss_index;
3073 3081