m.InfoHash = infoHash
return
}
+
+func (mi *MetaInfo) FlatTrackers() (ret []string) {
+ m := make(map[string]struct{})
+ for _, t := range mi.AnnounceList {
+ for _, s := range t {
+ m[s] = struct{}{}
+ }
+ }
+ m[mi.Announce] = struct{}{}
+ ret = make([]string, 0, len(m))
+ for s := range m {
+ ret = append(ret, s)
+ }
+ return
+}
return s
}
-func (t *Torrent) AddTrackers(announceList [][]string) {
+func (t *Torrent) AddTrackers(urls []string) {
t.cl.mu.Lock()
defer t.cl.mu.Unlock()
- t.addTrackers(announceList)
+ t.addTrackers([][]string{urls})
}
if correct {
pieceHashedCorrect.Add(1)
} else {
- log.Printf("%s: piece %d (%x) failed hash: %d connections contributed", t, piece, p.Hash, len(touchers))
+ log.Printf("%s: piece %d (%v) failed hash: %d connections contributed", t, piece, p.Hash, len(touchers))
pieceHashedNotCorrect.Add(1)
}
}