]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker_scraper.go
Rework HTTP announce timeouts
[btrtrc.git] / tracker_scraper.go
index b7d38c5aab993c287b3c6eae071594d6409cb8cb..62ca426167eb74ec29556294419c843b7ff51a3e 100644 (file)
@@ -2,6 +2,7 @@ package torrent
 
 import (
        "bytes"
+       "context"
        "errors"
        "fmt"
        "net"
@@ -119,8 +120,11 @@ func (me *trackerScraper) announce(event tracker.AnnounceEvent) (ret trackerAnno
        me.t.cl.rLock()
        req := me.t.announceRequest(event)
        me.t.cl.rUnlock()
+       ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
+       defer cancel()
        me.t.logger.WithDefaultLevel(log.Debug).Printf("announcing to %q: %#v", me.u.String(), req)
        res, err := tracker.Announce{
+               Context:    ctx,
                HTTPProxy:  me.t.cl.config.HTTPProxy,
                UserAgent:  me.t.cl.config.HTTPUserAgent,
                TrackerUrl: me.trackerUrl(ip),