소스 검색

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;


불러오는 중...
취소
저장