pidgin: 4074575d: If SASL authentication fails, we general...

evands at pidgin.im evands at pidgin.im
Mon May 3 22:15:33 EDT 2010


-----------------------------------------------------------------
Revision: 4074575d1418097eacac79c9b2cbef96cb788265
Ancestor: ce00ec5bb0ec76da8360bd2098fb23cf7ba3e0ad
Author: evands at pidgin.im
Date: 2010-05-04T01:46:40
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/4074575d1418097eacac79c9b2cbef96cb788265

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

ChangeLog: 

If SASL authentication fails, we generally shouldn't be setting an error
message, as the actual error was communicated via the 
"urn:ietf:params:xml:ns:xmpp-sasl" failure stanza. Setting an error means that
jabber_auth_handle_failure() won't ever call jabber_parse_error() to extract
the actual error message and interpretation.

For example, if authentication fails, previously we would show "SASL 
authentication failed" and think it was a PURPLE_CONNECTION_ERROR_NETWORK_ERROR
which is incorrect. Now, jabber_parse_error() gets a chance to return
"Not Authorized", clear the saved password, and return 
PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED.

We should still set this error message if there is an internal SASL failure
leading to SASL_BADPARAM or SASL_NOMEM.

-------------- next part --------------
============================================================
--- libpurple/protocols/jabber/auth_cyrus.c	3936dda160a35b577d641d0cfaba9aeee31d4db0
+++ libpurple/protocols/jabber/auth_cyrus.c	bdafea53026edbce0b354e9394f89c2f35e9e5fe
@@ -259,6 +259,7 @@ jabber_auth_start_cyrus(JabberStream *js
 				/* Fatal errors. Give up and go home */
 			case SASL_BADPARAM:
 			case SASL_NOMEM:
+				*error = g_strdup(_("SASL authentication failed"));
 				break;
 
 				/* For everything else, fail the mechanism and try again */
@@ -317,7 +318,6 @@ jabber_auth_start_cyrus(JabberStream *js
 		*reply = auth;
 		return JABBER_SASL_STATE_CONTINUE;
 	} else {
-		*error = g_strdup(_("SASL authentication failed"));
 		return JABBER_SASL_STATE_FAIL;
 	}
 }


More information about the Commits mailing list