dbus: Fix WPS property of fi.w1.wpa_supplicant1.BSS interface
The dbus interface documentation says the following about the WPS property of the fi.w1.wpa_supplicant1.BSS interface: == WPS information of the BSS. Empty dictionary indicates no WPS support. Dictionary entries are: Type s "pbc", "pin", "" == However the implementation returns "type" => "" for BSSes that do not support WPS. Fix the implementation to match the documentation. Return empty dictionary if there is no WPS support. And "type" => "" if WPS is supported, but is not in progress right now. Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
This commit is contained in:
parent
d447cd596f
commit
8e2c5f1a20
1 changed files with 3 additions and 1 deletions
|
@ -3791,6 +3791,7 @@ dbus_bool_t wpas_dbus_getter_bss_wps(DBusMessageIter *iter, DBusError *error,
|
||||||
struct wpabuf *wps_ie;
|
struct wpabuf *wps_ie;
|
||||||
#endif /* CONFIG_WPS */
|
#endif /* CONFIG_WPS */
|
||||||
DBusMessageIter iter_dict, variant_iter;
|
DBusMessageIter iter_dict, variant_iter;
|
||||||
|
int wps_support = 0;
|
||||||
const char *type = "";
|
const char *type = "";
|
||||||
|
|
||||||
res = get_bss_helper(args, error, __func__);
|
res = get_bss_helper(args, error, __func__);
|
||||||
|
@ -3805,6 +3806,7 @@ dbus_bool_t wpas_dbus_getter_bss_wps(DBusMessageIter *iter, DBusError *error,
|
||||||
#ifdef CONFIG_WPS
|
#ifdef CONFIG_WPS
|
||||||
wps_ie = wpa_bss_get_vendor_ie_multi(res, WPS_IE_VENDOR_TYPE);
|
wps_ie = wpa_bss_get_vendor_ie_multi(res, WPS_IE_VENDOR_TYPE);
|
||||||
if (wps_ie) {
|
if (wps_ie) {
|
||||||
|
wps_support = 1;
|
||||||
if (wps_is_selected_pbc_registrar(wps_ie))
|
if (wps_is_selected_pbc_registrar(wps_ie))
|
||||||
type = "pbc";
|
type = "pbc";
|
||||||
else if (wps_is_selected_pin_registrar(wps_ie))
|
else if (wps_is_selected_pin_registrar(wps_ie))
|
||||||
|
@ -3814,7 +3816,7 @@ dbus_bool_t wpas_dbus_getter_bss_wps(DBusMessageIter *iter, DBusError *error,
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_WPS */
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
if (!wpa_dbus_dict_append_string(&iter_dict, "Type", type) ||
|
if ((wps_support && !wpa_dbus_dict_append_string(&iter_dict, "Type", type)) ||
|
||||||
!wpa_dbus_dict_close_write(&variant_iter, &iter_dict) ||
|
!wpa_dbus_dict_close_write(&variant_iter, &iter_dict) ||
|
||||||
!dbus_message_iter_close_container(iter, &variant_iter))
|
!dbus_message_iter_close_container(iter, &variant_iter))
|
||||||
goto nomem;
|
goto nomem;
|
||||||
|
|
Loading…
Reference in a new issue