]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker/udp/addr-family.go
Add http and udp tracker server implementations
[btrtrc.git] / tracker / udp / addr-family.go
index 0213f41f0215799c942685d46b38544290b3680b..ddecb4c9fafb3e4ed0225a081fa36055cf1832b0 100644 (file)
@@ -1 +1,26 @@
 package udp
+
+import (
+       "encoding"
+
+       "github.com/anacrolix/dht/v2/krpc"
+)
+
+// Discriminates behaviours based on address family in use.
+type AddrFamily int
+
+const (
+       AddrFamilyIpv4 = iota + 1
+       AddrFamilyIpv6
+)
+
+// Returns a marshaler for the given node addrs for the specified family.
+func GetNodeAddrsCompactMarshaler(nas []krpc.NodeAddr, family AddrFamily) encoding.BinaryMarshaler {
+       switch family {
+       case AddrFamilyIpv4:
+               return krpc.CompactIPv4NodeAddrs(nas)
+       case AddrFamilyIpv6:
+               return krpc.CompactIPv6NodeAddrs(nas)
+       }
+       return nil
+}