dovecot-2.2: auth: protocol-specific username settings weren't u...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Aug 20 12:36:14 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/c3da5ffaa0f2
changeset: 17735:c3da5ffaa0f2
user: Timo Sirainen <tss at iki.fi>
date: Wed Aug 20 14:35:27 2014 +0200
description:
auth: protocol-specific username settings weren't used for userdb lookups.
The username was set before the service-specific settings were looked up, so
global settings were always used. This affected auth_default_realm,
auth_username_translation and auth_username_format settings.
diffstat:
src/auth/auth-master-connection.c | 13 +++++++------
src/auth/auth-postfix-connection.c | 6 +++---
2 files changed, 10 insertions(+), 9 deletions(-)
diffs (57 lines):
diff -r febedba15c7e -r c3da5ffaa0f2 src/auth/auth-master-connection.c
--- a/src/auth/auth-master-connection.c Wed Aug 20 14:22:28 2014 +0300
+++ b/src/auth/auth-master-connection.c Wed Aug 20 14:35:27 2014 +0200
@@ -167,7 +167,7 @@
const char **error_r)
{
struct auth_request *auth_request;
- const char *const *list, *name, *arg;
+ const char *const *list, *name, *arg, *username;
unsigned int id;
/* <id> <userid> [<parameters>] */
@@ -182,11 +182,7 @@
auth_request->id = id;
auth_request->master = conn;
auth_master_connection_ref(conn);
-
- if (!auth_request_set_username(auth_request, list[1], error_r)) {
- *request_r = auth_request;
- return 0;
- }
+ username = list[1];
for (list += 2; *list != NULL; list++) {
arg = strchr(*list, '=');
@@ -209,6 +205,11 @@
}
auth_request_init(auth_request);
+
+ if (!auth_request_set_username(auth_request, username, error_r)) {
+ *request_r = auth_request;
+ return 0;
+ }
*request_r = auth_request;
return 1;
}
diff -r febedba15c7e -r c3da5ffaa0f2 src/auth/auth-postfix-connection.c
--- a/src/auth/auth-postfix-connection.c Wed Aug 20 14:22:28 2014 +0300
+++ b/src/auth/auth-postfix-connection.c Wed Aug 20 14:35:27 2014 +0200
@@ -51,13 +51,13 @@
auth_request->context = conn;
auth_postfix_connection_ref(conn);
+ (void)auth_request_import_info(auth_request, "service", "postfix");
+ auth_request_init(auth_request);
+
if (!auth_request_set_username(auth_request, username, error_r)) {
*request_r = auth_request;
return FALSE;
}
- (void)auth_request_import_info(auth_request, "service", "postfix");
-
- auth_request_init(auth_request);
*request_r = auth_request;
return TRUE;
}
More information about the dovecot-cvs
mailing list