aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/jabber/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/jabber/io.c')
-rw-r--r--protocols/jabber/io.c15
1 files changed, 7 insertions, 8 deletions
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" ) ) )