[dovecot-cvs] dovecot-1.0: Master and client sockets have default paths now. S...

dovecot at dovecot.org dovecot at dovecot.org
Tue Jun 12 19:46:57 EEST 2007


details:   http://hg.dovecot.org/dovecot-1.0/rev/7c29ee3ddcc0
changeset: 5299:7c29ee3ddcc0
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Jun 12 19:46:53 2007 +0300
description:
Master and client sockets have default paths now. Section name only needs to
be uncommented now for the socket to be created.

diffstat:

3 files changed, 18 insertions(+), 4 deletions(-)
src/master/auth-process.c    |    2 +-
src/master/master-settings.c |   18 +++++++++++++++---
src/master/master-settings.h |    2 ++

diffs (99 lines):

diff -r 12631f82e897 -r 7c29ee3ddcc0 src/master/auth-process.c
--- a/src/master/auth-process.c	Tue Jun 12 18:06:37 2007 +0300
+++ b/src/master/auth-process.c	Tue Jun 12 19:46:53 2007 +0300
@@ -373,7 +373,7 @@ static void
 static void
 socket_settings_env_put(const char *env_base, struct socket_settings *set)
 {
-	if (*set->path == '\0')
+	if (!set->used)
 		return;
 
 	env_put(t_strdup_printf("%s=%s", env_base, set->path));
diff -r 12631f82e897 -r 7c29ee3ddcc0 src/master/master-settings.c
--- a/src/master/master-settings.c	Tue Jun 12 18:06:37 2007 +0300
+++ b/src/master/master-settings.c	Tue Jun 12 19:46:53 2007 +0300
@@ -311,8 +311,10 @@ struct auth_settings default_auth_settin
 };
 
 struct socket_settings default_socket_settings = {
+#define DEFAULT_MASTER_SOCKET_PATH "auth-master"
+#define DEFAULT_CLIENT_SOCKET_PATH "auth-client"
 	MEMBER(path) "",
-	MEMBER(mode) 0,
+	MEMBER(mode) 0600,
 	MEMBER(user) "",
 	MEMBER(group) ""
 };
@@ -366,6 +368,7 @@ static bool auth_settings_verify(struct 
 static bool auth_settings_verify(struct auth_settings *auth)
 {
 	struct passwd *pw;
+	struct auth_socket_settings *s;
 
 	if ((pw = getpwnam(auth->user)) == NULL) {
 		i_error("Auth user doesn't exist: %s", auth->user);
@@ -402,6 +405,10 @@ static bool auth_settings_verify(struct 
 			auth->parent->imap->ssl_verify_client_cert = TRUE;
 	}
 
+	for (s = auth->sockets; s != NULL; s = s->next) {
+		fix_base_path(auth->parent->defaults, &s->master.path);
+		fix_base_path(auth->parent->defaults, &s->client.path);
+	}
 	return TRUE;
 }
 
@@ -949,6 +956,9 @@ auth_socket_settings_new(struct auth_set
 	as->type = str_lcase(p_strdup(settings_pool, type));
 	as->master = default_socket_settings;
 	as->client = default_socket_settings;
+
+	as->master.path = DEFAULT_MASTER_SOCKET_PATH;
+	as->client.path = DEFAULT_CLIENT_SOCKET_PATH;
 
 	as_p = &auth->sockets;
 	while (*as_p != NULL)
@@ -1258,11 +1268,13 @@ static bool parse_section(const char *ty
 
 		if (strcmp(type, "master") == 0) {
 			ctx->socket = &ctx->auth_socket->master;
+			ctx->socket->used = TRUE;
 			return TRUE;
 		}
 
 		if (strcmp(type, "client") == 0) {
 			ctx->socket = &ctx->auth_socket->client;
+			ctx->socket->used = TRUE;
 			return TRUE;
 		}
 	}
@@ -1542,14 +1554,14 @@ static void auth_settings_dump(struct au
 			settings_dump(auth_socket_setting_defs, sets2, NULL, 2,
 				      nondefaults, 4);
 
-			if (socket->client.path != NULL) {
+			if (socket->client.used) {
 				printf("    client:\n");
 				sets2[1] = &socket->client;
 				settings_dump(socket_setting_defs, sets2, NULL,
 					      2, nondefaults, 6);
 			}
 
-			if (socket->master.path != NULL) {
+			if (socket->master.used) {
 				printf("    master:\n");
 				sets2[1] = &socket->master;
 				settings_dump(socket_setting_defs, sets2, NULL,
diff -r 12631f82e897 -r 7c29ee3ddcc0 src/master/master-settings.h
--- a/src/master/master-settings.h	Tue Jun 12 18:06:37 2007 +0300
+++ b/src/master/master-settings.h	Tue Jun 12 19:46:53 2007 +0300
@@ -139,6 +139,8 @@ struct socket_settings {
 	unsigned int mode;
 	const char *user;
 	const char *group;
+
+	unsigned int used:1;
 };
 
 struct auth_socket_settings {


More information about the dovecot-cvs mailing list