From 88591fd3b95ab21ca016204b49fb80d6d6cdd541 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 1 Oct 2006 18:15:46 +0200 Subject: Better fix for servers that report to comply with XMPP 1.0 but don't offer SASL authentication options. Previous fix tried to do IQ authentication even after successful SASL authentications. --- protocols/jabber/io.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'protocols') diff --git a/protocols/jabber/io.c b/protocols/jabber/io.c index 3dbc6faa..189320d9 100644 --- a/protocols/jabber/io.c +++ b/protocols/jabber/io.c @@ -304,15 +304,14 @@ static xt_status jabber_pkt_features( struct xt_node *node, gpointer data ) if( sasl_pkt_mechanisms( c, data ) == XT_ABORT ) return XT_ABORT; } - else + /* If the server *SEEMS* to support SASL authentication but doesn't + support it after all, we should try to do authentication the + other way. jabber.com doesn't seem to do SASL while it pretends + to be XMPP 1.0 compliant! */ + else if( !( jd->flags & JFLAG_AUTHENTICATED ) && sasl_supported( gc ) ) { - /* If the server *SEEMS* to support SASL authentication but - doesn't support it after all, we should try to do - authentication the other way. jabber.com doesn't seem to - do SASL while it pretends to be XMPP 1.0 compliant! */ - if( sasl_supported( gc ) ) - if( !jabber_start_iq_auth( gc ) ) - return XT_ABORT; + if( !jabber_start_iq_auth( gc ) ) + return XT_ABORT; } if( ( c = xt_find_node( node->children, "bind" ) ) ) -- cgit v1.2.3