diff options
| author | Nagi5Yeq <wu@x-nagi.com> | 2019-11-07 21:47:16 +0800 |
|---|---|---|
| committer | Nagi5Yeq <wu@x-nagi.com> | 2019-11-07 21:47:16 +0800 |
| commit | 942325b1ae98fdf496acfccfb95e21d8dae13a09 (patch) | |
| tree | 343dde10565156182be663bac5d4d6ddce8ef3d7 | |
| parent | 9c6dd30463dc4d6b53c32a30a4ea0c6442d27802 (diff) | |
rearrange args
| -rw-r--r-- | src/DefaultBtAnnounce.cc | 40 | ||||
| -rw-r--r-- | test/DefaultBtAnnounceTest.cc | 170 |
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(); |
