summaryrefslogtreecommitdiff
path: root/src/agent.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2011-12-02 16:18:23 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-12-12 10:44:40 +0100
commit5bc1f27efd0ebe70b5bddfab5543a8f48f33eae6 (patch)
treefb6e1a7e2410dfe87e8dfaca5d46ce443017205e /src/agent.c
parent7f218c554166af6a1782b2aefde8e873cc9e3e99 (diff)
downloadconnman-5bc1f27efd0ebe70b5bddfab5543a8f48f33eae6.tar.gz
connman-5bc1f27efd0ebe70b5bddfab5543a8f48f33eae6.tar.bz2
connman-5bc1f27efd0ebe70b5bddfab5543a8f48f33eae6.zip
agent: Be explicit when RequestInput method return provides values
Add a boolean variable to authentication_cb_t callback to explicitely state when values are returned from RequestInput.
Diffstat (limited to 'src/agent.c')
-rw-r--r--src/agent.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/agent.c b/src/agent.c
index 1c982ed7..0bbb2665 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -94,6 +94,7 @@ struct request_input_reply {
static void request_input_passphrase_reply(DBusPendingCall *call, void *user_data)
{
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;
@@ -105,6 +106,8 @@ static void request_input_passphrase_reply(DBusPendingCall *call, void *user_dat
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) {
@@ -164,8 +167,9 @@ static void request_input_passphrase_reply(DBusPendingCall *call, void *user_dat
}
done:
- passphrase_reply->callback(passphrase_reply->service, identity,
- passphrase, passphrase_reply->user_data);
+ passphrase_reply->callback(passphrase_reply->service, values_received,
+ identity, passphrase,
+ passphrase_reply->user_data);
connman_service_unref(passphrase_reply->service);
dbus_message_unref(reply);
g_free(passphrase_reply);
@@ -314,6 +318,7 @@ static void request_input_login_reply(DBusPendingCall *call, void *user_data)
done:
username_password_reply->callback(username_password_reply->service,
+ TRUE,
username, password,
username_password_reply->user_data);
connman_service_unref(username_password_reply->service);