Search Linux Wireless

Re: [RFC PATCH] [try 2] orinoco: more reliable scan handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Dan Williams wrote:
> Bring scan result handling more in line with drivers like ipw.  Scan
> results are aggregated and a BSS dropped after 15 seconds if no beacon
> is received.  This allows the driver to interact better with userspace
> where more than one process may request scans or results at any time.

I've only seen this recently, and am using it as a basis for some other changes. However I've noticed a couple issues:

> +static int orinoco_process_scan_results(struct net_device *dev,
> +					unsigned char *buf,
> +					int len)
> +{
 <snip>
> +		/* Try to update an existing bss first */
> +		list_for_each_entry(bss, &priv->bss_list, list) {
> +			if (compare_ether_addr(bss->bss.a.bssid, atom->a.bssid))
                        if (!compare_ether_addr(bss->bss.a.bssid, atom->a.bssid))

So that we proceed to the next bss when ether_addr doesn't match. Otherwise this loop never matches.

> +				continue;
> +			if (le16_to_cpu(bss->bss.a.essid_len) !=
> +			      le16_to_cpu(atom->a.essid_len))
> +				continue;
> +			if (memcmp(bss->bss.a.essid, atom->a.essid,
> +			      le16_to_cpu(atom->a.essid_len)))
> +				continue;
                        memcpy(&bss->bss, atom, sizeof(bss->bss);

So we actually update the scan results when we find an older set.


HTH,

Dave.

PS. I couldn't figure how I could get a copy of this message to reply to, so this is going through gmane. Apologies if this confuses things, or doesn't come out right.


-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux