disable speedbooster if wds is enabled
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 1 Oct 2005 17:39:57 +0000 (17:39 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 1 Oct 2005 17:39:57 +0000 (17:39 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2016 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/wificonf/wificonf.c

index 5feab6e..0d652ee 100644 (file)
@@ -172,6 +172,7 @@ void setup_bcom(int skfd, char *ifname)
        char buf[8192];
        char wbuf[80];
        char *v;
+       int wds_enabled = 0;
        
        if (bcom_ioctl(skfd, ifname, WLC_GET_MAGIC, &val, sizeof(val)) < 0)
                return;
@@ -185,16 +186,9 @@ void setup_bcom(int skfd, char *ifname)
        buf[3] = 0;
        bcom_ioctl(skfd, ifname, WLC_SET_COUNTRY, buf, 4);
        
-       /* Set up afterburner */
-       val = ABO_AUTO;
-       if (nvram_enabled(wl_var("afterburner")))
-               val = ABO_ON;
-       if (nvram_disabled(wl_var("afterburner")))
-               val = ABO_OFF;
-       bcom_set_val(skfd, ifname, "afterburner_override", &val, sizeof(val));
-       
        /* Set other options */
        val = nvram_enabled(wl_var("lazywds"));
+       wds_enabled = val;
        bcom_ioctl(skfd, ifname, WLC_SET_LAZYWDS, &val, sizeof(val));
        
        if (v = nvram_get(wl_var("frag"))) {
@@ -270,11 +264,25 @@ void setup_bcom(int skfd, char *ifname)
                        if (ether_atoe(wbuf, addr->ether_addr_octet)) {
                                wdslist->count++;
                                addr++;
+                               wds_enabled = 1;
                        }
                }
                bcom_ioctl(skfd, ifname, WLC_SET_WDSLIST, buf, sizeof(buf));
        }
        
+       /* Set up afterburner, disabled it if WDS is enabled */
+       if (wds_enabled) {
+               val = ABO_OFF;
+       } else {
+               val = ABO_AUTO;
+               if (nvram_enabled(wl_var("afterburner")))
+                       val = ABO_ON;
+               if (nvram_disabled(wl_var("afterburner")))
+                       val = ABO_OFF;
+       }
+       
+       bcom_set_val(skfd, ifname, "afterburner_override", &val, sizeof(val));
+       
        /* Set up G mode */
        bcom_ioctl(skfd, ifname, WLC_GET_PHYTYPE, &val, sizeof(val));
        if (val == 2) {
This page took 0.023098 seconds and 4 git commands to generate.