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  }