in pkg/discovery/routing/router.go [251:280]
func newHost(addr string) (host.Host, error) {
h, p, err := net.SplitHostPort(addr)
if err != nil {
return nil, err
}
hostAddr, err := multiaddr.NewMultiaddr(fmt.Sprintf("/ip4/%s/tcp/%s", h, p))
if err != nil {
return nil, fmt.Errorf("could not create host multi address: %w", err)
}
factory := libp2p.AddrsFactory(func(addrs []multiaddr.Multiaddr) []multiaddr.Multiaddr {
for _, addr := range addrs {
v, err := addr.ValueForProtocol(multiaddr.P_IP4)
if err != nil {
continue
}
if v == "" {
continue
}
if v == "127.0.0.1" {
continue
}
return []multiaddr.Multiaddr{addr}
}
return nil
})
return libp2p.New(libp2p.ListenAddrs(hostAddr), factory)
}