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.