diff options
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-server-sasl-handler.c | 22 |
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); } } |