add support for serial console with different rate (specified by the boot loader...
[openwrt.git] / openwrt / package / wificonf / wificonf.c
index 8df932f..519596c 100644 (file)
@@ -155,20 +155,22 @@ void setup_bcom(int skfd, char *ifname)
 
        bcom_ioctl(skfd, ifname, WLC_DOWN, NULL, 0);
        
-       /* Set up WPA */
-       if (nvram_match(wl_var("crypto"), "tkip"))
-               val = TKIP_ENABLED;
-       else if (nvram_match(wl_var("crypto"), "aes"))
-               val = AES_ENABLED;
-       else if (nvram_match(wl_var("crypto"), "tkip+aes"))
-               val = TKIP_ENABLED | AES_ENABLED;
-       else
-               val = 0;
-       bcom_ioctl(skfd, ifname, WLC_SET_WSEC, &val, sizeof(val));
-
-       if (val && nvram_get(wl_var("wpa_psk"))) {
-               val = 1;
-               bcom_ioctl(skfd, ifname, WLC_SET_EAP_RESTRICT, &val, sizeof(val));
+       if (nvram_match(wl_var("auth_mode"), "wpa") || nvram_match(wl_var("auth_mode"), "psk") || (nvram_get(wl_var("akm")) && !nvram_disabled(wl_var("akm")))) {
+               /* Set up WPA */
+               if (nvram_match(wl_var("crypto"), "tkip"))
+                       val = TKIP_ENABLED;
+               else if (nvram_match(wl_var("crypto"), "aes"))
+                       val = AES_ENABLED;
+               else if (nvram_match(wl_var("crypto"), "tkip+aes"))
+                       val = TKIP_ENABLED | AES_ENABLED;
+               else
+                       val = 0;
+               bcom_ioctl(skfd, ifname, WLC_SET_WSEC, &val, sizeof(val));
+
+               if (val && nvram_get(wl_var("wpa_psk"))) {
+                       val = 1;
+                       bcom_ioctl(skfd, ifname, WLC_SET_EAP_RESTRICT, &val, sizeof(val));
+               }
        }
 
        /* Set up afterburner */
@@ -268,9 +270,14 @@ void setup_bcom(int skfd, char *ifname)
                int override = WLC_G_PROTECTION_OFF;
                int control = WLC_G_PROTECTION_CTL_OFF;
                
-               val = atoi(nvram_safe_get(wl_var("gmode")));
+               if (v = nvram_get(wl_var("gmode"))) 
+                       val = atoi(v);
+               else
+                       val = 1;
+
                if (val > 5)
                        val = 1;
+
                bcom_ioctl(skfd, ifname, WLC_SET_GMODE, &val, sizeof(val));
                
                if (nvram_match(wl_var("gmode_protection"), "auto")) {
This page took 0.020126 seconds and 4 git commands to generate.