brcm-2.4 system code and driver update
[openwrt/svn-archive/archive.git] / openwrt / package / wificonf / wificonf.c
index 60ffd900aa8a566431dc322e94b26add916937b1..b243cfa5770260e7faca755081bbd80b24835582 100644 (file)
@@ -281,10 +281,10 @@ static int is_new_bcom(int skfd, char *ifname)
        bzero(buf, 8192);
        bcom_ioctl(skfd, ifname, WLC_DUMP, buf, 8192);
 
-       if (strstr(buf, "3.130"))
-               return 1;
+       if (strstr(buf, "3.90"))
+               return 0;
 
-       return 0;
+       return 1;
 }
 
 static int bcom_get_wsec(int vif)
@@ -396,6 +396,7 @@ void start_watchdog(int skfd, char *ifname)
        char *v, *next;
        unsigned char buf[8192], buf2[8192], wbuf[80], *p, *tmp;
        int wds = 0, i, j, restart_wds;
+       wlc_ssid_t ssid;
 
        if (fork())
                return;
@@ -550,7 +551,7 @@ static void setup_bcom_vif_sec(int skfd, char *ifname, int vif)
                                wep = 1;
                                bcom_set_bss_int(skfd, ifname, vif, "wsec", WEP_ENABLED);
                                bcom_set_bss_int(skfd, ifname, vif, "wsec_restrict", 1);
-                               bcom_set_bss_int(skfd, ifname, vif, "auth", 1);
+                               bcom_set_bss_int(skfd, ifname, vif, "auth", nvram_enabled(vif_var(vif, "auth")));
                        } else {
                                wep = 0;
                        }
@@ -779,6 +780,11 @@ static void setup_bcom_new(int skfd, char *ifname)
        }
 
        
+       if ((val = atoi(nvram_safe_get(wl_var("rate")))) > 0) {
+               val /= 500000;
+               bcom_set_int(skfd, ifname, "bg_rate", val);
+               bcom_set_int(skfd, ifname, "a_rate", val);
+       }
        if (v = nvram_get(wl_var("rts"))) {
                val = atoi(v);
                bcom_set_int(skfd, ifname, "rtsthresh", val);
@@ -822,6 +828,10 @@ static void setup_bcom_old(int skfd, char *ifname)
        
        setup_bcom_common(skfd, ifname);
 
+       if ((val = atoi(nvram_safe_get(wl_var("rate")))) > 0) {
+               val *= 2;
+               bcom_ioctl(skfd, ifname, 13, &val, sizeof(val));
+       }
        if (v = nvram_get(wl_var("frag"))) {
                val = atoi(v);
                bcom_ioctl(skfd, ifname, WLC_SET_FRAG, &val, sizeof(val));
@@ -867,8 +877,14 @@ static void setup_bcom_old(int skfd, char *ifname)
                bcom_ioctl(skfd, ifname, WLC_SET_EAP_RESTRICT, &val, sizeof(val));
                bcom_set_int(skfd, ifname, "sup_wpa", 0);
        }
+
+       if (v = nvram_get(wl_var("auth"))) {
+               val = atoi(v);
+               bcom_ioctl(skfd, ifname, WLC_SET_AUTH, &val, sizeof(val));
+       }
 }
 
+
 static void set_wext_ssid(int skfd, char *ifname)
 {
        char *buffer;