On Thu, 2014-09-04 at 22:04 -0400, Mathieu Trudel-Lapierre wrote:
> It's counter-intuitive to signal a ScanDone when the request to Scan succeeds
> with the supplicant, because we'll get one ScanDone very early one when
> the scan begins, which will trigger the usual mechanisms, and again once
> the scan really is finished.
> 
> It does still make sense however to signal when the request fails.
> 
> Signed-off-by: Mathieu Trudel-Lapierre <[email protected]>
> ---
>  src/supplicant-manager/nm-supplicant-interface.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/supplicant-manager/nm-supplicant-interface.c 
> b/src/supplicant-manager/nm-supplicant-interface.c
> index 77924b3..d495213 100644
> --- a/src/supplicant-manager/nm-supplicant-interface.c
> +++ b/src/supplicant-manager/nm-supplicant-interface.c
> @@ -1176,10 +1176,11 @@ scan_request_cb (DBusGProxy *proxy, DBusGProxyCall 
> *call_id, gpointer user_data)
>       GError *err = NULL;
>  
>       nm_call_store_remove (priv->other_pcalls, proxy, call_id);
> -     if (!dbus_g_proxy_end_call (proxy, call_id, &err, G_TYPE_INVALID))
> +     if (!dbus_g_proxy_end_call (proxy, call_id, &err, G_TYPE_INVALID)) {
>               nm_log_warn (LOGD_SUPPLICANT, "Could not get scan request 
> result: %s", err->message);
> +             g_signal_emit (self, signals[SCAN_DONE], 0, FALSE);
> +     }
>  
> -     g_signal_emit (self, signals[SCAN_DONE], 0, err ? FALSE : TRUE);
>       g_clear_error (&err);
>  }

I dug more into the supplicant code, and both the WEXT and nl80211
drivers implement a scan timeout, which should emit an scan event if the
driver never replies.  So I think this patch is actually sufficient, and
we can rely on the supplicant to indicate when a scan has finished.  If
that never happens for some reason, we should fix the supplicant.  For
extra credit we could do another timeout in NM itself, though that seems
somewhat overkill.

So contrary to my earlier statements on IRC, I think this patch is fine.

Dan

_______________________________________________
networkmanager-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to