aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy/empathy-server-sasl-handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy/empathy-server-sasl-handler.c')
-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);
}
}