aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2006-10-01 18:15:46 +0200
committerWilmer van der Gaast <wilmer@gaast.net>2006-10-01 18:15:46 +0200
commit88591fd3b95ab21ca016204b49fb80d6d6cdd541 (patch)
tree2f674a8a4f4781c437b66c0186d2089e9a81ec75
parent0e2d97f6b3bcffd5637eafa9a687e42a7c134f57 (diff)
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.
-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" ) ) )