log.Printf("error getting peers from dht: %s", err)
return
}
+ allAddrs := make(map[string]struct{})
getPeers:
for {
select {
break getPeers
}
peersFoundByDHT.Add(int64(len(v.Peers)))
+ for _, p := range v.Peers {
+ allAddrs[(&net.UDPAddr{
+ IP: p.IP[:],
+ Port: int(p.Port),
+ }).String()] = struct{}{}
+ }
+ // log.Printf("%s: %d new peers from DHT", t, len(v.Peers))
err = cl.AddPeers(t.InfoHash, func() (ret []Peer) {
for _, cp := range v.Peers {
ret = append(ret, Peer{
}
}
ps.Close()
- log.Printf("finished DHT peer scrape for %s", t)
+ log.Printf("finished DHT peer scrape for %s: %d peers", t, len(allAddrs))
// After a GetPeers, we can announce on the best nodes that gave us an
// announce token.
for trIndex, tr := range tier {
err := cl.announceTorrentSingleTracker(tr, &req, t)
if err != nil {
- log.Printf("error announcing to %s: %s", tr, err)
+ log.Printf("error announcing %s to %s: %s", t, tr, err)
continue
}
// Float the successful announce to the top of the tier. If