changeset 21491:c130a08ebbaf

auth: Handle delayed credentials identically in auth-workers
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Mon, 06 Feb 2017 11:23:50 +0200
parents a2cca53d71d2
children c0f9d3f9bfd0
files src/auth/auth-request.c
diffstat 1 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-request.c	Mon Feb 06 10:55:40 2017 +0200
+++ b/src/auth/auth-request.c	Mon Feb 06 11:23:50 2017 +0200
@@ -347,6 +347,8 @@
 		str_append(dest, "\tsecured");
 	if (request->skip_password_check)
 		str_append(dest, "\tskip-password-check");
+	if (request->delayed_credentials != NULL)
+		str_append(dest, "\tdelayed-credentials");
 	if (request->valid_client_cert)
 		str_append(dest, "\tvalid-client-cert");
 	if (request->no_penalty)
@@ -468,7 +470,13 @@
 		request->successful = TRUE;
 	else if (strcmp(key, "skip-password-check") == 0)
 		request->skip_password_check = TRUE;
-	else if (strcmp(key, "mech") == 0)
+	else if (strcmp(key, "delayed-credentials") == 0) {
+		/* just make passdb_handle_credentials() work identically in
+		   auth-worker as it does in auth-master. the worker shouldn't
+		   care about the actual contents of the credentials. */
+		request->delayed_credentials = &uchar_nul;
+		request->delayed_credentials_size = 1;
+	} else if (strcmp(key, "mech") == 0)
 		request->mech_name = p_strdup(request->pool, value);
 	else if (strncmp(key, "passdb_", 7) == 0)
 		auth_fields_add(request->extra_fields, key+7, value, 0);