diff options
-rw-r--r-- | openwrt/package/openwrt/wlcompat.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/openwrt/package/openwrt/wlcompat.c b/openwrt/package/openwrt/wlcompat.c index f96b98747..fdcb36cc9 100644 --- a/openwrt/package/openwrt/wlcompat.c +++ b/openwrt/package/openwrt/wlcompat.c @@ -302,6 +302,16 @@ static int wlcompat_ioctl(struct net_device *dev, } break; } + case SIOCSIWAP: + { + if (wrqu->ap_addr.sa_family != ARPHRD_ETHER) + return -EINVAL; + + if (wl_ioctl(dev,WLC_SET_BSSID,wrqu->ap_addr.sa_data,6) < 0) + return -EINVAL; + + break; + } case SIOCGIWAP: { wrqu->ap_addr.sa_family = ARPHRD_ETHER; @@ -513,7 +523,7 @@ static const iw_handler wlcompat_handler[] = { iw_handler_get_spy, /* SIOCGIWSPY */ iw_handler_set_thrspy, /* SIOCSIWTHRSPY */ iw_handler_get_thrspy, /* SIOCGIWTHRSPY */ - NULL, /* SIOCSIWAP */ + wlcompat_ioctl, /* SIOCSIWAP */ wlcompat_ioctl, /* SIOCGIWAP */ NULL, /* -- hole -- */ NULL, /* SIOCGIWAPLIST */ |