summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-04-08 12:30:38 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2005-04-08 12:30:38 +0000
commit01e3c2acde16a820c65bb202d20c5919d043c811 (patch)
tree311281fa83fd0099546b97c7ab69e010d578ad17
parent0674bcbcd8ca680c35ca75eeeb41128b4adea4d0 (diff)
add SIOCSIWESSID
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@579 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/openwrt/wlcompat.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/package/openwrt/wlcompat.c b/package/openwrt/wlcompat.c
index cce64e7c57..ac85da0cfc 100644
--- a/package/openwrt/wlcompat.c
+++ b/package/openwrt/wlcompat.c
@@ -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 */