diff libpurple/protocols/jabber/auth.c @ 15765: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))) {