github.com/anacrolix/torrent@v1.61.0/tracker/udp/addr-family.go (about) 1 package udp 2 3 import ( 4 "encoding" 5 6 "github.com/anacrolix/dht/v2/krpc" 7 ) 8 9 // Discriminates behaviours based on address family in use. 10 type AddrFamily int 11 12 const ( 13 AddrFamilyIpv4 = iota + 1 14 AddrFamilyIpv6 15 ) 16 17 // Returns a marshaler for the given node addrs for the specified family. 18 func GetNodeAddrsCompactMarshaler(nas []krpc.NodeAddr, family AddrFamily) encoding.BinaryMarshaler { 19 switch family { 20 case AddrFamilyIpv4: 21 return krpc.CompactIPv4NodeAddrs(nas) 22 case AddrFamilyIpv6: 23 return krpc.CompactIPv6NodeAddrs(nas) 24 } 25 return nil 26 }