addr-family.go 542 B

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