diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-04-08 12:30:38 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-04-08 12:30:38 +0000 |
commit | 01e3c2acde16a820c65bb202d20c5919d043c811 (patch) | |
tree | 311281fa83fd0099546b97c7ab69e010d578ad17 | |
parent | 0674bcbcd8ca680c35ca75eeeb41128b4adea4d0 (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.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/package/openwrt/wlcompat.c b/package/openwrt/wlcompat.c index cce64e7c5..ac85da0cf 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 */ |