PERFORCE change 87288 for review
Sam Leffler
sam at FreeBSD.org
Sat Nov 26 23:27:40 GMT 2005
http://perforce.freebsd.org/chv.cgi?CH=87288
Change 87288 by sam at sam_ebb on 2005/11/26 23:26:38
fix ifconfig scan
Affected files ...
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#51 edit
Differences ...
==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#51 (text+ko) ====
@@ -74,37 +74,7 @@
static struct ieee80211_channel *findchannel(struct ieee80211com *,
int ieee, int mode);
-/*
- * Prepare to do a user-initiated scan for AP's. If no
- * current/default channel is setup or the current channel
- * is invalid then pick the first available channel from
- * the active list as the place to start the scan.
- */
static int
-ieee80211_setupscan(struct ieee80211com *ic, const u_int8_t chanlist[])
-{
- /*
- * XXX don't permit a scan to be started unless we
- * know the device is ready. For the moment this means
- * the device is marked up as this is the required to
- * initialize the hardware. It would be better to permit
- * scanning prior to being up but that'll require some
- * changes to the infrastructure.
- */
- if (!IS_UP(ic))
- return EINVAL;
- memcpy(ic->ic_chan_active, chanlist, sizeof(ic->ic_chan_active));
- /*
- * We force the state to INIT before calling ieee80211_new_state
- * to get ieee80211_begin_scan called. We really want to scan w/o
- * altering the current state but that's not possible right now.
- */
- /* XXX handle proberequest case */
- ic->ic_state = IEEE80211_S_INIT; /* XXX bypass state machine */
- return 0;
-}
-
-static int
cap2cipher(int flag)
{
switch (flag) {
@@ -1837,11 +1807,14 @@
error = ieee80211_ioctl_setchanlist(ic, ireq);
break;
case IEEE80211_IOC_SCAN_REQ:
- if (ic->ic_opmode == IEEE80211_M_HOSTAP) /* XXX ignore */
- break;
- error = ieee80211_setupscan(ic, ic->ic_chan_avail);
- if (error == 0) /* XXX background scan */
- error = ieee80211_new_state(ic, IEEE80211_S_SCAN, -1);
+ if (!IS_UP(ic))
+ return EINVAL;
+ (void) ieee80211_start_scan(ic,
+ IEEE80211_SCAN_ACTIVE |
+ IEEE80211_SCAN_NOPICK |
+ IEEE80211_SCAN_ONCE, IEEE80211_SCAN_FOREVER,
+ /* XXX use ioctl params */
+ ic->ic_des_nssid, ic->ic_des_ssid);
break;
case IEEE80211_IOC_ADDMAC:
case IEEE80211_IOC_DELMAC:
More information about the p4-projects
mailing list