[Dovecot] [PATCH] Fix on Cyrus SASL support for Rel 0.99.11
ITO Nobuaki
banb at j-link.ne.jp
Wed Oct 20 03:29:44 EEST 2004
Code which supports cyrus SASL library (src/auth/mech-cyrus-sasl2.c)
is broken. Following is the workaround patch for Dovecot Rel 0.99.11,
and it worked fine on FreeBSD 4.10 BOX.
It will not work with current development version.
Application for that version might not be so difficult.
Recently I found the CVS log which appeals that cyrus SASL support is
discontinued. It's very sad.
Regards
Nobuaki ITO : banb at j-link.ne.jp
-------------- next part --------------
--- src/auth/mech-cyrus-sasl2.c.orig Wed Jun 25 08:26:43 2003
+++ src/auth/mech-cyrus-sasl2.c Tue Oct 19 21:07:03 2004
@@ -39,6 +39,7 @@
struct auth_login_reply reply;
const char *serverout;
unsigned int serveroutlen;
+ const char *authenid, *default_realm;
int ret;
ret = sasl_server_step(cyrus_request->conn, data, request->data_size,
@@ -55,6 +56,12 @@
reply.result = AUTH_LOGIN_RESULT_SUCCESS;
cyrus_request->success = TRUE;
+ ret = sasl_getprop(cyrus_request->conn, SASL_USERNAME, (const void **) &authenid);
+ if (ret != SASL_OK || ! authenid) {
+ i_warning("sasl_getprop() failed: %s", sasl_errstring(ret, NULL, NULL));
+ return FALSE;
+ }
+
serverout = mech_auth_success(&reply, auth_request,
serverout, serveroutlen);
} else {
@@ -200,6 +217,8 @@
cyrus_sasl_auth_continue;
cyrus_request->auth_request.auth_free =
cyrus_sasl_auth_free;
+
+ cyrus_request->conn = sasl_conn;
reply.result = AUTH_LOGIN_RESULT_CONTINUE;
More information about the dovecot
mailing list