summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNagi5Yeq <wu@x-nagi.com>2019-11-07 21:47:16 +0800
committerNagi5Yeq <wu@x-nagi.com>2019-11-07 21:47:16 +0800
commit942325b1ae98fdf496acfccfb95e21d8dae13a09 (patch)
tree343dde10565156182be663bac5d4d6ddce8ef3d7
parent9c6dd30463dc4d6b53c32a30a4ea0c6442d27802 (diff)
rearrange args
-rw-r--r--src/DefaultBtAnnounce.cc40
-rw-r--r--test/DefaultBtAnnounceTest.cc170
2 files changed, 95 insertions, 115 deletions
diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc
index 74830c0a..cce627d1 100644
--- a/src/DefaultBtAnnounce.cc
+++ b/src/DefaultBtAnnounce.cc
@@ -72,7 +72,7 @@ DefaultBtAnnounce::DefaultBtAnnounce(DownloadContext* downloadContext,
randomizer_(SimpleRandomizer::getInstance().get()),
tcpPort_(0)
{
- httpAnnounceKey_ = randomizer_.getRandomNumber(INT_MAX);
+ httpAnnounceKey_ = randomizer_->getRandomNumber(INT_MAX);
}
DefaultBtAnnounce::~DefaultBtAnnounce() = default;
@@ -162,28 +162,30 @@ std::string DefaultBtAnnounce::getAnnounceUrl()
const size_t keyLen = 8;
std::string uri = announceList_.getAnnounce();
uri += uriHasQuery(uri) ? "&" : "?";
- uri +=
- fmt("info_hash=%s&"
- "peer_id=%s&"
- "uploaded=%" PRId64 "&"
- "downloaded=%" PRId64 "&"
- "left=%" PRId64 "&"
- "compact=1&"
- "key=%x&"
- "numwant=%d&"
- "no_peer_id=1",
- util::percentEncode(bittorrent::getInfoHash(downloadContext_),
+ uri += fmt("info_hash=%s&"
+ "peer_id=%s&",
+ util::percentEncode(bittorrent::getInfoHash(downloadContext_),
INFO_HASH_LENGTH)
.c_str(),
- util::percentEncode(bittorrent::getStaticPeerId(), PEER_ID_LENGTH)
- .c_str(),
- stat.getSessionUploadLength(), stat.getSessionDownloadLength(), left,
- httpAnnounceKey_,
- numWant);
+ util::percentEncode(bittorrent::getStaticPeerId(), PEER_ID_LENGTH)
+ .c_str());
if (tcpPort_) {
uri += fmt("&port=%u", tcpPort_);
}
+ uri += fmt("uploaded=%" PRId64 "&"
+ "downloaded=%" PRId64 "&"
+ "left=%" PRId64 "&"
+ "numwant=%d&"
+ "key=%x&"
+ "compact=1&"
+ stat.getSessionUploadLength(), stat.getSessionDownloadLength(), left,
+ numWant,
+ httpAnnounceKey_);
const char* event = announceList_.getEventString();
+ if (option_->getAsBool(PREF_BT_FORCE_ENCRYPTION) ||
+ option_->getAsBool(PREF_BT_REQUIRE_CRYPTO)) {
+ uri += "&requirecrypto=1";
+ }
if (event[0]) {
uri += "&event=";
uri += event;
@@ -192,10 +194,6 @@ std::string DefaultBtAnnounce::getAnnounceUrl()
uri += "&trackerid=";
uri += util::percentEncode(trackerId_);
}
- if (option_->getAsBool(PREF_BT_FORCE_ENCRYPTION) ||
- option_->getAsBool(PREF_BT_REQUIRE_CRYPTO)) {
- uri += "&requirecrypto=1";
- }
else {
uri += "&supportcrypto=1";
}
diff --git a/test/DefaultBtAnnounceTest.cc b/test/DefaultBtAnnounceTest.cc
index 1fafaf47..314e5c16 100644
--- a/test/DefaultBtAnnounceTest.cc
+++ b/test/DefaultBtAnnounceTest.cc
@@ -156,33 +156,34 @@ void DefaultBtAnnounceTest::testNoMoreAnnounce()
btAnnounce.setTcpPort(6989);
CPPUNIT_ASSERT_EQUAL(
- std::string("http://localhost/"
- "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ std::string(
+ "http://localhost/"
+ "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded=1572864&"
+ "downloaded=1310720&left=1572864&numwant=50&key=fastdltl&"
+ "compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
CPPUNIT_ASSERT_EQUAL(
- std::string("http://localhost/"
- "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&supportcrypto=1"),
+ std::string(
+ "http://localhost/"
+ "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded=1572864&"
+ "downloaded=1310720&left=1572864&numwant=50&"
+ "key=fastdltl&compact=1&supportcrypto=1"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceFailure();
CPPUNIT_ASSERT_EQUAL(
- std::string("http://backup/"
- "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ std::string(
+ "http://backup/"
+ "announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded=1572864&"
+ "downloaded=1310720&left=1572864&numwant=50&"
+ "key=fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -192,10 +193,9 @@ void DefaultBtAnnounceTest::testNoMoreAnnounce()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=completed&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=completed"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -203,10 +203,9 @@ void DefaultBtAnnounceTest::testNoMoreAnnounce()
CPPUNIT_ASSERT_EQUAL(
std::string("http://backup/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=completed&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=completed"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -216,10 +215,9 @@ void DefaultBtAnnounceTest::testNoMoreAnnounce()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=0&no_peer_id=1&port=6989&event=stopped&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=0&key="
+ "fastdltl&compact=1&supportcrypto=1&event=stopped"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -227,10 +225,9 @@ void DefaultBtAnnounceTest::testNoMoreAnnounce()
CPPUNIT_ASSERT_EQUAL(
std::string("http://backup/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=0&no_peer_id=1&port=6989&event=stopped&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=0&key="
+ "fastdltl&compact=1&supportcrypto=1&event=stopped"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -255,10 +252,9 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
req = btAnnounce.createUDPTrackerRequest("localhost", 80, 6989);
CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req->remoteAddr);
@@ -281,9 +277,9 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1"),
btAnnounce.getAnnounceUrl());
req = btAnnounce.createUDPTrackerRequest("localhost", 80, 6989);
CPPUNIT_ASSERT_EQUAL((int)UDPT_ACT_ANNOUNCE, req->action);
@@ -296,10 +292,9 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=completed&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=completed"),
btAnnounce.getAnnounceUrl());
req = btAnnounce.createUDPTrackerRequest("localhost", 80, 6989);
CPPUNIT_ASSERT_EQUAL((int)UDPT_ACT_ANNOUNCE, req->action);
@@ -312,10 +307,9 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=0&no_peer_id=1&port=6989&event=stopped&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=0&key="
+ "fastdltl&compact=1&supportcrypto=1&event=stopped"),
btAnnounce.getAnnounceUrl());
req = btAnnounce.createUDPTrackerRequest("localhost", 80, 6989);
CPPUNIT_ASSERT_EQUAL((int)UDPT_ACT_ANNOUNCE, req->action);
@@ -336,13 +330,11 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl_withQuery()
btAnnounce.setTcpPort(6989);
CPPUNIT_ASSERT_EQUAL(
- std::string(
- "http://localhost/announce?k=v&"
- "info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%01%23Eg&"
- "peer_id=-aria2-ultrafastdltl&"
- "uploaded=1572864&downloaded=1310720&left=1572864&compact=1&"
- "key=fastdltl&numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ std::string("http://localhost/announce?k=v&"
+ "info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%01%23Eg&"
+ "peer_id=-aria2-ultrafastdltl&port=6989&uploaded=1572864&"
+ "downloaded=1310720&left=1572864&numwant=50&key=fastdltl&"
+ "compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
}
@@ -361,13 +353,11 @@ void DefaultBtAnnounceTest::testGetAnnounceUrl_externalIP()
btAnnounce.setTcpPort(6989);
CPPUNIT_ASSERT_EQUAL(
- std::string(
- "http://localhost/announce?"
- "info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%01%23Eg&"
- "peer_id=-aria2-ultrafastdltl&"
- "uploaded=1572864&downloaded=1310720&left=1572864&compact=1&"
- "key=fastdltl&numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1&ip=192.168.1.1"),
+ std::string("http://localhost/announce?"
+ "info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%01%23Eg&"
+ "peer_id=-aria2-ultrafastdltl&port=6989&uploaded=1572864&"
+ "downloaded=1310720&left=1572864&numwant=50&key=fastdltl&"
+ "compact=1&supportcrypto=1&event=started&ip=192.168.1.1"),
btAnnounce.getAnnounceUrl());
std::shared_ptr<UDPTrackerRequest> req;
@@ -395,10 +385,9 @@ void DefaultBtAnnounceTest::testIsAllAnnounceFailed()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceFailure();
@@ -406,10 +395,9 @@ void DefaultBtAnnounceTest::testIsAllAnnounceFailed()
CPPUNIT_ASSERT_EQUAL(
std::string("http://backup/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceFailure();
@@ -442,10 +430,9 @@ void DefaultBtAnnounceTest::testURLOrderInStoppedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost1/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -455,10 +442,9 @@ void DefaultBtAnnounceTest::testURLOrderInStoppedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost1/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=0&no_peer_id=1&port=6989&event=stopped&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=0&key="
+ "fastdltl&compact=1&supportcrypto=1&event=stopped"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceFailure();
@@ -466,10 +452,9 @@ void DefaultBtAnnounceTest::testURLOrderInStoppedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost2/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=0&no_peer_id=1&port=6989&event=stopped&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=0&key="
+ "fastdltl&compact=1&supportcrypto=1&event=stopped"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -494,10 +479,9 @@ void DefaultBtAnnounceTest::testURLOrderInCompletedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost1/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=started&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=started"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();
@@ -507,10 +491,9 @@ void DefaultBtAnnounceTest::testURLOrderInCompletedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost1/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=completed&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=completed"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceFailure();
@@ -518,10 +501,9 @@ void DefaultBtAnnounceTest::testURLOrderInCompletedEvent()
CPPUNIT_ASSERT_EQUAL(
std::string("http://localhost2/"
"announce?info_hash=%01%23Eg%89%AB%CD%EF%01%23Eg%89%AB%CD%EF%"
- "01%23Eg&peer_id=-aria2-ultrafastdltl&uploaded=1572864&"
- "downloaded=1310720&left=1572864&compact=1&key=fastdltl&"
- "numwant=50&no_peer_id=1&port=6989&event=completed&"
- "supportcrypto=1"),
+ "01%23Eg&peer_id=-aria2-ultrafastdltl&port=6989&uploaded="
+ "1572864&downloaded=1310720&left=1572864&numwant=50&key="
+ "fastdltl&compact=1&supportcrypto=1&event=completed"),
btAnnounce.getAnnounceUrl());
btAnnounce.announceSuccess();