aboutsummaryrefslogtreecommitdiff
path: root/tracker/messages.go
diff options
context:
space:
mode:
Diffstat (limited to 'tracker/messages.go')
-rw-r--r--tracker/messages.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/tracker/messages.go b/tracker/messages.go
index 3c739e8..67c49c3 100644
--- a/tracker/messages.go
+++ b/tracker/messages.go
@@ -42,7 +42,7 @@ type Request struct {
// we support only compact mode
type Response struct {
Complete int `bencode:"complete"`
- FalureReason string `bencode:"failure reason"`
+ FailureReason string `bencode:"failure reason"`
Incomplete int `bencode:"incomplete"`
Interval time.Duration `bencode:"interval"`
MinInterval time.Duration `bencode:"min interval"`
@@ -62,11 +62,22 @@ func (r *Request) Poll(announce string) chan Peer {
log.Println(err)
return
}
+ if msg := resp.WarningMessage; msg != "" {
+ log.Println("warning:", msg)
+ }
+ if msg := resp.FailureReason; msg != "" {
+ log.Println("failure:", msg)
+ return
+ }
for _, p := range resp.Peers {
c <- p
}
if resp.Interval == 0 {
- resp.Interval = DefaultInterval
+ if resp.MinInterval > 0 {
+ resp.Interval = resp.MinInterval
+ } else {
+ resp.Interval = DefaultInterval
+ }
}
log.Println("waiting", resp.Interval)
time.Sleep(resp.Interval)