]> Sergey Matveev's repositories - btrtrc.git/blob - Peers.go
12dda6bccbfc351cebb9cc8e5298b359c7319a3b
[btrtrc.git] / Peers.go
1 package torrent
2
3 import (
4         "github.com/anacrolix/dht/krpc"
5
6         "github.com/anacrolix/torrent/tracker"
7 )
8
9 type Peers []Peer
10
11 func (me *Peers) FromPex(nas []krpc.NodeAddr, fs []pexPeerFlags) {
12         for i, na := range nas {
13                 var p Peer
14                 var f pexPeerFlags
15                 if i < len(fs) {
16                         f = fs[i]
17                 }
18                 p.FromPex(na, f)
19                 *me = append(*me, p)
20         }
21 }
22
23 func (ret Peers) FromTracker(ps []tracker.Peer) Peers {
24         for _, p := range ps {
25                 _p := Peer{
26                         IP:     p.IP,
27                         Port:   p.Port,
28                         Source: peerSourceTracker,
29                 }
30                 copy(_p.Id[:], p.ID)
31                 ret = append(ret, _p)
32         }
33         return ret
34 }