dovecot-2.2: *-login: Added postlogin_socket=path passdb extra f...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Nov 17 15:27:25 UTC 2015
details: http://hg.dovecot.org/dovecot-2.2/rev/605dd1749578
changeset: 19384:605dd1749578
user: Timo Sirainen <tss at iki.fi>
date: Tue Nov 17 17:26:56 2015 +0200
description:
*-login: Added postlogin_socket=path passdb extra field.
By default e.g. "imap" or "pop3" is the post-login socket, but this can
override it. This could be used for example for per-user debugging (e.g.
setting executable to be run via strace or valgrind).
diffstat:
src/login-common/client-common-auth.c | 5 +++--
src/login-common/client-common.h | 2 +-
src/login-common/sasl-server.c | 5 +++++
3 files changed, 9 insertions(+), 3 deletions(-)
diffs (56 lines):
diff -r 8fa5d235065b -r 605dd1749578 src/login-common/client-common-auth.c
--- a/src/login-common/client-common-auth.c Tue Nov 17 17:23:31 2015 +0200
+++ b/src/login-common/client-common-auth.c Tue Nov 17 17:26:56 2015 +0200
@@ -133,8 +133,9 @@
PROXY_SSL_FLAG_STARTTLS;
if (strcmp(value, "any-cert") == 0)
reply_r->ssl_flags |= PROXY_SSL_FLAG_ANY_CERT;
- } else if (strcmp(key, "user") == 0) {
- /* already handled in login-common */
+ } else if (strcmp(key, "user") == 0 ||
+ strcmp(key, "postlogin_socket") == 0) {
+ /* already handled in sasl-server.c */
} else if (client->set->auth_debug)
i_debug("Ignoring unknown passdb extra field: %s", key);
}
diff -r 8fa5d235065b -r 605dd1749578 src/login-common/client-common.h
--- a/src/login-common/client-common.h Tue Nov 17 17:23:31 2015 +0200
+++ b/src/login-common/client-common.h Tue Nov 17 17:26:56 2015 +0200
@@ -113,7 +113,7 @@
struct ssl_proxy *ssl_proxy;
const struct login_settings *set;
const struct master_service_ssl_settings *ssl_set;
- const char *session_id, *listener_name;
+ const char *session_id, *listener_name, *postlogin_socket_path;
int fd;
struct istream *input;
diff -r 8fa5d235065b -r 605dd1749578 src/login-common/sasl-server.c
--- a/src/login-common/sasl-server.c Tue Nov 17 17:23:31 2015 +0200
+++ b/src/login-common/sasl-server.c Tue Nov 17 17:26:56 2015 +0200
@@ -155,6 +155,7 @@
memset(¶ms, 0, sizeof(params));
params.client_fd = client->fd;
+ params.socket_path = client->postlogin_socket_path;
params.request = req;
params.data = buf->data;
master_auth_request_full(master_auth, ¶ms, master_auth_callback,
@@ -246,6 +247,7 @@
client->auth_request = NULL;
client->auth_successes++;
client->auth_passdb_args = p_strarray_dup(client->pool, args);
+ client->postlogin_socket_path = NULL;
nologin = FALSE;
for (i = 0; args[i] != NULL; i++) {
@@ -261,6 +263,9 @@
i_free(client->virtual_auth_user);
client->virtual_auth_user =
i_strdup(args[i] + 10);
+ } else if (strncmp(args[i], "postlogin_socket=", 17) == 0) {
+ client->postlogin_socket_path =
+ p_strdup(client->pool, args[i] + 17);
} else if (strcmp(args[i], "nologin") == 0 ||
strcmp(args[i], "proxy") == 0) {
/* user can't login */
More information about the dovecot-cvs
mailing list