diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-02-28 21:50:43 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-02-28 21:53:56 +0800 |
commit | 875ec756ab0f8ae86c40b9d9432d9c7b0b66c318 (patch) | |
tree | d41f8271cf6186106bcf48bd0615911867f561ab /libempathy | |
parent | c4cdf9011e7cfe81b32db1742209edc7f2f54ee6 (diff) | |
download | gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar.gz gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar.bz2 gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar.lz gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar.xz gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.tar.zst gsoc2013-empathy-875ec756ab0f8ae86c40b9d9432d9c7b0b66c318.zip |
find_items_cb: always use the first password found
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-keyring.c | 19 |
1 files changed, 14 insertions, 5 deletions
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); } |