}
func (t *Torrent) updateComplete() {
+ // TODO: Announce complete to trackers?
t.complete.SetBool(t.haveAllPieces())
}
lastAnnounce trackerAnnounceResult
lookupTrackerIp func(*url.URL) ([]net.IP, error)
+ // TODO: chansync
stopOnce sync.Once
stopCh chan struct{}
}
Stop()
}
-func (me trackerScraper) URL() *url.URL {
+func (me *trackerScraper) URL() *url.URL {
return &me.u
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
+ // TODO: Get rid of the need for this.
go func() {
defer cancel()
select {