diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2012-09-06 16:40:37 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2012-09-06 17:00:18 +0100 |
commit | 5e1bbe8f891af4d86cb9dfd2f0b36fdfbbb7b2ef (patch) | |
tree | 75643409629f48c3641ef671e4b5ebdc459ef501 | |
parent | 3ae49c706e93d06131cabf5b4a0421869948ec62 (diff) | |
download | telepathy-mission-control-5e1bbe8f891af4d86cb9dfd2f0b36fdfbbb7b2ef.tar.gz |
Butterfly account migration: migrate the password too, if stored
Otherwise the upgrade from Debian 6 to 7 forgets MSN passwords, which
is not the end of the world, but seems less nice than it could be.
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Xavier Claessens <xavier.claessens@collabora.co.uk>
-rw-r--r-- | src/mcd-account-manager.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mcd-account-manager.c b/src/mcd-account-manager.c index a13ba032..e4a81f79 100644 --- a/src/mcd-account-manager.c +++ b/src/mcd-account-manager.c @@ -1209,6 +1209,7 @@ migrate_butterfly_haze_ready (McdManager *manager, MigrateCtx *ctx = user_data; gchar *display_name; GValue v = {0,}; + GValue password_v = {0,}; GHashTable *parameters, *properties; gchar *str; GPtrArray *supersedes; @@ -1221,7 +1222,7 @@ migrate_butterfly_haze_ready (McdManager *manager, goto error; } - /* Parameters; we just care about 'account' */ + /* Parameters; the only mandatory one is 'account' */ if (!mcd_account_get_parameter_of_known_type (ctx->account, "account", G_TYPE_STRING, &v, NULL)) @@ -1233,6 +1234,15 @@ migrate_butterfly_haze_ready (McdManager *manager, parameters = g_hash_table_new (g_str_hash, g_str_equal); g_hash_table_insert (parameters, "account", &v); + /* If MC is storing the password, let's copy that too, so Empathy + * can migrate it somewhere better. */ + if (mcd_account_get_parameter_of_known_type (ctx->account, + "password", G_TYPE_STRING, + &password_v, NULL)) + { + g_hash_table_insert (parameters, "password", &password_v); + } + display_name = mcd_account_dup_display_name (ctx->account); /* Properties */ |