diff options
| -rw-r--r-- | package/openwrt/wlcompat.c | 18 | 
1 files changed, 15 insertions, 3 deletions
| diff --git a/package/openwrt/wlcompat.c b/package/openwrt/wlcompat.c index 0c57d99f6..0dc382918 100644 --- a/package/openwrt/wlcompat.c +++ b/package/openwrt/wlcompat.c @@ -168,12 +168,24 @@ static int wlcompat_ioctl(struct net_device *dev,  				return -EINVAL;  			break;  		} +		case SIOCSIWRTS: +		{ +			if (wl_ioctl(dev,WLC_SET_RTS,&(wrqu->rts.value),sizeof(int)) < 0)  +				return -EINVAL; +			break; +		}  		case SIOCGIWFRAG:  		{  			if (wl_ioctl(dev,WLC_GET_FRAG,&(wrqu->frag.value),sizeof(int)) < 0)  				return -EINVAL;  			break;  		} +		case SIOCSIWFRAG: +		{ +			if (wl_ioctl(dev,WLC_SET_FRAG,&(wrqu->frag.value),sizeof(int)) < 0) +				return -EINVAL; +			break; +		}  		case SIOCGIWTXPOW:  		{  			wrqu->txpower.value = 0; @@ -297,7 +309,7 @@ static const iw_handler	 wlcompat_handler[] = {  	wlcompat_ioctl,		/* SIOCGIWMODE */  	NULL,			/* SIOCSIWSENS */  	NULL,			/* SIOCGIWSENS */ -	NULL,			/* SIOCSIWRANGE */ +	NULL,			/* SIOCSIWRANGE, unused */  	wlcompat_ioctl,		/* SIOCGIWRANGE */  	NULL,			/* SIOCSIWPRIV */  	NULL,			/* SIOCGIWPRIV */ @@ -321,9 +333,9 @@ static const iw_handler	 wlcompat_handler[] = {  	NULL,			/* -- hole -- */  	NULL,			/* SIOCSIWRATE */  	NULL,			/* SIOCGIWRATE */ -	NULL,			/* SIOCSIWRTS */ +	wlcompat_ioctl,		/* SIOCSIWRTS */  	wlcompat_ioctl,		/* SIOCGIWRTS */ -	NULL,			/* SIOCSIWFRAG */ +	wlcompat_ioctl,		/* SIOCSIWFRAG */  	wlcompat_ioctl,		/* SIOCGIWFRAG */  	wlcompat_ioctl,		/* SIOCSIWTXPOW */  	wlcompat_ioctl,		/* SIOCGIWTXPOW */ | 
