[empathy] Enable server fallback for GTalk account



commit 3e97317d56f9ae49a8424c679fc6e489483da8d1
Author: Nicolas Dufresne <nicolas dufresne collabora co uk>
Date:   Fri Sep 3 16:45:45 2010 -0400

    Enable server fallback for GTalk account
    
    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 |   14 ++++++++++----
 src/empathy-accounts-dialog.c   |   14 ++++++++++----
 2 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/src/empathy-account-assistant.c b/src/empathy-account-assistant.c
index 4e615e8..0f7bf4d 100644
--- a/src/empathy-account-assistant.c
+++ b/src/empathy-account-assistant.c
@@ -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)
     {
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 2ad2fb7..98301a4 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -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)
     {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]