dovecot-2.0: master: Added back "listen" setting, which is the d...

dovecot at dovecot.org dovecot at dovecot.org
Sat Oct 10 00:56:02 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/f69fda5d7af5
changeset: 10023:f69fda5d7af5
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 09 17:55:57 2009 -0400
description:
master: Added back "listen" setting, which is the default address for inet_listeners.

diffstat:

7 files changed, 22 insertions(+), 7 deletions(-)
doc/example-config/conf.d/master.conf |    4 ----
doc/example-config/dovecot.conf       |    6 ++++++
src/master/master-settings.c          |    2 ++
src/master/master-settings.h          |    1 +
src/master/service-listen.c           |    2 +-
src/master/service.c                  |   12 ++++++++++--
src/master/service.h                  |    2 ++

diffs (128 lines):

diff -r f14b6c68ddce -r f69fda5d7af5 doc/example-config/conf.d/master.conf
--- a/doc/example-config/conf.d/master.conf	Fri Oct 09 17:42:33 2009 -0400
+++ b/doc/example-config/conf.d/master.conf	Fri Oct 09 17:55:57 2009 -0400
@@ -70,11 +70,9 @@ service imap-login {
   auth_dest_service = imap
 
   inet_listener {
-    address = *, ::
     port = 143
   }
   inet_listener {
-    address = *, ::
     port = 993
     ssl = yes
   }
@@ -115,11 +113,9 @@ service pop3-login {
   auth_dest_service = pop3
 
   inet_listener {
-    address = *, ::
     port = 110
   }
   inet_listener {
-    address = *, ::
     port = 995
     ssl = yes
   }
diff -r f14b6c68ddce -r f69fda5d7af5 doc/example-config/dovecot.conf
--- a/doc/example-config/dovecot.conf	Fri Oct 09 17:42:33 2009 -0400
+++ b/doc/example-config/dovecot.conf	Fri Oct 09 17:55:57 2009 -0400
@@ -21,6 +21,12 @@
 
 # Protocols we want to be serving.
 #protocols = imap pop3 lmtp
+
+# A space separated list of IP or host addresses where to listen in for
+# connections. "*" listens in all IPv4 interfaces. "[::]" listens in all IPv6
+# interfaces. Use "*, [::]" for listening both IPv4 and IPv6. If you want to
+# specify non-default ports or anything more complex, edit conf.d/master.conf.
+#listen = *
 
 # Disable LOGIN command and all other plaintext authentications unless
 # SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
diff -r f14b6c68ddce -r f69fda5d7af5 src/master/master-settings.c
--- a/src/master/master-settings.c	Fri Oct 09 17:42:33 2009 -0400
+++ b/src/master/master-settings.c	Fri Oct 09 17:55:57 2009 -0400
@@ -166,6 +166,7 @@ static struct setting_define master_sett
 	DEF(SET_STR, base_dir),
 	DEF(SET_STR, libexec_dir),
 	DEF(SET_STR, protocols),
+	DEF(SET_STR, listen),
 	DEF(SET_ENUM, ssl),
 	DEF(SET_UINT, default_process_limit),
 	DEF(SET_UINT, default_client_limit),
@@ -190,6 +191,7 @@ static struct master_settings master_def
 	MEMBER(base_dir) PKG_RUNDIR,
 	MEMBER(libexec_dir) PKG_LIBEXECDIR,
 	MEMBER(protocols) "imap pop3 lmtp",
+	MEMBER(listen) "*, ::",
 	MEMBER(ssl) "yes:no:required",
 	MEMBER(default_process_limit) 100,
 	MEMBER(default_client_limit) 1000,
diff -r f14b6c68ddce -r f69fda5d7af5 src/master/master-settings.h
--- a/src/master/master-settings.h	Fri Oct 09 17:42:33 2009 -0400
+++ b/src/master/master-settings.h	Fri Oct 09 17:55:57 2009 -0400
@@ -46,6 +46,7 @@ struct master_settings {
 	const char *base_dir;
 	const char *libexec_dir;
 	const char *protocols;
+	const char *listen;
 	const char *ssl;
 	unsigned int default_process_limit;
 	unsigned int default_client_limit;
diff -r f14b6c68ddce -r f69fda5d7af5 src/master/service-listen.c
--- a/src/master/service-listen.c	Fri Oct 09 17:42:33 2009 -0400
+++ b/src/master/service-listen.c	Fri Oct 09 17:55:57 2009 -0400
@@ -128,7 +128,7 @@ static int service_inet_listener_listen(
 	fd = net_listen(&l->set.inetset.ip, &port, 128);
 	if (fd < 0) {
 		service_error(service, "listen(%s, %u) failed: %m",
-			      set->address, set->port);
+			      l->inet_address, set->port);
 		return errno == EADDRINUSE ? 0 : -1;
 	}
 	net_set_nonblock(fd, TRUE);
diff -r f14b6c68ddce -r f69fda5d7af5 src/master/service.c
--- a/src/master/service.c	Fri Oct 09 17:42:33 2009 -0400
+++ b/src/master/service.c	Fri Oct 09 17:55:57 2009 -0400
@@ -105,6 +105,7 @@ service_create_one_inet_listener(struct 
 	l->type = SERVICE_LISTENER_INET;
 	l->fd = -1;
 	l->set.inetset.set = set;
+	l->inet_address = p_strdup(service->list->pool, address);
 
 	if (resolve_ip(address, &l->set.inetset.ip, error_r) < 0)
 		return NULL;
@@ -127,10 +128,17 @@ service_create_inet_listeners(struct ser
 			      const char **error_r)
 {
 	static struct service_listener *l;
-	const char *const *tmp;
+	const char *const *tmp, *addresses;
 	bool ssl_disabled = strcmp(service->set->master_set->ssl, "no") == 0;
 
-	tmp = t_strsplit_spaces(set->address, ", ");
+	if (*set->address != '\0')
+		addresses = set->address;
+	else {
+		/* use the default listen address */
+		addresses = service->set->master_set->listen;
+	}
+
+	tmp = t_strsplit_spaces(addresses, ", ");
 	for (; *tmp != NULL; tmp++) {
 		if (set->ssl && ssl_disabled)
 			continue;
diff -r f14b6c68ddce -r f69fda5d7af5 src/master/service.h
--- a/src/master/service.h	Fri Oct 09 17:42:33 2009 -0400
+++ b/src/master/service.h	Fri Oct 09 17:55:57 2009 -0400
@@ -30,6 +30,8 @@ struct service_listener {
 	enum service_listener_type type;
 	int fd; /* may be -1 */
 	struct io *io;
+
+	const char *inet_address;
 
 	union {
 		struct {


More information about the dovecot-cvs mailing list