Move code from ipw2100_wpa_enable to IPW2100_PARAM_DROP_UNENCRYPTED to
authorZhu Yi <yi.zhu@intel.com>
Wed, 13 Jul 2005 17:30:34 +0000 (12:30 -0500)
committerJames Ketrenos <jketreno@linux.intel.com>
Mon, 7 Nov 2005 23:50:08 +0000 (17:50 -0600)
support wpa_supplicant with open AP. We need this to make driver_ipw
work.

driver_ext has already had the similar code with the WE-18 support
added.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
drivers/net/wireless/ipw2100.c

index 73287ab..eaf4707 100644 (file)
@@ -5880,9 +5880,27 @@ static int ipw2100_wpa_set_param(struct net_device *dev, u8 name, u32 value)
 
                break;
 
-       case IPW2100_PARAM_DROP_UNENCRYPTED:
-               priv->ieee->drop_unencrypted = value;
-               break;
+       case IPW2100_PARAM_DROP_UNENCRYPTED:{
+                       /* See IW_AUTH_DROP_UNENCRYPTED handling for details */
+                       struct ieee80211_security sec = {
+                               .flags = SEC_ENABLED,
+                               .enabled = value,
+                       };
+                       priv->ieee->drop_unencrypted = value;
+                       /* We only change SEC_LEVEL for open mode. Others
+                        * are set by ipw_wpa_set_encryption.
+                        */
+                       if (!value) {
+                               sec.flags |= SEC_LEVEL;
+                               sec.level = SEC_LEVEL_0;
+                       } else {
+                               sec.flags |= SEC_LEVEL;
+                               sec.level = SEC_LEVEL_1;
+                       }
+                       if (priv->ieee->set_security)
+                               priv->ieee->set_security(priv->ieee->dev, &sec);
+                       break;
+               }
 
        case IPW2100_PARAM_PRIVACY_INVOKED:
                priv->ieee->privacy_invoked = value;