From: Timo Sirainen Date: Fri, 23 Jul 2010 19:47:29 +0000 (+0100) Subject: director: Fixed director_doveadm_port setting to actually work. X-Git-Tag: 2.0.rc4~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5801ce4da7d807ab85d02051ece5969e7175eeba;p=thirdparty%2Fdovecot%2Fcore.git director: Fixed director_doveadm_port setting to actually work. --- diff --git a/src/director/main.c b/src/director/main.c index d293e92bc9..83ab85ab08 100644 --- a/src/director/main.c +++ b/src/director/main.c @@ -44,7 +44,7 @@ static void client_connected(struct master_service_connection *conn) struct auth_connection *auth; const char *path, *name, *socket_path; struct ip_addr ip; - unsigned int port, len; + unsigned int local_port, len; bool userdb; if (conn->fifo) { @@ -57,10 +57,11 @@ static void client_connected(struct master_service_connection *conn) return; } - if (net_getpeername(conn->fd, &ip, &port) == 0 && + if (net_getpeername(conn->fd, &ip, NULL) == 0 && + net_getsockname(conn->fd, NULL, &local_port) == 0 && (IPADDR_IS_V4(&ip) || IPADDR_IS_V6(&ip))) { /* TCP/IP connection */ - if (port == director->set->director_doveadm_port) { + if (local_port == director->set->director_doveadm_port) { master_service_client_connection_accept(conn); (void)doveadm_connection_init(director, conn->fd); } else {