diff --git a/lncfg/address.go b/lncfg/address.go index 929f39700..0f7c35761 100644 --- a/lncfg/address.go +++ b/lncfg/address.go @@ -14,10 +14,6 @@ import ( "github.com/lightningnetwork/lnd/tor" ) -var ( - loopBackAddrs = []string{"localhost", "127.0.0.1", "[::1]"} -) - // TCPResolver is a function signature that resolves an address on a given // network. type TCPResolver = func(network, addr string) (*net.TCPAddr, error) @@ -112,14 +108,18 @@ func TLSListenOnAddress(addr net.Addr, } // IsLoopback returns true if an address describes a loopback interface. -func IsLoopback(addr string) bool { - for _, loopback := range loopBackAddrs { - if strings.Contains(addr, loopback) { - return true - } +func IsLoopback(host string) bool { + if strings.Contains(host, "localhost") { + return true } - return false + rawHost, _, _ := net.SplitHostPort(host) + addr := net.ParseIP(rawHost) + if addr == nil { + return false + } + + return addr.IsLoopback() } // isIPv6Host returns true if the host is IPV6 and false otherwise.