add SIOCSIWESSID
authorFelix Fietkau <nbd@openwrt.org>
Fri, 8 Apr 2005 12:30:38 +0000 (12:30 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 8 Apr 2005 12:30:38 +0000 (12:30 +0000)
SVN-Revision: 579

openwrt/package/openwrt/wlcompat.c

index cce64e7c57c5ecd80c33160eb5f50bf20839a7a4..ac85da0cfc7445d29dc60025ea67031f9ffb4bbb 100644 (file)
@@ -81,7 +81,7 @@ static int wlcompat_ioctl_getiwrange(struct net_device *dev,
        range->max_pmt = 65535 * 1000;
 
        range->txpower_capa = IW_TXPOW_MWATT;
-       
+
        return 0;
 }
 
@@ -119,6 +119,17 @@ static int wlcompat_ioctl(struct net_device *dev,
                        memcpy(extra,ssid.SSID,ssid.SSID_len + 1);
                        break;
                }
+               case SIOCSIWESSID:
+               {
+                       wlc_ssid_t ssid;
+                       memset(&ssid, 0, sizeof(ssid));
+                       ssid.SSID_len = strlen(extra);
+                       if (ssid.SSID_len > WLC_ESSID_MAX_SIZE)
+                               ssid.SSID_len = WLC_ESSID_MAX_SIZE;
+                       memcpy(ssid.SSID, extra, ssid.SSID_len);
+                       wl_ioctl(dev, WLC_SET_SSID, &ssid, sizeof(ssid));
+                       break;
+               }
                case SIOCGIWRTS:
                {
                        wl_ioctl(dev,WLC_GET_RTS,&(wrqu->rts.value),sizeof(int));
@@ -148,6 +159,11 @@ static int wlcompat_ioctl(struct net_device *dev,
                        err = wlcompat_ioctl_getiwrange(dev, extra);
                        break;
                }
+               default:
+               {
+                       err = -EINVAL;
+                       break;
+               }
        }
        
        return err;
@@ -180,7 +196,7 @@ static const iw_handler      wlcompat_handler[] = {
        NULL,                   /* SIOCGIWAPLIST */
        NULL,                   /* -- hole -- */
        NULL,                   /* -- hole -- */
-       NULL,                   /* SIOCSIWESSID */
+       wlcompat_ioctl,         /* SIOCSIWESSID */
        wlcompat_ioctl,         /* SIOCGIWESSID */
        NULL,                   /* SIOCSIWNICKN */
        NULL,                   /* SIOCGIWNICKN */