aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2011-02-28 21:50:43 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2011-02-28 22:06:37 +0800
commitf4d80d432a22487eeacfe4f3216c132d5a4e0a12 (patch)
treeb33ced5b6071ce4b131036c72bb09384969dba15 /libempathy
parentee8f37f906b6d5c678a393a4aa94a9566d2c6ecc (diff)
downloadgsoc2013-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')
-rw-r--r--libempathy/empathy-keyring.c19
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);
}