From b1d2b088533187954d3b98ed5951ec2dbbb422e9 Mon Sep 17 00:00:00 2001 From: Aaron Lehmann Date: Wed, 31 Aug 2016 11:44:32 -0700 Subject: [PATCH] cluster: Do not autodetect advertise address on join On join, remote addresses are supposed to be detected by the manager that receives the join request. However, the daemon is interfering with this by automatically detecting an advertise address and specifying that to the remote manager. Fix this so that an advertise address is only specified while joining a cluster if one was given by the user. Signed-off-by: Aaron Lehmann --- daemon/cluster/cluster.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/daemon/cluster/cluster.go b/daemon/cluster/cluster.go index 66bf99bcfe..f0981fc3c6 100644 --- a/daemon/cluster/cluster.go +++ b/daemon/cluster/cluster.go @@ -467,11 +467,13 @@ func (c *Cluster) Join(req types.JoinRequest) error { } var advertiseAddr string - advertiseHost, advertisePort, err := c.resolveAdvertiseAddr(req.AdvertiseAddr, listenPort) - // For joining, we don't need to provide an advertise address, - // since the remote side can detect it. - if err == nil { - advertiseAddr = net.JoinHostPort(advertiseHost, advertisePort) + if req.AdvertiseAddr != "" { + advertiseHost, advertisePort, err := c.resolveAdvertiseAddr(req.AdvertiseAddr, listenPort) + // For joining, we don't need to provide an advertise address, + // since the remote side can detect it. + if err == nil { + advertiseAddr = net.JoinHostPort(advertiseHost, advertisePort) + } } // todo: check current state existing