gobjectification: fa688bec: Restore some account migration stuff.
qulogic at pidgin.im
qulogic at pidgin.im
Sun Jan 9 20:37:51 EST 2011
----------------------------------------------------------------------
Revision: fa688becafbd5f62e14abd7b411df79014d37dec
Parent: 4b4277d6fdceb21903066753a1937f034d42cec8
Author: qulogic at pidgin.im
Date: 01/09/11 19:53:54
Branch: im.pidgin.gobjectification
URL: http://d.pidgin.im/viewmtn/revision/info/fa688becafbd5f62e14abd7b411df79014d37dec
Changelog:
Restore some account migration stuff.
Changes against parent 4b4277d6fdceb21903066753a1937f034d42cec8
patched libpurple/accountlist.c
-------------- next part --------------
============================================================
--- libpurple/accountlist.c df2072e0b055985656a2edf0b6f021c0ad2ee011
+++ libpurple/accountlist.c 00da92c491df3b6efb504edfb5d79f3527e5893f
@@ -73,6 +73,78 @@ static void
*********************************************************************/
static void
+migrate_yahoo_japan(PurpleAccount *account)
+{
+ /* detect a Yahoo! JAPAN account that existed prior to 2.6.0 and convert it
+ * to use the new prpl-yahoojp. Also remove the account-specific settings
+ * we no longer need */
+
+ if(purple_strequal(purple_account_get_protocol_id(account), "prpl-yahoo")) {
+ if(purple_account_get_bool(account, "yahoojp", FALSE)) {
+ const char *serverjp = purple_account_get_string(account, "serverjp", NULL);
+ const char *xferjp_host = purple_account_get_string(account, "xferjp_host", NULL);
+
+ g_return_if_fail(serverjp != NULL);
+ g_return_if_fail(xferjp_host != NULL);
+
+ purple_account_set_string(account, "server", serverjp);
+ purple_account_set_string(account, "xfer_host", xferjp_host);
+
+#if 0
+#warning TODO: Replace this with gobjectified stuff
+ purple_account_set_protocol_id(account, "prpl-yahoojp");
+#endif
+ }
+
+ /* these should always be nuked */
+ purple_account_remove_setting(account, "yahoojp");
+ purple_account_remove_setting(account, "serverjp");
+ purple_account_remove_setting(account, "xferjp_host");
+
+ }
+}
+
+static void
+migrate_icq_server(PurpleAccount *account)
+{
+ /* Migrate the login server setting for ICQ accounts. See
+ * 'mtn log --last 1 --no-graph --from b6d7712e90b68610df3bd2d8cbaf46d94c8b3794'
+ * for details on the change. */
+
+ if(purple_strequal(purple_account_get_protocol_id(account), "prpl-icq")) {
+ const char *tmp = purple_account_get_string(account, "server", NULL);
+
+ /* Non-secure server */
+ if(purple_strequal(tmp, "login.messaging.aol.com") ||
+ purple_strequal(tmp, "login.oscar.aol.com"))
+ purple_account_set_string(account, "server", "login.icq.com");
+
+ /* Secure server */
+ if(purple_strequal(tmp, "slogin.oscar.aol.com"))
+ purple_account_set_string(account, "server", "slogin.icq.com");
+ }
+}
+
+static void
+migrate_xmpp_encryption(PurpleAccount *account)
+{
+ /* When this is removed, nuke the "old_ssl" and "require_tls" settings */
+ if (g_str_equal(purple_account_get_protocol_id(account), "prpl-jabber")) {
+ const char *sec = purple_account_get_string(account, "connection_security", "");
+
+ if (g_str_equal("", sec)) {
+ const char *val = "require_tls";
+ if (purple_account_get_bool(account, "old_ssl", FALSE))
+ val = "old_ssl";
+ else if (!purple_account_get_bool(account, "require_tls", TRUE))
+ val = "opportunistic_tls";
+
+ purple_account_set_string(account, "connection_security", val);
+ }
+ }
+}
+
+static void
parse_settings(xmlnode *node, PurpleAccount *account)
{
const char *ui;
@@ -135,6 +207,16 @@ parse_settings(xmlnode *node, PurpleAcco
g_free(data);
}
+
+ /* we do this here because we need access to account settings to determine
+ * if we can/should migrate an old Yahoo! JAPAN account */
+ migrate_yahoo_japan(account);
+ /* we do this here because we need access to account settings to determine
+ * if we can/should migrate an ICQ account's server setting */
+ migrate_icq_server(account);
+ /* we do this here because we need to do it before the user views the
+ * Edit Account dialog. */
+ migrate_xmpp_encryption(account);
}
static GList *
More information about the Commits
mailing list