summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--btpd/tracker_req.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/btpd/tracker_req.c b/btpd/tracker_req.c
index 2d2dbb1..3f3a8be 100644
--- a/btpd/tracker_req.c
+++ b/btpd/tracker_req.c
@@ -80,11 +80,11 @@ next_url(struct tracker *tr)
 struct tr_op *
 get_op(struct tracker *tr)
 {
-    struct tr_op *op;
+    struct tr_op **opp;
     char *url = get_url(tr);
-    for (op = m_tr_ops[0]; op != NULL; op++)
-        if (strncasecmp(op->scheme, url, op->len) == 0)
-            return op;
+    for (opp = m_tr_ops; *opp != NULL; opp++)
+        if (strncasecmp((*opp)->scheme, url, (*opp)->len) == 0)
+            return *opp;
     return NULL;
 }
 
@@ -118,8 +118,9 @@ tr_send(struct torrent *tp, enum tr_event event)
     if ((op == NULL ||
             (tr->req = op->request(tp, event, get_url(tr))) == NULL)) {
         next_url(tr);
+        tr->nerrors++;
         tr->ttype = TIMER_RETRY;
-        btpd_ev_add(&tr->timer, (& (struct timeval) { 20, 0 }));
+        btpd_ev_add(&tr->timer, (& (struct timeval) { 5, 0 }));
     } else {
         m_tlast_req = btpd_seconds;
         tr->ttype = TIMER_TIMEOUT;