diff options
author | Paul Aurich <darkrain42@pidgin.im> | 2010-05-01 16:37:07 +0000 |
---|---|---|
committer | Paul Aurich <darkrain42@pidgin.im> | 2010-05-01 16:37:07 +0000 |
commit | ae9e09e2425464a50f5af25c080674c74236162c (patch) | |
tree | f903ac61e2e4236de3758ac67ae6b0b6753c1274 | |
parent | 94c6e75d21cc01bd98ebada8af407399abec9ab2 (diff) | |
download | pidgin-ae9e09e2425464a50f5af25c080674c74236162c.tar.gz |
jabber: Only add the ga:client-uses-full-bind-result to gmail/googlemail domains
I think this should be okay, but admittedly it might cause issues. Anyway,
the previous one definitely caused issues with Punjab, which fails to
stringify the namespaced attributes.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | libpurple/protocols/jabber/auth_cyrus.c | 7 | ||||
-rw-r--r-- | libpurple/protocols/jabber/auth_plain.c | 7 |
3 files changed, 15 insertions, 4 deletions
@@ -96,6 +96,11 @@ version 2.7.0 (??/??/????): minutes). This fixes an issue with Openfire disconnecting a libpurple-baesd client that has just been quiet for about 6 minutes. + * Only support Google Talk's JID Domain Discovery extension + (allowing a user to log in with "@gmail.com" or "@googlemail.com" + interchangeably) for those two domains. This change was made + due to interoperability issues with some BOSH Connection Managers + and namespaced attributes. Yahoo/Yahoo JAPAN: * Attempt to better handle transparent proxies interfering with diff --git a/libpurple/protocols/jabber/auth_cyrus.c b/libpurple/protocols/jabber/auth_cyrus.c index 0a8cbb33c7..ba8fb68940 100644 --- a/libpurple/protocols/jabber/auth_cyrus.c +++ b/libpurple/protocols/jabber/auth_cyrus.c @@ -314,8 +314,11 @@ jabber_auth_start_cyrus(JabberStream *js, xmlnode **reply, char **error) xmlnode_set_namespace(auth, NS_XMPP_SASL); xmlnode_set_attrib(auth, "mechanism", js->current_mech); - xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); - xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); + if (g_str_equal(js->user->domain, "gmail.com") || + g_str_equal(js->user->domain, "googlemail.com")) { + xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); + xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); + } if (clientout) { if (coutlen == 0) { diff --git a/libpurple/protocols/jabber/auth_plain.c b/libpurple/protocols/jabber/auth_plain.c index 81d9118096..b8f38f20ce 100644 --- a/libpurple/protocols/jabber/auth_plain.c +++ b/libpurple/protocols/jabber/auth_plain.c @@ -40,8 +40,11 @@ static xmlnode *finish_plaintext_authentication(JabberStream *js) auth = xmlnode_new("auth"); xmlnode_set_namespace(auth, NS_XMPP_SASL); - xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); - xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); + if (g_str_equal(js->user->domain, "gmail.com") || + g_str_equal(js->user->domain, "googlemail.com")) { + xmlnode_set_attrib(auth, "xmlns:ga", "http://www.google.com/talk/protocol/auth"); + xmlnode_set_attrib(auth, "ga:client-uses-full-bind-result", "true"); + } response = g_string_new(""); response = g_string_append_len(response, "\0", 1); |