]> Sergey Matveev's repositories - btrtrc.git/blob - tracker/udp/addr-family.go
Start a UDP server implementation
[btrtrc.git] / tracker / udp / addr-family.go
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 }