]> Sergey Matveev's repositories - btrtrc.git/blobdiff - pex.go
Standardize on krpc types, and extend PEX message type for IPv6
[btrtrc.git] / pex.go
diff --git a/pex.go b/pex.go
index 674074fec2a26db1a64741449ca2ee640fa436a5..b3e3e16660ea36d39c74c5e2e5aaf0ab0641cb60 100644 (file)
--- a/pex.go
+++ b/pex.go
@@ -1,9 +1,22 @@
 package torrent
 
-import "github.com/anacrolix/torrent/util"
+import "github.com/anacrolix/dht/krpc"
 
 type peerExchangeMessage struct {
-       Added      util.CompactIPv4Peers `bencode:"added"`
-       AddedFlags []byte                `bencode:"added.f"`
-       Dropped    util.CompactIPv4Peers `bencode:"dropped"`
+       Added       krpc.CompactIPv4NodeAddrs `bencode:"added"`
+       AddedFlags  []pexPeerFlags            `bencode:"added.f"`
+       Added6      krpc.CompactIPv6NodeAddrs `bencode:"added6"`
+       AddedFlags6 []pexPeerFlags            `bencode:"added6.f"`
+       Dropped     krpc.CompactIPv4NodeAddrs `bencode:"dropped"`
+       Dropped6    krpc.CompactIPv6NodeAddrs `bencode:"dropped6"`
 }
+
+type pexPeerFlags byte
+
+const (
+       pexPrefersEncryption = 0x01
+       pexSeedUploadOnly    = 0x02
+       pexSupportsUtp       = 0x04
+       pexHolepunchSupport  = 0x08
+       pexOutgoingConn      = 0x10
+)