- struct request_input_reply *passphrase_reply = user_data;
- connman_bool_t values_received = FALSE;
- connman_bool_t wps = FALSE;
- char *identity = NULL;
- char *passphrase = NULL;
- char *wpspin = NULL;
- char *key;
- DBusMessageIter iter, dict;
- DBusMessage *reply = dbus_pending_call_steal_reply(call);
-
- if (dbus_message_get_type(reply) == DBUS_MESSAGE_TYPE_ERROR)
- goto done;
-
- values_received = TRUE;
-
- dbus_message_iter_init(reply, &iter);
- dbus_message_iter_recurse(&iter, &dict);
- while (dbus_message_iter_get_arg_type(&dict) == DBUS_TYPE_DICT_ENTRY) {
- DBusMessageIter entry, value;
-
- dbus_message_iter_recurse(&dict, &entry);
- if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_STRING)
- break;
-
- dbus_message_iter_get_basic(&entry, &key);
-
- if (g_str_equal(key, "Identity")) {
- dbus_message_iter_next(&entry);
- if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
- break;
- dbus_message_iter_recurse(&entry, &value);
- dbus_message_iter_get_basic(&value, &identity);
-
- } else if (g_str_equal(key, "Passphrase")) {
- dbus_message_iter_next(&entry);
- if (dbus_message_iter_get_arg_type(&entry) != DBUS_TYPE_VARIANT)
- break;
- dbus_message_iter_recurse(&entry, &value);
- dbus_message_iter_get_basic(&value, &passphrase);
-
- } else if (g_str_equal(key, "WPS")) {
- wps = TRUE;
-
- dbus_message_iter_next(&entry);
- if (dbus_message_iter_get_arg_type(&entry)
- != DBUS_TYPE_VARIANT)
- break;
- dbus_message_iter_recurse(&entry, &value);
- dbus_message_iter_get_basic(&value, &wpspin);
- break;
- }
- dbus_message_iter_next(&dict);
- }