[dovecot-cvs] dovecot/src/auth auth-request.c, 1.51, 1.52 auth.c,
1.28, 1.29 auth.h, 1.20, 1.21
tss-movial at dovecot.org
tss-movial at dovecot.org
Mon Mar 27 15:54:27 EEST 2006
Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv13212/src/auth
Modified Files:
auth-request.c auth.c auth.h
Log Message:
Added auth_master_user_separator setting which allows giving the master username inside the normal username.
Index: auth-request.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth-request.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- auth-request.c 25 Mar 2006 10:22:06 -0000 1.51
+++ auth-request.c 27 Mar 2006 12:54:24 -0000 1.52
@@ -562,6 +562,8 @@
bool auth_request_set_username(struct auth_request *request,
const char *username, const char **error_r)
{
+ const char *p;
+
if (request->original_username == NULL) {
/* the username may change later, but we need to use this
username when verifying at least DIGEST-MD5 password */
@@ -573,6 +575,18 @@
return TRUE;
}
+ if (request->auth->master_user_separator != '\0') {
+ /* check if the username contains a master user */
+ p = strchr(username, request->auth->master_user_separator);
+ if (p != NULL) {
+ /* it does, set it. */
+ if (!auth_request_set_login_username(request, p+1,
+ error_r))
+ return FALSE;
+ username = t_strdup_until(username, p);
+ }
+ }
+
if (*username == '\0') {
/* Some PAM plugins go nuts with empty usernames */
*error_r = "Empty username";
Index: auth.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- auth.c 25 Mar 2006 10:32:50 -0000 1.28
+++ auth.c 27 Mar 2006 12:54:24 -0000 1.29
@@ -243,6 +243,10 @@
auth->username_translation[(int)(uint8_t)*env] = env[1];
}
+ env = getenv("MASTER_USER_SEPARATOR");
+ if (env != NULL)
+ auth->master_user_separator = env[0];
+
auth->ssl_require_client_cert =
getenv("SSL_REQUIRE_CLIENT_CERT") != NULL;
auth->ssl_username_from_cert =
Index: auth.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/auth.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- auth.h 25 Mar 2006 10:22:06 -0000 1.20
+++ auth.h 27 Mar 2006 12:54:24 -0000 1.21
@@ -44,7 +44,8 @@
const char *default_realm;
const char *anonymous_username;
char username_chars[256];
- char username_translation[256];
+ char username_translation[256];
+ char master_user_separator;
bool ssl_require_client_cert;
bool ssl_username_from_cert;
More information about the dovecot-cvs
mailing list