if (priv->protocols)
{
- g_hash_table_destroy (priv->protocols);
+ g_hash_table_unref (priv->protocols);
priv->protocols = NULL;
}
EmpathyAccountSettings *
empathy_protocol_chooser_create_account_settings (EmpathyProtocolChooser *self)
{
- EmpathyAccountSettings *settings;
+ EmpathyAccountSettings *settings = NULL;
gchar *str;
const gchar *display_name;
TpConnectionManager *cm;
TpConnectionManagerProtocol *proto;
- gchar *service;
+ gchar *service = NULL;
cm = empathy_protocol_chooser_dup_selected (self, &proto, &service);
if (cm == NULL || proto == NULL)
- return NULL;
+ goto out;
if (service != NULL)
display_name = empathy_service_name_to_display_name (service);
"talkx.l.google.com:80",
NULL};
+ gchar *extra_certificate_identities[] = {
+ "talk.google.com",
+ NULL};
+
empathy_account_settings_set_icon_name_async (settings, "im-google-talk",
NULL, NULL);
-
+ empathy_account_settings_set_string (settings, "server",
+ extra_certificate_identities[0]);
+ empathy_account_settings_set_boolean (settings, "require-encryption",
+ TRUE);
empathy_account_settings_set_strv (settings, "fallback-servers",
fallback_servers);
+
+ if (empathy_account_settings_have_tp_param (settings,
+ "extra-certificate-identities"))
+ {
+ empathy_account_settings_set_strv (settings,
+ "extra-certificate-identities", extra_certificate_identities);
+ }
}
else if (!tp_strdiff (service, "facebook"))
{
empathy_account_settings_set_icon_name_async (settings, "im-facebook",
NULL, NULL);
-
+ empathy_account_settings_set_boolean (settings, "require-encryption",
+ TRUE);
empathy_account_settings_set_string (settings, "server",
"chat.facebook.com");
}
- g_object_unref (cm);
+out:
+ tp_clear_object (&cm);
g_free (service);
return settings;
}