Archived
14
0
Fork 0

[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:
Daniel Drake 2007-07-27 15:43:24 +02:00 committed by John W. Linville
parent ba9b07d08b
commit f27b62d3e7

View file

@ -697,17 +697,24 @@ static int ieee80211_ioctl_siwscan(struct net_device *dev,
if (!netif_running(dev)) if (!netif_running(dev))
return -ENETDOWN; return -ENETDOWN;
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) { switch (sdata->type) {
if (sdata->type == IEEE80211_IF_TYPE_STA || case IEEE80211_IF_TYPE_STA:
sdata->type == IEEE80211_IF_TYPE_IBSS) { case IEEE80211_IF_TYPE_IBSS:
if (local->scan_flags & IEEE80211_SCAN_MATCH_SSID) {
ssid = sdata->u.sta.ssid; ssid = sdata->u.sta.ssid;
ssid_len = sdata->u.sta.ssid_len; 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 = sdata->u.ap.ssid;
ssid_len = sdata->u.ap.ssid_len; ssid_len = sdata->u.ap.ssid_len;
} else }
return -EINVAL; break;
default:
return -EOPNOTSUPP;
} }
return ieee80211_sta_req_scan(dev, ssid, ssid_len); return ieee80211_sta_req_scan(dev, ssid, ssid_len);
} }