summaryrefslogtreecommitdiff
path: root/test/HandshakeExtensionMessageTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-06 22:43:34 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-01-06 22:43:34 +0900
commitd429943d05726569758a884fa67238958972970f (patch)
tree9ff2a52bd4be00698b1f1af7e44ca387dd70757e /test/HandshakeExtensionMessageTest.cc
parente818f9c8a5b93791eeedeeb071bd0478ecad1205 (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.cc8
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()