]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker_scraper.go
Limit simultaneous announces to the same URL
[btrtrc.git] / tracker_scraper.go
index 1323795398496a0893b51c9b2e32d6de6f0cfd31..b7d38c5aab993c287b3c6eae071594d6409cb8cb 100644 (file)
@@ -20,6 +20,7 @@ type trackerScraper struct {
        u            url.URL
        t            *Torrent
        lastAnnounce trackerAnnounceResult
+       allow, done  func()
 }
 
 type torrentTrackerAnnouncer interface {
@@ -108,6 +109,8 @@ func (me *trackerScraper) announce(event tracker.AnnounceEvent) (ret trackerAnno
                ret.Completed = time.Now()
        }()
        ret.Interval = time.Minute
+       me.allow()
+       defer me.done()
        ip, err := me.getIp()
        if err != nil {
                ret.Err = fmt.Errorf("error getting ip: %s", err)