From 01e3c2acde16a820c65bb202d20c5919d043c811 Mon Sep 17 00:00:00 2001 From: nbd Date: Fri, 8 Apr 2005 12:30:38 +0000 Subject: [PATCH] add SIOCSIWESSID git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@579 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/openwrt/wlcompat.c | 20 ++++++++++++++++++-- 1 file 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 */