pidgin: 80ca41a7: disapproval of revision '5f410e729e7a8a2...

darkrain42 at pidgin.im darkrain42 at pidgin.im
Mon May 3 22:30:28 EDT 2010


-----------------------------------------------------------------
Revision: 80ca41a75331b3ca9b4c2a4efa04d72104f4909e
Ancestor: 5f410e729e7a8a2e46752d46b37a7c11e17d5ed7
Author: darkrain42 at pidgin.im
Date: 2010-05-04T02:22:26
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/80ca41a75331b3ca9b4c2a4efa04d72104f4909e

Modified files:
        libpurple/protocols/jabber/auth_cyrus.c

ChangeLog: 

disapproval of revision '5f410e729e7a8a2e46752d46b37a7c11e17d5ed7'

In favor of Evan's changes

-------------- next part --------------
============================================================
--- libpurple/protocols/jabber/auth_cyrus.c	0baec9cfbd26ca22a7fb667ec68a1804e087770c
+++ libpurple/protocols/jabber/auth_cyrus.c	ea44881795aca9d4a6d2926935a069f284278479
@@ -252,9 +252,24 @@ jabber_auth_start_cyrus(JabberStream *js
 					g_free(msg);
 					return JABBER_SASL_STATE_CONTINUE;
 
+				} else {
+					/* We have no mechs which can work.
+					 * Try falling back on the old jabber:iq:auth method. We get here if the server supports
+					 * one or more sasl mechs, we are compiled with cyrus-sasl support, but we support or can connect with none of
+					 * the offerred mechs. jabberd 2.0 w/ SASL and Apple's iChat Server 10.5 both handle and expect
+					 * jabber:iq:auth in this situation.  iChat Server in particular offers SASL GSSAPI by default, which is often
+					 * not configured on the client side, and expects a fallback to jabber:iq:auth when it (predictably) fails.
+					 *
+					 * Note: xep-0078 points out that using jabber:iq:auth after a sasl failure is wrong. However,
+					 * I believe this refers to actual authentication failure, not a simple lack of concordant mechanisms.
+					 * Doing otherwise means that simply compiling with SASL support renders the client unable to connect to servers
+					 * which would connect without issue otherwise. -evands
+					 */
+					js->auth_mech = NULL;
+					jabber_auth_start_old(js);
+					return JABBER_SASL_STATE_CONTINUE;
 				}
-
-				/* We found no mechs which could work */
+				/* not reached */
 				break;
 
 				/* Fatal errors. Give up and go home */


More information about the Commits mailing list