changeset 10023:f69fda5d7af5 HEAD

master: Added back "listen" setting, which is the default address for inet_listeners.
author Timo Sirainen <tss@iki.fi>
date Fri, 09 Oct 2009 17:55:57 -0400
parents f14b6c68ddce
children 85e532d170cc
files doc/example-config/conf.d/master.conf doc/example-config/dovecot.conf src/master/master-settings.c src/master/master-settings.h src/master/service-listen.c src/master/service.c src/master/service.h
diffstat 7 files changed, 22 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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 @@
   auth_dest_service = imap
 
   inet_listener {
-    address = *, ::
     port = 143
   }
   inet_listener {
-    address = *, ::
     port = 993
     ssl = yes
   }
@@ -115,11 +113,9 @@
   auth_dest_service = pop3
 
   inet_listener {
-    address = *, ::
     port = 110
   }
   inet_listener {
-    address = *, ::
     port = 995
     ssl = yes
   }
--- 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
@@ -22,6 +22,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
 # matches the local IP (ie. you're connecting from the same computer), the
--- 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 @@
 	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 @@
 	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,
--- 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 @@
 	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;
--- 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 @@
 	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);
--- 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 @@
 	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 @@
 			      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;
--- 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
@@ -31,6 +31,8 @@
 	int fd; /* may be -1 */
 	struct io *io;
 
+	const char *inet_address;
+
 	union {
 		struct {
 			const struct file_listener_settings *set;