8 "github.com/anacrolix/dht/v2/krpc"
11 func ipv4AddrPortFromKrpcNodeAddr(na krpc.NodeAddr) (_ netip.AddrPort, err error) {
14 err = fmt.Errorf("not an ipv4 address: %v", na.IP)
17 addr := netip.AddrFrom4([4]byte(ip4))
18 addrPort := netip.AddrPortFrom(addr, uint16(na.Port))
22 func ipv6AddrPortFromKrpcNodeAddr(na krpc.NodeAddr) (_ netip.AddrPort, err error) {
25 err = fmt.Errorf("not an ipv4 address: %v", na.IP)
28 addr := netip.AddrFrom16([16]byte(ip6))
29 addrPort := netip.AddrPortFrom(addr, uint16(na.Port))
33 func addrPortFromPeerRemoteAddr(pra PeerRemoteAddr) (netip.AddrPort, error) {
34 switch v := pra.(type) {
36 return v.AddrPort(), nil
38 return v.AddrPort(), nil
42 return netip.ParseAddrPort(pra.String())