]> Sergey Matveev's repositories - btrtrc.git/blob - pex.go
Standardize on krpc types, and extend PEX message type for IPv6
[btrtrc.git] / pex.go
1 package torrent
2
3 import "github.com/anacrolix/dht/krpc"
4
5 type peerExchangeMessage struct {
6         Added       krpc.CompactIPv4NodeAddrs `bencode:"added"`
7         AddedFlags  []pexPeerFlags            `bencode:"added.f"`
8         Added6      krpc.CompactIPv6NodeAddrs `bencode:"added6"`
9         AddedFlags6 []pexPeerFlags            `bencode:"added6.f"`
10         Dropped     krpc.CompactIPv4NodeAddrs `bencode:"dropped"`
11         Dropped6    krpc.CompactIPv6NodeAddrs `bencode:"dropped6"`
12 }
13
14 type pexPeerFlags byte
15
16 const (
17         pexPrefersEncryption = 0x01
18         pexSeedUploadOnly    = 0x02
19         pexSupportsUtp       = 0x04
20         pexHolepunchSupport  = 0x08
21         pexOutgoingConn      = 0x10
22 )