1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-10 01:51:07 +09:00
anytype-heart/net/addrs/interface.go
AnastasiaShemyakinskaya ddb2a033b6
GO-3171: fix android build
Signed-off-by: AnastasiaShemyakinskaya <shem98a@mail.ru>
2024-06-11 15:00:27 +02:00

47 lines
991 B
Go

//go:build !android
// +build !android
package addrs
import (
"net"
"slices"
"github.com/anyproto/anytype-heart/util/slice"
)
func SetInterfaceAddrsGetter(getter InterfaceAddrsGetter) {}
func SetInterfaceGetter(getter InterfaceGetter) {}
type InterfaceGetter interface {
Interfaces() []Interface
}
type InterfaceAddrsGetter interface {
InterfaceAddrs() []InterfaceAddr
}
func GetInterfacesAddrs() (iAddrs InterfacesAddrs, err error) {
addrs, err := net.InterfaceAddrs()
if err != nil {
return
}
iAddrs.Addrs = addrs
ifaces, err := net.Interfaces()
if err != nil {
return
}
iAddrs.Interfaces = ifaces
iAddrs.Interfaces = slice.Filter(iAddrs.Interfaces, func(iface net.Interface) bool {
return iface.Flags&net.FlagUp != 0 && iface.Flags&net.FlagMulticast != 0
})
return
}
func IsLoopBack(interfaces []net.Interface) bool {
return len(interfaces) == 1 && slices.ContainsFunc(interfaces, func(n net.Interface) bool {
return n.Flags&net.FlagLoopback != 0
})
}