[PATCH] mac80211: don't allow scanning in monitor mode
zd1211rw gets confused when the user asks for a scan when the device is in monitor mode. This patch tightens up the SIWSCAN handler to deny the scan under these conditions. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: Jiri Benc <jbenc@suse.cz> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ba9b07d08b
commit
f27b62d3e7
1 changed files with 13 additions and 6 deletions
|
@ -697,17 +697,24 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev,
|
|||
if (!netif_running(dev))
|
||||
return -ENETDOWN;
|
||||
|
||||
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
|
||||
if (sdata->type == IEEE80211_IF_TYPE_STA ||
|
||||
sdata->type == IEEE80211_IF_TYPE_IBSS) {
|
||||
switch (sdata->type) {
|
||||
case IEEE80211_IF_TYPE_STA:
|
||||
case IEEE80211_IF_TYPE_IBSS:
|
||||
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
|
||||
ssid = sdata->u.sta.ssid;
|
||||
ssid_len = sdata->u.sta.ssid_len;
|
||||
} else if (sdata->type == IEEE80211_IF_TYPE_AP) {
|
||||
}
|
||||
break;
|
||||
case IEEE80211_IF_TYPE_AP:
|
||||
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
|
||||
ssid = sdata->u.ap.ssid;
|
||||
ssid_len = sdata->u.ap.ssid_len;
|
||||
} else
|
||||
return -EINVAL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
return ieee80211_sta_req_scan(dev, ssid, ssid_len);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue