[PATCH] Prevent explicit scan command during scan or association
Dmitry Shmidt
dimitrysh
Tue Apr 12 10:38:56 PDT 2011
On Mon, Apr 11, 2011 at 11:37 PM, Janusz Dziedzic
<janusz.dziedzic at gmail.com> wrote:
> 2011/4/12 Dmitry Shmidt <dimitrysh at google.com>:
>> On Mon, Apr 11, 2011 at 11:44 AM, Jouni Malinen <j at w1.fi> wrote:
>>> On Fri, Apr 08, 2011 at 03:45:12PM -0700, Dmitry Shmidt wrote:
>>>> diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
>>>> index 4f3f7e0..c48d1a7 100644
>>>> @@ -3181,8 +3181,14 @@ char * wpa_supplicant_ctrl_iface_process(struct
>>>> wpa_supplicant *wpa_s,
>>>> ? ? ? ? ? ? ? if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED)
>>>> ? ? ? ? ? ? ? ? ? ? ? reply_len = -1;
>>>> ? ? ? ? ? ? ? else {
>>>> - ? ? ? ? ? ? ? ? ? ? wpa_s->scan_req = 2;
>>>> - ? ? ? ? ? ? ? ? ? ? wpa_supplicant_req_scan(wpa_s, 0, 0);
>>>> + ? ? ? ? ? ? ? ? ? ? if (!wpa_s->scanning &&
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ((wpa_s->wpa_state <= WPA_SCANNING) ||
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ?(wpa_s->wpa_state == WPA_COMPLETED))) {
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? wpa_s->scan_req = 2;
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? wpa_supplicant_req_scan(wpa_s, 0, 0);
>>>> + ? ? ? ? ? ? ? ? ? ? } else {
>>>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? wpa_printf(MSG_ERROR, "Ongoing Scan action");
>>>> + ? ? ? ? ? ? ? ? ? ? }
>>>
>>> Hmm.. This would still indicate success to the program that requested
>>> the scan. That does not sound reasonable. At minimum, this would need to
>>> return something like FAIL-BUSY instead of OK in the case that the
>>> request was not accepted. It should also be noted that scan request can
>>> be made over the D-Bus interface and it would probably be a good idea to
>>> handle these in the same way with the ctrl_interface command.
>>
>> You are right, different status makes sense. Patch is attached.
>> About d-bus - I hope somebody that can test it can do this similar patch.
>>
>>>
>
> Hello
>
> I have question connected with wpa->scanning flag.
> When we disable wlan interface and we are not connected to network (no
> active connection):
> Example:
> - scan
> - ifconfig wlan0 down (before scan_res)
>
> If driver will not return scan_res (I am not sure if should or should
> not after ifconfig wlan0 down).
> Next after ifconfig wlan0 up we will have problems with scan command.
> - scan - will be not work because of wpa->scanning.
>
> So, maybe we should add:
>
> ? ? ? ?case EVENT_INTERFACE_DISABLED:
> ? ? ? ? ? ? ? ?wpa_dbg(wpa_s, MSG_DEBUG, "Interface was disabled");
> ? ? ? ? ? ? ? ?wpa_supplicant_mark_disassoc(wpa_s);
> ? ? ? ? ? ? ? ?wpa_supplicant_set_state(wpa_s, WPA_INTERFACE_DISABLED);
> ? ? ? ? ? ? ?+wpa_supplicant_notify_scanning(wpa_s, 0);
> ? ? ? ? ? ? ? ?break;
>
Generally speaking it makes sense to add
wpa_supplicant_notify_scanning(wpa_s, 0); to
wpa_supplicant_mark_disassoc(wpa_s);
> BR
> Janusz
>
>
> --
> Janusz Dziedzic
>
More information about the Hostap
mailing list