D-Bus: Fix ServiceDiscoveryResponse to accept int32 dialog_token
authorJouni Malinen <j@w1.fi>
Wed, 31 Dec 2014 08:45:50 +0000 (10:45 +0200)
committerJouni Malinen <j@w1.fi>
Wed, 31 Dec 2014 08:47:31 +0000 (10:47 +0200)
The ServiceDiscoveryRequest signal uses int32 for encoding dialog_token
for some reason (even though this is a u8 field).
ServiceDiscoveryResponse is supposed to accept the values from the
signal as-is, so extend that to accept int32 in addition to the
previously used uint32.

Signed-off-by: Jouni Malinen <j@w1.fi>
wpa_supplicant/dbus/dbus_new_handlers_p2p.c

index 1a17e65..b1238ad 100644 (file)
@@ -2638,7 +2638,8 @@ DBusMessage * wpas_dbus_handler_p2p_service_sd_res(
                           entry.type == DBUS_TYPE_INT32) {
                        freq = entry.uint32_value;
                } else if (!os_strcmp(entry.key, "dialog_token") &&
-                          entry.type == DBUS_TYPE_UINT32) {
+                          (entry.type == DBUS_TYPE_UINT32 ||
+                           entry.type == DBUS_TYPE_INT32)) {
                        dlg_tok = entry.uint32_value;
                } else if (!os_strcmp(entry.key, "tlvs")) {
                        if (entry.type != DBUS_TYPE_ARRAY ||