From 9af2049dfe65e61a2e553e9269cbf49b998c9ea5 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 24 Dec 2023 12:32:37 -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() } + } } } }