[PATCH] Currently the DBus Interface.Scan API is counter-intuitive. It issues ProbeRequests when doing passive scans when channels are specified, and does not issue ProbeRequests for broadcast active scans.

Dan Williams dcbw at redhat.com
Wed Oct 6 18:53:22 EDT 2010


On Wed, 2010-10-06 at 15:26 -0700, Daniel Kurtz wrote:
> This patch updates DBus API .Scan() logic per the test cases listed below:

Yeah, that patch looks like the right thing to do.

Dan

>  1) Interface.Scan({'Type':'passive'})
>     Request:     Passive scan (all channels)
>     Should be:   No ProbeRequests; Passive Scan results for all channels
>     Previous:    1 ProbeRequest on all channels for both broadcast SSID and selected network (scan_ssid=1)
>     This Patch:  --No change--: 1 ProbeRequest on all channels for both broadcast SSID and selected network (scan_ssid=1)
> 
>  2) Interface.Scan({'Type':'passive', 'Channel':(2412, 20)})
>     Request:     Passive scan (1 channel)
>     Should be:   No ProbeRequests; Passive Scan results for 1 channel (plus overlapping channels)
>     Previous:    1 broadcast ProbeRequest on specified channel
>     This Patch:  --Fixed--: No ProbeRequests; Passive Scan results for 1 channel (plus overlapping channels)
> 
>  3) Interface.Scan({'Type':'active'})
>     Request:     Active scan with no SSIDs (all channels)
>     Should be:   1 broadcast ProbeRequest on all channels
>     Previous:    No ProbeRequests;  passive scan results for all channels
>     This Patch:  --Fixed--: 1 broadcast ProbeRequest on all channels
> 
>  4) Interface.Scan({'Type':'active', 'Channel':(2412, 20)})
>     Request:     Active scan with no SSIDs (1 channel)
>     Should be:   1 broadcast ProbeRequest on specified channel
>     Previous:    No ProbeRequests; Passive scan results for specified channel (plus overlapping channels)
>     This Patch:  --Fixed--: 1 broadcast ProbeRequest on specified channel
> ---
>  wpa_supplicant/dbus/dbus_new_handlers.c |    6 ++++--
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
> index e2b5e50..da39fa1 100644
> --- a/wpa_supplicant/dbus/dbus_new_handlers.c
> +++ b/wpa_supplicant/dbus/dbus_new_handlers.c
> @@ -1260,14 +1260,16 @@ DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,
>  				"passive scan");
>  			goto out;
>  		} else if (params.freqs && params.freqs[0]) {
> -			/* wildcard ssid */
> -			params.num_ssids++;
>  			wpa_supplicant_trigger_scan(wpa_s, &params);
>  		} else {
>  			wpa_s->scan_req = 2;
>  			wpa_supplicant_req_scan(wpa_s, 0, 0);
>  		}
>  	} else if (!os_strcmp(type, "active")) {
> +		if (!params.num_ssids) {
> +			/* Add wildcard ssid */
> +			params.num_ssids++;
> +		}
>  		wpa_supplicant_trigger_scan(wpa_s, &params);
>  	} else {
>  		wpa_printf(MSG_DEBUG, "wpas_dbus_handler_scan[dbus]: "




More information about the HostAP mailing list