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 | d79e48e59b54d84d97c124b62ed6f30c60c6aece (patch) | |
tree | 064517261e304435086b46863ada5631b21ab756 | |
parent | 61dbadef224797f80e2132460afd7c4bb73210ff (diff) |
add SIOCSIWESSID
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@579 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | openwrt/package/openwrt/wlcompat.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/openwrt/package/openwrt/wlcompat.c b/openwrt/package/openwrt/wlcompat.c index cce64e7c57..ac85da0cfc 100644 --- a/openwrt/package/openwrt/wlcompat.c +++ b/openwrt/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 */ |