Ver código fonte

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 anos atrás
pai
commit
eeb9d252e1
1 arquivos alterados com 6 adições e 5 exclusões
  1. +6
    -5
      btpd/tracker_req.c

+ 6
- 5
btpd/tracker_req.c Ver arquivo

@@ -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;


Carregando…
Cancelar
Salvar