modify SIOCSIWAP call to associate with a specific bssid when in managed mode
authorFelix Fietkau <nbd@openwrt.org>
Tue, 24 May 2005 15:23:45 +0000 (15:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 24 May 2005 15:23:45 +0000 (15:23 +0000)
SVN-Revision: 1051

openwrt/package/openwrt/wlcompat.c

index 01bfb0b43743a2ccc1ec2ddfcb26fd62c068e95d..d010e2bc87957a9eb6b49883bb576df4abae6c0e 100644 (file)
@@ -314,10 +314,15 @@ static int wlcompat_ioctl(struct net_device *dev,
                }
                case SIOCSIWAP:
                {
+                       int ap = 0;
+                       
                        if (wrqu->ap_addr.sa_family != ARPHRD_ETHER)
                                return -EINVAL;
 
-                       if (wl_ioctl(dev,WLC_SET_BSSID,wrqu->ap_addr.sa_data,6) < 0)
+                       if (wl_ioctl(dev, WLC_GET_AP, &ap, sizeof(ap)) < 0)
+                               return -EINVAL;
+                       
+                       if (wl_ioctl(dev, (ap ? WLC_SET_BSSID : WLC_REASSOC), wrqu->ap_addr.sa_data, 6) < 0)
                                return -EINVAL;
 
                        break;