From: Timo Sirainen Date: Mon, 6 Feb 2017 09:23:50 +0000 (+0200) Subject: auth: Handle delayed credentials identically in auth-workers X-Git-Tag: 2.3.0.rc1~2171 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f2b1b725860bfef7c796b0aaa1a647ac538124f;p=thirdparty%2Fdovecot%2Fcore.git auth: Handle delayed credentials identically in auth-workers --- diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index f7567a8f81..c6ac269e5f 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -347,6 +347,8 @@ void auth_request_export(struct auth_request *request, string_t *dest) 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) @@ -476,7 +478,13 @@ bool auth_request_import(struct auth_request *request, 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);