<div dir="ltr">New patch mailed. Note that I didn&#39;t copy the NULL check from <span style="font-family:arial,sans-serif;font-size:13px">wpas_dbus_error_unknown_error, since I think message will be non-NULL in the scan cases. Happy to change it if you think that&#39;s incorrect.</span>
<div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 8, 2014 at 9:19 PM, Dan Williams <span dir="ltr">&lt;<a href="mailto:dcbw@redhat.com" target="_blank">dcbw@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div>On Tue, 2014-04-08 at 17:59 -0700, <a href="mailto:quiche@chromium.org" target="_blank">quiche@chromium.org</a> wrote:<br>
&gt; If we receive a scan request via D-Bus, and wpa_supplicant_scan_trigger<br>
&gt; fails, return the failure to the caller over D-Bus.<br>
<br>
</div>I would suggest making a new namespaced error for the scan failure,<br>
which is API, instead of using a magic error string in the message.<br>
This makes it easier for clients to depend on the error.<br>
<br>
Copy and paste wpas_dbus_error_unknown_error(), rename it, and #define a<br>
new WPAS_DBUS_ERROR_UNKNOWN_ERROR called perhaps<br>
WPA_DBUS_ERROR_IFACE_SCAN_ERROR and defined to:<br>
<br>
WPAS_DBUS_NEW_IFACE_INTERFACE &quot;.ScanError&quot;<br>
<br>
since it&#39;s an interface (eg, network interface) specific error.<br>
<br>
The error string passed to dbus_message_new_error() is simply<br>
informational, and isn&#39;t supposed to be API in any way.<br>
<span><font color="#888888"><br>
Dan<br>
</font></span><div><div><br>
&gt; Signed-hostap: mukesh agrawal &lt;<a href="mailto:quiche@chromium.org" target="_blank">quiche@chromium.org</a>&gt;<br>
&gt; ---<br>
&gt;  wpa_supplicant/dbus/dbus_new_handlers.c | 10 ++++++++--<br>
&gt;  1 file changed, 8 insertions(+), 2 deletions(-)<br>
&gt;<br>
&gt; diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c<br>
&gt; index 4d5e109..d4f9a77 100644<br>
&gt; --- a/wpa_supplicant/dbus/dbus_new_handlers.c<br>
&gt; +++ b/wpa_supplicant/dbus/dbus_new_handlers.c<br>
&gt; @@ -1221,7 +1221,10 @@ DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,<br>
&gt;                               &quot;passive scan&quot;);<br>
&gt;                       goto out;<br>
&gt;               } else if (params.freqs &amp;&amp; params.freqs[0]) {<br>
&gt; -                     wpa_supplicant_trigger_scan(wpa_s, &amp;params);<br>
&gt; +                     if (wpa_supplicant_trigger_scan(wpa_s, &amp;params)) {<br>
&gt; +                             reply = wpas_dbus_error_unknown_error(<br>
&gt; +                             message, &quot;Scan request rejected&quot;);<br>
&gt; +                     }<br>
&gt;               } else {<br>
&gt;                       wpa_s-&gt;scan_req = 2;<br>
&gt;                       wpa_supplicant_req_scan(wpa_s, 0, 0);<br>
&gt; @@ -1231,7 +1234,10 @@ DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,<br>
&gt;                       /* Add wildcard ssid */<br>
&gt;                       params.num_ssids++;<br>
&gt;               }<br>
&gt; -             wpa_supplicant_trigger_scan(wpa_s, &amp;params);<br>
&gt; +             if (wpa_supplicant_trigger_scan(wpa_s, &amp;params)) {<br>
&gt; +                     reply = wpas_dbus_error_unknown_error(<br>
&gt; +                             message, &quot;Scan request rejected&quot;);<br>
&gt; +             }<br>
&gt;       } else {<br>
&gt;               wpa_printf(MSG_DEBUG, &quot;wpas_dbus_handler_scan[dbus]: &quot;<br>
&gt;                          &quot;Unknown scan type: %s&quot;, type);<br>
<br>
<br>
</div></div></blockquote></div><br></div></div>