]> git.0d.be Git - empathy.git/commitdiff
Enable server fallback for GTalk account
authorNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Fri, 3 Sep 2010 20:45:45 +0000 (16:45 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Wed, 8 Sep 2010 21:23:30 +0000 (17:23 -0400)
Instead of hardcoding one server, let the connection manager try doing
SRV resolution and if the resolution fails, let it try a list of fallback
servers. Note that talkx.l.google.com is now used instead of
talk.google.com. This is the DNS used in the Windows client, this DNS
returns a list of IPs instead of 1. This also enable usage of HTTPS
proxy when falling back to port 443 with old_ssl.

Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
src/empathy-account-assistant.c
src/empathy-accounts-dialog.c

index 4e615e82eb1a51b0e58580aec340d7a7d20d9407..0f7bf4d251bc8b6aa22e1031ae54c30c84d71801 100644 (file)
@@ -416,12 +416,18 @@ account_assistant_protocol_changed_cb (GtkComboBox *chooser,
 
   if (is_gtalk)
     {
+      gchar *fallback_servers[] = {
+          "talkx.l.google.com",
+          "talkx.l.google.com:443,oldssl",
+          "talkx.l.google.com:80",
+          NULL};
+
       empathy_account_settings_set_icon_name_async (settings, "im-google-talk",
         NULL, NULL);
-      /* We should not have to set the server but that may cause issue with
-       * buggy router. */
-      empathy_account_settings_set_string (settings, "server",
-          "talk.google.com");
+
+      empathy_account_settings_set_string (settings, "server", NULL);
+      empathy_account_settings_set_strv (settings, "fallback-servers",
+          fallback_servers);
     }
   else if (is_facebook)
     {
index 2ad2fb759f8fbe343077dc6800aeb13437f5e610..98301a485ef51c9e06656307b7fc58808650a656 100644 (file)
@@ -618,12 +618,18 @@ accounts_dialog_setup_ui_to_add_account (EmpathyAccountsDialog *dialog)
 
   if (is_gtalk)
     {
+      gchar *fallback_servers[] = {
+          "talkx.l.google.com",
+          "talkx.l.google.com:443,oldssl",
+          "talkx.l.google.com:80",
+          NULL};
+
       empathy_account_settings_set_icon_name_async (settings, "im-google-talk",
           NULL, NULL);
-      /* We should not have to set the server but that may cause issue with
-       * buggy router. */
-      empathy_account_settings_set_string (settings, "server",
-          "talk.google.com");
+
+      empathy_account_settings_set_string (settings, "server", NULL);
+      empathy_account_settings_set_strv (settings, "fallback-servers",
+          fallback_servers);
     }
   else if (is_facebook)
     {