metainfo/metainfo.go | 15 +++++++++++++++ t.go | 4 ++-- torrent.go | 2 +- diff --git a/metainfo/metainfo.go b/metainfo/metainfo.go index decfc3a001aac6fa6ee53efcb4d0ff261a79d6fb..14ff8d0470ef5a0200fd238815570266a513bc86 100644 --- a/metainfo/metainfo.go +++ b/metainfo/metainfo.go @@ -78,3 +78,18 @@ m.DisplayName = displayName 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 +} diff --git a/t.go b/t.go index ed810a5fd08d98d3d1f50babbc1063105d7c851e..e6d231ca70d3cbe3bbb29350c7927f4e0ada8a75 100644 --- a/t.go +++ b/t.go @@ -197,8 +197,8 @@ } 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}) } diff --git a/torrent.go b/torrent.go index 929e0bc6454d1956f2529614d4c17211ac74a3dc..d515bc95fb77ed25df1c25786e6238055c6fad09 100644 --- a/torrent.go +++ b/torrent.go @@ -1354,7 +1354,7 @@ // initial check. 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) } }