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