From 7cb8af90290966755c1a74fc444dd65824d30749 Mon Sep 17 00:00:00 2001 From: Aroun Date: Thu, 7 Jul 2022 19:19:29 +0200 Subject: [PATCH] lib/osutil: Only announce address of interfaces which are up (fixes #7458) (#8422) --- lib/osutil/lan.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/osutil/lan.go b/lib/osutil/lan.go index 68bdfcdaf..2b498416a 100644 --- a/lib/osutil/lan.go +++ b/lib/osutil/lan.go @@ -11,10 +11,21 @@ import ( ) func GetLans() ([]*net.IPNet, error) { - addrs, err := net.InterfaceAddrs() + ifs, err := net.Interfaces() if err != nil { return nil, err } + addrs := []net.Addr{} + for _, currentIf := range ifs { + if currentIf.Flags&net.FlagUp != net.FlagUp { + continue + } + currentAddrs, err := currentIf.Addrs() + if err != nil { + return nil, err + } + addrs = append(addrs, currentAddrs...) + } nets := make([]*net.IPNet, 0, len(addrs))