Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/auth.c @ 15766:51dd9ae01585
pass the correct domain to cyrus sasl (sf patch 1663064)
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sat, 03 Mar 2007 19:18:38 +0000 |
parents | 5fe8042783c1 |
children | 32c366eeeb99 |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/auth.c Mon Feb 26 09:41:38 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Sat Mar 03 19:18:38 2007 +0000 @@ -207,13 +207,8 @@ do { again = FALSE; - /* Use the user's domain for compatibility with the old - * DIGESTMD5 code. Note that this may cause problems where - * the user's domain doesn't match the FQDN of the jabber - * service - */ - js->sasl_state = sasl_client_new("xmpp", js->user->domain, NULL, NULL, js->sasl_cb, 0, &js->sasl); + js->sasl_state = sasl_client_new("xmpp", js->serverFQDN, NULL, NULL, js->sasl_cb, 0, &js->sasl); if (js->sasl_state==SASL_OK) { sasl_setprop(js->sasl, SASL_SEC_PROPS, &secprops); gaim_debug_info("sasl", "Mechs found: %s\n", js->sasl_mechs->str); @@ -261,6 +256,12 @@ * Presumably, if we get here that isn't the case and we shouldn't try again? * I suspect that this never happens. */ + /* + * SXW: Yes, this is right. What this handles is the situation where a + * mechanism, say GSSAPI, is tried. If that mechanism fails, it may be + * due to mechanism specific issues, so we want to try one of the other + * supported mechanisms. This code handles that case + */ if (mech && strlen(mech) > 0) { char *pos; if ((pos = strstr(js->sasl_mechs->str, mech))) {