From bb9269f3f7ff9c173e389aa5d1f69cd20c428745 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sun, 24 Dec 2023 12:31:08 -0800 Subject: [PATCH] Revert "Update network.go since To16 converts the IP address ip up to a 16-byte representation. If ip is not an IP address (it is the wrong length), To16 returns nil. (#5134)" This reverts commit 838578b55f138d98d9d2b3a0246a7fbb12fd379c. --- weed/util/network.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/weed/util/network.go b/weed/util/network.go index b7036377f..69559b5f0 100644 --- a/weed/util/network.go +++ b/weed/util/network.go @@ -15,13 +15,18 @@ func DetectedHostAddress() string { return "" } - if v4Address := selectIpV4(netInterfaces); v4Address != "" { + if v4Address := selectIpV4(netInterfaces, true); v4Address != "" { return v4Address } + if v6Address := selectIpV4(netInterfaces, false); v6Address != "" { + return v6Address + } + return "localhost" } -func selectIpV4(netInterfaces []net.Interface) string { + +func selectIpV4(netInterfaces []net.Interface, isIpV4 bool) string { for _, netInterface := range netInterfaces { if (netInterface.Flags & net.FlagUp) == 0 { continue @@ -33,9 +38,15 @@ func selectIpV4(netInterfaces []net.Interface) string { for _, a := range addrs { if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { + if isIpV4 { + if ipNet.IP.To4() != nil { + return ipNet.IP.String() + } + } else { if ipNet.IP.To16() != nil { return ipNet.IP.String() } + } } } }