From d38ceaa3ea289341091f4f7c8186c6c1f22dd54b Mon Sep 17 00:00:00 2001 From: Wim Date: Thu, 6 Apr 2017 22:53:10 +0200 Subject: [PATCH] Fix ipv6 join failure --- consul/servers/serf_flooder.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/consul/servers/serf_flooder.go b/consul/servers/serf_flooder.go index 74d7bb0c06e5..834c67f768b7 100644 --- a/consul/servers/serf_flooder.go +++ b/consul/servers/serf_flooder.go @@ -69,6 +69,17 @@ func FloodJoins(logger *log.Logger, portFn FloodPortFn, // leave it blank to behave as if we just supplied an address. if port, ok := portFn(server); ok { addr = net.JoinHostPort(addr, fmt.Sprintf("%d", port)) + } else { + // globalSerf.Join expects bracketed ipv6 addresses + ip := net.ParseIP(addr) + if ip == nil { + // should never happen + logger.Printf("[DEBUG] consul: Failed to parse IP %s", addr) + } + // If we have an IPv6 address, we should add brackets + if ip.To4() == nil { + addr = fmt.Sprintf("[%s]", addr) + } } // Do the join!