From 1ec16b924322ec7c7fbd8466b7b78ffb2d59eac5 Mon Sep 17 00:00:00 2001 From: James Phillips Date: Wed, 12 Apr 2017 10:02:42 -0700 Subject: [PATCH] Tweaks error handling case to not panic further down. --- consul/servers/serf_flooder.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/consul/servers/serf_flooder.go b/consul/servers/serf_flooder.go index 834c67f768..4a2f83ce45 100644 --- a/consul/servers/serf_flooder.go +++ b/consul/servers/serf_flooder.go @@ -70,16 +70,15 @@ func FloodJoins(logger *log.Logger, portFn FloodPortFn, 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 + // If we have an IPv6 address, we should add brackets, + // single globalSerf.Join expects that. + if ip := net.ParseIP(addr); ip != nil { + if ip.To4() == nil { + addr = fmt.Sprintf("[%s]", addr) + } + } else { 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!