From 886fb651d8666d6fad9c847b93cf43cf945e25c6 Mon Sep 17 00:00:00 2001 From: Richard Nyberg <rnyberg@murmeldjur.se> Date: Sun, 5 Feb 2006 11:24:10 +0000 Subject: [PATCH] Add function to get tracker error count. Don't look for peers and stuff in tracker replies when we're stopping. --- btpd/tracker_req.c | 11 +++++++++-- btpd/tracker_req.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/btpd/tracker_req.c b/btpd/tracker_req.c index 5325a3d..74b16ee 100644 --- a/btpd/tracker_req.c +++ b/btpd/tracker_req.c @@ -130,8 +130,9 @@ http_cb(struct http *req, struct http_res *res, void *arg) struct tracker *tr = tp->tr; assert(tr->ttype == TIMER_TIMEOUT); tr->req = NULL; - if ((http_succeeded(res) && - parse_reply(tp, res->content, res->length) == 0)) { + if (res->res == HRES_OK && + (tr->event == TR_EV_STOPPED + || parse_reply(tp, res->content, res->length) == 0)) { tr->nerrors = 0; tr->ttype = TIMER_INTERVAL; event_add(&tr->timer, (& (struct timeval) { tr->interval, 0 })); @@ -249,3 +250,9 @@ tr_stop(struct torrent *tp) { tr_send(tp, TR_EV_STOPPED); } + +unsigned +tr_errors(struct torrent *tp) +{ + return tp->tr->nerrors; +} diff --git a/btpd/tracker_req.h b/btpd/tracker_req.h index 95cc170..6106ef7 100644 --- a/btpd/tracker_req.h +++ b/btpd/tracker_req.h @@ -6,5 +6,6 @@ void tr_stop(struct torrent *tp); void tr_refresh(struct torrent *tp); void tr_complete(struct torrent *tp); void tr_destroy(struct torrent *tp); +unsigned tr_errors(struct torrent *tp); #endif