Please note: This project is no longer active. The website is kept online for historic purposes only.
If you´re looking for a Linux driver for your Atheros WLAN device, you should continue here .

Ticket #275: active-scan.patch

File active-scan.patch, 1.7 kB (added by dplatt@radagast.org, 14 years ago)
  • madwifi-ng/net80211/ieee80211_wireless.c

    old new  
    4747#include <linux/netdevice.h> 
    4848#include <linux/utsname.h> 
    4949#include <linux/if_arp.h>               /* XXX for ARPHRD_ETHER */ 
     50#include <linux/delay.h> 
    5051#include <net/iw_handler.h> 
    5152 
    5253#if WIRELESS_EXT < 14 
     
    12831284        /* XXX always manual... */ 
    12841285        IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, 
    12851286            "%s: active scan request\n", __func__); 
     1287        /*  
     1288           Cancel any existing active scan, so that any new parameters 
     1289           in this scan ioctl (or the defaults) can be honored. 
     1290        */ 
     1291        (void) ieee80211_cancel_scan(vap); 
     1292        mdelay(10); 
     1293#ifdef IW_SCAN_THIS_ESSID 
     1294        if (data && (data->flags & IW_SCAN_THIS_ESSID)) { 
     1295                struct iw_scan_req req; 
     1296                struct ieee80211_scan_ssid ssid; 
     1297                int copyLength; 
     1298                IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, 
     1299                        "%s: SCAN_THIS_ESSID requested\n", __func__); 
     1300                if (data->length > sizeof req) { 
     1301                        copyLength = sizeof req; 
     1302                } else { 
     1303                        copyLength = data->length; 
     1304                } 
     1305                memset(&req, 0, sizeof req); 
     1306                if (copy_from_user(&req, data->pointer, copyLength)) 
     1307                        return -EFAULT; 
     1308                memcpy(&ssid.ssid, req.essid, sizeof ssid.ssid); 
     1309                ssid.len = req.essid_len; 
     1310                IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN, 
     1311                                  "%s: requesting scan of essid '%s'\n", __func__, ssid.ssid); 
     1312                (void) ieee80211_start_scan(vap, 
     1313                        IEEE80211_SCAN_ACTIVE | 
     1314                        IEEE80211_SCAN_NOPICK | 
     1315                        IEEE80211_SCAN_ONCE, IEEE80211_SCAN_FOREVER, 
     1316                        1, &ssid); 
     1317                return 0; 
     1318        } 
     1319#endif            
    12861320        (void) ieee80211_start_scan(vap, 
    12871321                        IEEE80211_SCAN_ACTIVE | 
    12881322                        IEEE80211_SCAN_NOPICK |