From f4d80d432a22487eeacfe4f3216c132d5a4e0a12 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(-) diff --git a/libempathy/empathy-keyring.c b/libempathy/empathy-keyring.c index 4923a9463..baeffbde2 100644 --- a/libempathy/empathy-keyring.c +++ b/libempathy/empathy-keyring.c @@ -39,6 +39,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) { @@ -47,17 +48,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