浏览代码

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;


正在加载...
取消
保存