]> Sergey Matveev's repositories - btrtrc.git/blob - peer_protocol/pex.go
Fix peer_protocol.Message.RequestSpec for Type Piece
[btrtrc.git] / peer_protocol / pex.go
1 package peer_protocol
2
3 import "github.com/anacrolix/dht/krpc"
4
5 type PexMsg struct {
6         Added       krpc.CompactIPv4NodeAddrs `bencode:"added"`
7         AddedFlags  []PexPeerFlags            `bencode:"added.f"`
8         Added6      krpc.CompactIPv6NodeAddrs `bencode:"added6"`
9         Added6Flags []PexPeerFlags            `bencode:"added6.f"`
10         Dropped     krpc.CompactIPv4NodeAddrs `bencode:"dropped"`
11         Dropped6    krpc.CompactIPv6NodeAddrs `bencode:"dropped6"`
12 }
13
14 type PexPeerFlags byte
15
16 func (me PexPeerFlags) Get(f PexPeerFlags) bool {
17         return me&f == f
18 }
19
20 const (
21         PexPrefersEncryption = 0x01
22         PexSeedUploadOnly    = 0x02
23         PexSupportsUtp       = 0x04
24         PexHolepunchSupport  = 0x08
25         PexOutgoingConn      = 0x10
26 )