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 22:06:37 +0800 |
commit | f4d80d432a22487eeacfe4f3216c132d5a4e0a12 (patch) | |
tree | b33ced5b6071ce4b131036c72bb09384969dba15 /libempathy/empathy-keyring.c | |
parent | ee8f37f906b6d5c678a393a4aa94a9566d2c6ecc (diff) | |
download | gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar.gz gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar.bz2 gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar.lz gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar.xz gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.tar.zst gsoc2013-empathy-f4d80d432a22487eeacfe4f3216c132d5a4e0a12.zip |
find_items_cb: always use the first password found
Diffstat (limited to 'libempathy/empathy-keyring.c')
-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 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); } |