summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2010-12-06 10:06:51 +0000
committerJonny Lamb <jonny.lamb@collabora.co.uk>2010-12-06 10:06:51 +0000
commitb66750b8540761c03b935ff93d50c642c9d1f07c (patch)
treedda2dbd45819342a8ea7a439b59fbdd0cc561c44
parent085edd72db61d923a639d874f44c9ed2805e75a8 (diff)
server-sasl-handler: save the password if requested
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
-rw-r--r--libempathy/empathy-server-sasl-handler.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/libempathy/empathy-server-sasl-handler.c b/libempathy/empathy-server-sasl-handler.c
index b71cbdb7b..d9f504942 100644
--- a/libempathy/empathy-server-sasl-handler.c
+++ b/libempathy/empathy-server-sasl-handler.c
@@ -359,6 +359,25 @@ start_mechanism_with_data_cb (TpChannel *proxy,
DEBUG ("Started mechanism successfully");
}
+static void
+empathy_server_sasl_handler_set_password_cb (GObject *source,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GError *error = NULL;
+
+ if (!empathy_keyring_set_password_finish (TP_ACCOUNT (source), result,
+ &error))
+ {
+ DEBUG ("Failed to set password: %s", error->message);
+ g_clear_error (&error);
+ }
+ else
+ {
+ DEBUG ("Password set successfully.");
+ }
+}
+
void
empathy_server_sasl_handler_provide_password (
EmpathyServerSASLHandler *handler,
@@ -389,7 +408,8 @@ empathy_server_sasl_handler_provide_password (
if (remember)
{
- /* TODO */
+ empathy_keyring_set_password_async (priv->account, password,
+ empathy_server_sasl_handler_set_password_cb, NULL);
}
}