Skip to content

Commit

Permalink
[PATCH] ieee80211: Fix iwlist scan can only show about 20 APs
Browse files Browse the repository at this point in the history
Limit the amount of output given to iwlist scan.

Signed-off-by: Hong Liu <hong.liu@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Zhu Yi authored and John W. Linville committed Jan 27, 2006
1 parent b6daa25 commit 55cd94a
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions net/ieee80211/ieee80211_wx.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,15 +232,18 @@ static char *ipw2100_translate_scan(struct ieee80211_device *ieee,
return start;
}

#define SCAN_ITEM_SIZE 128

int ieee80211_wx_get_scan(struct ieee80211_device *ieee,
struct iw_request_info *info,
union iwreq_data *wrqu, char *extra)
{
struct ieee80211_network *network;
unsigned long flags;
int err = 0;

char *ev = extra;
char *stop = ev + IW_SCAN_MAX_DATA;
char *stop = ev + wrqu->data.length;
int i = 0;

IEEE80211_DEBUG_WX("Getting scan\n");
Expand All @@ -249,6 +252,11 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee,

list_for_each_entry(network, &ieee->network_list, list) {
i++;
if (stop - ev < SCAN_ITEM_SIZE) {
err = -E2BIG;
break;
}

if (ieee->scan_age == 0 ||
time_after(network->last_scanned + ieee->scan_age, jiffies))
ev = ipw2100_translate_scan(ieee, ev, stop, network);
Expand All @@ -270,7 +278,7 @@ int ieee80211_wx_get_scan(struct ieee80211_device *ieee,

IEEE80211_DEBUG_WX("exit: %d networks returned.\n", i);

return 0;
return err;
}

int ieee80211_wx_set_encode(struct ieee80211_device *ieee,
Expand Down

0 comments on commit 55cd94a

Please sign in to comment.