From ac4fa04277f3fda6db832c3db399eb0f94ca6581 Mon Sep 17 00:00:00 2001 From: Mike Gelfand Date: Sun, 30 Apr 2017 21:18:02 +0300 Subject: [PATCH] Announce -1 as size left if the value is unknown Fixes: #250 --- libtransmission/announcer-http.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libtransmission/announcer-http.c b/libtransmission/announcer-http.c index 97f12e554..cabc0c3ee 100644 --- a/libtransmission/announcer-http.c +++ b/libtransmission/announcer-http.c @@ -74,7 +74,6 @@ static char* announce_url_new(tr_session const* session, tr_announce_request con "&port=%d" "&uploaded=%" PRIu64 "&downloaded=%" PRIu64 - "&left=%" PRIu64 "&numwant=%d" "&key=%x" "&compact=1" @@ -86,10 +85,19 @@ static char* announce_url_new(tr_session const* session, tr_announce_request con req->port, req->up, req->down, - req->leftUntilComplete, req->numwant, req->key); + if (req->leftUntilComplete != ~(uint64_t)0) + { + evbuffer_add_printf(buf, "&left=%" PRIu64, req->leftUntilComplete); + } + else + { + // Support trackers which don't react to huge numbers well (e.g. Amazon S3) + evbuffer_add_printf(buf, "&left=-1"); + } + if (session->encryptionMode == TR_ENCRYPTION_REQUIRED) { evbuffer_add_printf(buf, "&requirecrypto=1");