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 21:53:56 +0800
commit875ec756ab0f8ae86c40b9d9432d9c7b0b66c318 (patch)
treed41f8271cf6186106bcf48bd0615911867f561ab /libempathy
parentc4cdf9011e7cfe81b32db1742209edc7f2f54ee6 (diff)
downloadgsoc2013-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.c19
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);
}