From 875ec756ab0f8ae86c40b9d9432d9c7b0b66c318 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 28 Feb 2011 14:50:43 +0100 Subject: find_items_cb: always use the first password found --- libempathy/empathy-keyring.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'libempathy') diff --git a/libempathy/empathy-keyring.c b/libempathy/empathy-keyring.c index f8422c151..425ae1ed6 100644 --- a/libempathy/empathy-keyring.c +++ b/libempathy/empathy-keyring.c @@ -55,6 +55,7 @@ find_items_cb (GnomeKeyringResult result, gpointer user_data) { GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (user_data); + GnomeKeyringFound *found; if (result != GNOME_KEYRING_RESULT_OK) { @@ -63,17 +64,25 @@ find_items_cb (GnomeKeyringResult result, gnome_keyring_result_to_message (result)); g_simple_async_result_set_from_error (simple, error); g_clear_error (&error); + goto out; } - if (g_list_length (list) == 1) + if (list == NULL) { - GnomeKeyringFound *found = list->data; + g_simple_async_result_set_error (simple, TP_ERROR, + TP_ERROR_DOES_NOT_EXIST, "Password not found"); + goto out; + } - DEBUG ("Got secret"); + /* Get the first password returned. Ideally we should use the latest + * modified or something but we don't have this information from + * gnome-keyring atm. */ + found = list->data; + DEBUG ("Got secret"); - g_simple_async_result_set_op_res_gpointer (simple, found->secret, NULL); - } + g_simple_async_result_set_op_res_gpointer (simple, found->secret, NULL); +out: g_simple_async_result_complete (simple); g_object_unref (simple); } -- cgit v1.2.3