1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 02:13:41 +09:00
anytype-heart/net/addrs/interface.go
Roman Khafizianov 54af31a2af
localdiscovery fixes:
replace zeroconf with fork; sort interfaces; disable ipv6, tollerate long zeroconf shutodown
2023-04-25 18:17:59 +02:00

40 lines
800 B
Go

//go:build !android
// +build !android
package addrs
import (
"net"
"github.com/anytypeio/go-anytype-middleware/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
}