dovecot-2.0: director: Added director_doveadm_port for accepting...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Jul 22 18:07:11 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/ab85d17947db
changeset: 11883:ab85d17947db
user: Timo Sirainen <tss at iki.fi>
date: Thu Jul 22 16:07:06 2010 +0100
description:
director: Added director_doveadm_port for accepting doveadm TCP connections.
diffstat:
doc/example-config/conf.d/10-director.conf | 4 ++++
src/director/director-settings.c | 4 +++-
src/director/director-settings.h | 1 +
src/director/main.c | 9 +++++++--
4 files changed, 15 insertions(+), 3 deletions(-)
diffs (66 lines):
diff -r ec35e240db6c -r ab85d17947db doc/example-config/conf.d/10-director.conf
--- a/doc/example-config/conf.d/10-director.conf Thu Jul 22 13:48:14 2010 +0100
+++ b/doc/example-config/conf.d/10-director.conf Thu Jul 22 16:07:06 2010 +0100
@@ -21,6 +21,10 @@
# any connections.
#director_user_expire = 15 min
+# TCP/IP port that accepts doveadm connections (instead of director connections)
+# If you enable this, you'll also need to add inet_listener for the port.
+#director_doveadm_port = 0
+
# To enable director service, uncomment the modes and assign a port.
service director {
unix_listener login/director {
diff -r ec35e240db6c -r ab85d17947db src/director/director-settings.c
--- a/src/director/director-settings.c Thu Jul 22 13:48:14 2010 +0100
+++ b/src/director/director-settings.c Thu Jul 22 16:07:06 2010 +0100
@@ -68,6 +68,7 @@
DEF(SET_STR, director_servers),
DEF(SET_STR, director_mail_servers),
DEF(SET_TIME, director_user_expire),
+ DEF(SET_UINT, director_doveadm_port),
SETTING_DEFINE_LIST_END
};
@@ -78,7 +79,8 @@
.director_servers = "",
.director_mail_servers = "",
- .director_user_expire = 60*15
+ .director_user_expire = 60*15,
+ .director_doveadm_port = 0
};
const struct setting_parser_info director_setting_parser_info = {
diff -r ec35e240db6c -r ab85d17947db src/director/director-settings.h
--- a/src/director/director-settings.h Thu Jul 22 13:48:14 2010 +0100
+++ b/src/director/director-settings.h Thu Jul 22 16:07:06 2010 +0100
@@ -8,6 +8,7 @@
const char *director_servers;
const char *director_mail_servers;
unsigned int director_user_expire;
+ unsigned int director_doveadm_port;
};
extern const struct setting_parser_info director_setting_parser_info;
diff -r ec35e240db6c -r ab85d17947db src/director/main.c
--- a/src/director/main.c Thu Jul 22 13:48:14 2010 +0100
+++ b/src/director/main.c Thu Jul 22 16:07:06 2010 +0100
@@ -59,9 +59,14 @@
if (net_getpeername(conn->fd, &ip, &port) == 0 &&
(IPADDR_IS_V4(&ip) || IPADDR_IS_V6(&ip))) {
- /* TCP/IP connection - this is another director */
- if (director_client_connected(conn->fd, &ip) == 0)
+ /* TCP/IP connection */
+ if (port == director->set->director_doveadm_port) {
master_service_client_connection_accept(conn);
+ (void)doveadm_connection_init(director, conn->fd);
+ } else {
+ if (director_client_connected(conn->fd, &ip) == 0)
+ master_service_client_connection_accept(conn);
+ }
return;
}
More information about the dovecot-cvs
mailing list