diff --git a/edgediscovery/allregions/discovery.go b/edgediscovery/allregions/discovery.go index 8640f494..9c2b1275 100644 --- a/edgediscovery/allregions/discovery.go +++ b/edgediscovery/allregions/discovery.go @@ -121,15 +121,15 @@ func resolveSRVToTCP(srv *net.SRV) ([]*net.TCPAddr, error) { } // ResolveAddrs resolves TCP address given a list of addresses. Address can be a hostname, however, it will return at most one -// of the hostname's IP addresses -func ResolveAddrs(addrs []string) ([]*net.TCPAddr, error) { - var tcpAddrs []*net.TCPAddr +// of the hostname's IP addresses. +func ResolveAddrs(addrs []string, logger logger.Service) (resolved []*net.TCPAddr) { for _, addr := range addrs { tcpAddr, err := net.ResolveTCPAddr("tcp", addr) if err != nil { - return nil, err + logger.Errorf("Failed to resolve %s, err: %v", addr, err) + } else { + resolved = append(resolved, tcpAddr) } - tcpAddrs = append(tcpAddrs, tcpAddr) } - return tcpAddrs, nil + return } diff --git a/edgediscovery/allregions/regions.go b/edgediscovery/allregions/regions.go index bacc75a1..eeed1b0c 100644 --- a/edgediscovery/allregions/regions.go +++ b/edgediscovery/allregions/regions.go @@ -35,12 +35,12 @@ func ResolveEdge(logger logger.Service) (*Regions, error) { // StaticEdge creates a list of edge addresses from the list of hostnames. // Mainly used for testing connectivity. -func StaticEdge(hostnames []string) (*Regions, error) { - addrs, err := ResolveAddrs(hostnames) - if err != nil { - return nil, err +func StaticEdge(hostnames []string, logger logger.Service) (*Regions, error) { + resolved := ResolveAddrs(hostnames, logger) + if len(resolved) == 0 { + return nil, fmt.Errorf("failed to resolve any edge address") } - return NewNoResolve(addrs), nil + return NewNoResolve(resolved), nil } // NewNoResolve doesn't resolve the edge. Instead it just uses the given addresses. diff --git a/edgediscovery/edgediscovery.go b/edgediscovery/edgediscovery.go index c4db7249..df4ff01a 100644 --- a/edgediscovery/edgediscovery.go +++ b/edgediscovery/edgediscovery.go @@ -41,7 +41,7 @@ func ResolveEdge(l logger.Service) (*Edge, error) { // StaticEdge creates a list of edge addresses from the list of hostnames. Mainly used for testing connectivity. func StaticEdge(l logger.Service, hostnames []string) (*Edge, error) { - regions, err := allregions.StaticEdge(hostnames) + regions, err := allregions.StaticEdge(hostnames, l) if err != nil { return new(Edge), err }