From c582438a4e31d6017d1ebe4c08741f8c3feb70e4 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Tue, 29 Mar 2022 08:47:01 +0200 Subject: [PATCH] lncfg: use net pkg IsLoopback method Use the IsLoopback method provided by the net package instead of using hardcoded loopback addresses. --- lncfg/address.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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.