This helps with trakers like Amazon S3 where signed type is used but
negative values aren't accepted.
Fixes: #250
"&port=%d"
"&uploaded=%" PRIu64
"&downloaded=%" PRIu64
+ "&left=%" PRIu64
"&numwant=%d"
"&key=%x"
"&compact=1"
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");
req->up = tier->byteCounts[TR_ANN_UP];
req->down = tier->byteCounts[TR_ANN_DOWN];
req->corrupt = tier->byteCounts[TR_ANN_CORRUPT];
- req->leftUntilComplete = tr_torrentHasMetadata(tor) ? tor->info.totalSize - tr_torrentHaveTotal(tor) : ~(uint64_t)0;
+ req->leftUntilComplete = tr_torrentHasMetadata(tor) ? tor->info.totalSize - tr_torrentHaveTotal(tor) : INT64_MAX;
req->event = event;
req->numwant = event == TR_ANNOUNCE_EVENT_STOPPED ? 0 : NUMWANT;
req->key = announcer->key;