# HG changeset patch # User Mikael Hallendal # Date 1172280175 -3600 # Node ID bf60cd9af13f9dff1a06a112cf2d28fc5dc7fa3d # Parent 447f162172781ed836d8c2966e82250bf3c21462 Fixed a problem in the sasl state machine At least Wildfire does not send an extra challange but directly sends a success. From what I could see in RFC 3920 this is perfectly legal but the state machine in LmSASL assumed there would be an extra step. diff -r 447f16217278 -r bf60cd9af13f loudmouth/lm-sasl.c --- a/loudmouth/lm-sasl.c Sat Feb 24 01:47:22 2007 +0100 +++ b/loudmouth/lm-sasl.c Sat Feb 24 02:22:55 2007 +0100 @@ -534,7 +534,8 @@ } break; case AUTH_TYPE_DIGEST: - if (sasl->state != SASL_AUTH_STATE_DIGEST_MD5_SENT_FINAL_RESPONSE) { + if (sasl->state != SASL_AUTH_STATE_DIGEST_MD5_SENT_AUTH_RESPONSE && + sasl->state != SASL_AUTH_STATE_DIGEST_MD5_SENT_FINAL_RESPONSE) { g_debug ("%s: server sent success before finishing auth", G_STRFUNC); if (sasl->handler) { sasl->handler (sasl, sasl->connection, FALSE, "server error");