diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-01-06 22:43:34 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-01-06 22:43:34 +0900 |
| commit | d429943d05726569758a884fa67238958972970f (patch) | |
| tree | 9ff2a52bd4be00698b1f1af7e44ca387dd70757e /test/HandshakeExtensionMessageTest.cc | |
| parent | e818f9c8a5b93791eeedeeb071bd0478ecad1205 (diff) | |
Fixed the bug that peer is marked as seeder whenever it sends
extension handshake with metadata size.
Peer must be marked as seeder only when client has not got metadata
yet. This bug causes aria2 shutdowns connection early when it gets
have message from a peer because it wrongly recognizes the peer as
seeder.
Diffstat (limited to 'test/HandshakeExtensionMessageTest.cc')
| -rw-r--r-- | test/HandshakeExtensionMessageTest.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/HandshakeExtensionMessageTest.cc b/test/HandshakeExtensionMessageTest.cc index d00d1964..52eb888d 100644 --- a/test/HandshakeExtensionMessageTest.cc +++ b/test/HandshakeExtensionMessageTest.cc @@ -117,9 +117,17 @@ void HandshakeExtensionMessageTest::testDoReceivedAction() CPPUNIT_ASSERT_EQUAL((uint16_t)6889, peer->getPort()); CPPUNIT_ASSERT_EQUAL((uint8_t)1, peer->getExtensionMessageID("ut_pex")); CPPUNIT_ASSERT_EQUAL((uint8_t)2, peer->getExtensionMessageID("a2_dht")); + CPPUNIT_ASSERT(peer->isSeeder()); CPPUNIT_ASSERT_EQUAL((size_t)1024, attrs->metadataSize); CPPUNIT_ASSERT_EQUAL((uint64_t)1024, dctx->getTotalLength()); CPPUNIT_ASSERT(dctx->knowsTotalLength()); + + // See Peer is not marked as seeder if !attrs->metadata.empty() + peer->allocateSessionResource(1024, 1024*1024); + attrs->metadataSize = 1024; + attrs->metadata = std::string('0', attrs->metadataSize); + msg.doReceivedAction(); + CPPUNIT_ASSERT(!peer->isSeeder()); } void HandshakeExtensionMessageTest::testCreate() |
