diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-03-16 21:03:40 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-03-17 21:44:27 +0800 |
commit | ca9d3b8180e49292724243090fd5394172fa24c9 (patch) | |
tree | 56efcf6684eebb33c67a7e5a3a0141ec0d126983 | |
parent | 7980966fd3bb38fde70946c057704b1b5f409968 (diff) | |
download | gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar.gz gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar.bz2 gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar.lz gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar.xz gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.tar.zst gsoc2013-empathy-ca9d3b8180e49292724243090fd5394172fa24c9.zip |
save the password before trying to connect the new account (#643690)
-rw-r--r-- | libempathy/empathy-account-settings.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libempathy/empathy-account-settings.c b/libempathy/empathy-account-settings.c index 41f663736..0db28d7a3 100644 --- a/libempathy/empathy-account-settings.c +++ b/libempathy/empathy-account-settings.c @@ -1438,6 +1438,9 @@ empathy_account_settings_account_updated (GObject *source, { if (priv->password != NULL) { + /* FIXME: we shouldn't save the password if we + * can't (MaySaveResponse=False) but we don't have API to check that + * at this point (fdo #35382). */ empathy_keyring_set_account_password_async (priv->account, priv->password, empathy_account_settings_set_password_cb, settings); } @@ -1485,6 +1488,19 @@ empathy_account_settings_created_cb (GObject *source, else { priv->account = g_object_ref (account); + + if (priv->supports_sasl && priv->password != NULL) + { + /* Save the password before connecting */ + /* FIXME: we shouldn't save the password if we + * can't (MaySaveResponse=False) but we don't have API to check that + * at this point (fdo #35382). */ + empathy_keyring_set_account_password_async (priv->account, + priv->password, empathy_account_settings_set_password_cb, + settings); + return; + } + empathy_account_settings_discard_changes (settings); } |