mirror of
https://github.com/aria2/aria2.git
synced 2025-02-26 08:22:11 +00:00
Added v key in DHT message. aria2's DHT version is independent of the package version and we defined it as 1 at the moment. It is defined as DHT_VERSION in src/DHTConstants.h. aria2's DHT version scheme is "A2"+2bytes DHT version number in network byte order. * src/DHTAbstractMessage.cc * src/DHTConstants.h * src/DHTMessage.cc * src/DHTMessage.h * src/DHTMessageFactoryImpl.cc * src/DHTQueryMessage.cc * src/DHTResponseMessage.cc * src/util.h * test/DHTAnnouncePeerMessageTest.cc * test/DHTAnnouncePeerReplyMessageTest.cc * test/DHTFindNodeMessageTest.cc * test/DHTFindNodeReplyMessageTest.cc * test/DHTGetPeersMessageTest.cc * test/DHTGetPeersReplyMessageTest.cc * test/DHTPingMessageTest.cc * test/DHTPingReplyMessageTest.cc
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#include "DHTPingReplyMessage.h"
|
|
|
|
#include <cppunit/extensions/HelperMacros.h>
|
|
|
|
#include "DHTNode.h"
|
|
#include "Exception.h"
|
|
#include "util.h"
|
|
#include "bencode.h"
|
|
|
|
namespace aria2 {
|
|
|
|
class DHTPingReplyMessageTest:public CppUnit::TestFixture {
|
|
|
|
CPPUNIT_TEST_SUITE(DHTPingReplyMessageTest);
|
|
CPPUNIT_TEST(testGetBencodedMessage);
|
|
CPPUNIT_TEST_SUITE_END();
|
|
public:
|
|
void setUp() {}
|
|
|
|
void tearDown() {}
|
|
|
|
void testGetBencodedMessage();
|
|
};
|
|
|
|
|
|
CPPUNIT_TEST_SUITE_REGISTRATION(DHTPingReplyMessageTest);
|
|
|
|
void DHTPingReplyMessageTest::testGetBencodedMessage()
|
|
{
|
|
SharedHandle<DHTNode> localNode(new DHTNode());
|
|
SharedHandle<DHTNode> remoteNode(new DHTNode());
|
|
|
|
unsigned char tid[DHT_TRANSACTION_ID_LENGTH];
|
|
util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH);
|
|
std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]);
|
|
|
|
unsigned char id[DHT_ID_LENGTH];
|
|
util::generateRandomData(id, DHT_ID_LENGTH);
|
|
|
|
DHTPingReplyMessage msg(localNode, remoteNode, id, transactionID);
|
|
msg.setVersion("A200");
|
|
std::string msgbody = msg.getBencodedMessage();
|
|
|
|
BDE dict = BDE::dict();
|
|
dict["t"] = transactionID;
|
|
dict["v"] = BDE("A200");
|
|
dict["y"] = BDE("r");
|
|
BDE rDict = BDE::dict();
|
|
rDict["id"] = BDE(id, DHT_ID_LENGTH);
|
|
dict["r"] = rDict;
|
|
|
|
CPPUNIT_ASSERT_EQUAL(bencode::encode(dict), msgbody);
|
|
}
|
|
|
|
} // namespace aria2
|