On Fri, Mar 13, 2015 at 05:14:24PM +0100, Emmanuel Fust? wrote:

> >>You could try the patch below and report your results (presumably
> >>for Dovecot).  It would be nice to have confirmation for Cyrus
> >>also.
> >
> >Will test and report the result asap.
>
> Ok work as expected ! Thank you.
>
> But to be complete, we should change XSASL_AUTH_FAIL -> XSASL_AUTH_TEMP in
> xsasl_dovecot_server_first (last and perhaps first occurrence too), in
> xsasl_dovecot_server_next (last occurrence) .

Yeah, just the additional I/O failures:

diff --git a/src/xsasl/xsasl_dovecot_server.c b/src/xsasl/xsasl_dovecot_server.c
index 95dd923..fe2c42b 100644
--- a/src/xsasl/xsasl_dovecot_server.c
+++ b/src/xsasl/xsasl_dovecot_server.c
@@ -686,7 +686,7 @@ int     xsasl_dovecot_server_first(XSASL_SERVER *xp, const 
char *sasl_method,
 
        if (i == 1) {
            vstring_strcpy(reply, "Can't connect to authentication server");
-           return XSASL_AUTH_FAIL;
+           return XSASL_AUTH_TEMP;
        }
 
        /*
@@ -714,7 +714,7 @@ static int xsasl_dovecot_server_next(XSASL_SERVER *xp, 
const char *request,
                    "CONT\t%u\t%s\n", server->last_request_id, request);
     if (vstream_fflush(server->impl->sasl_stream) == VSTREAM_EOF) {
        vstring_strcpy(reply, "Connection lost to authentication server");
-       return XSASL_AUTH_FAIL;
+       return XSASL_AUTH_TEMP;
     }
     return xsasl_dovecot_handle_reply(server, reply);
 }

-- 
        Viktor.

Reply via email to