瀏覽代碼

Fix bug in get_op. Increase the tracker error counter, and reduce the timeout

for trying the next url, for url's that we can't use. The timeout is in this
case just there to keep btpd from busy looping on a bad url.
master
Richard Nyberg 18 年之前
父節點
當前提交
eeb9d252e1
共有 1 個檔案被更改,包括 6 行新增5 行删除
  1. +6
    -5
      btpd/tracker_req.c

+ 6
- 5
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;


Loading…
取消
儲存