diff --git a/ChangeLog b/ChangeLog index a5d6cd937..e568f7b78 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,36 @@ +2009-10-22 Tatsuhiro Tsujikawa + + Moved generateRandomData to Util.cc Moved flipBit to bitfield.cc. + Moved generateRandomKey to bittorrent_helper.cc. + * src/DHTBucket.cc + * src/DHTGetPeersMessage.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTMessage.cc + * src/DHTNode.cc + * src/DHTTokenTracker.cc + * src/DHTUtil.cc: Removed. + * src/DHTUtil.h: Removed. + * src/Makefile.am + * src/Util.cc + * src/Util.h + * src/bitfield.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/ARC4Test.cc + * test/BNodeTest.cc + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTAnnouncePeerReplyMessageTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTPingMessageTest.cc + * test/DHTPingReplyMessageTest.cc + * test/DHTTokenTrackerTest.cc + * test/DHTUtilTest.cc: Removed. + * test/Makefile.am + * test/UtilTest.cc + 2009-10-18 Tatsuhiro Tsujikawa Removed the call to trim() because trim() is called for each diff --git a/src/DHTBucket.cc b/src/DHTBucket.cc index 775fba82f..c991aebd0 100644 --- a/src/DHTBucket.cc +++ b/src/DHTBucket.cc @@ -38,13 +38,14 @@ #include #include -#include "DHTUtil.h" #include "DHTNode.h" #include "LogFactory.h" #include "Logger.h" #include "Util.h" #include "DHTConstants.h" #include "a2functional.h" +#include "bittorrent_helper.h" +#include "bitfield.h" namespace aria2 { @@ -73,10 +74,10 @@ DHTBucket::~DHTBucket() {} void DHTBucket::getRandomNodeID(unsigned char* nodeID) const { if(_prefixLength == 0) { - DHTUtil::generateRandomKey(nodeID); + bittorrent::generateRandomKey(nodeID); } else { size_t lastByteIndex = (_prefixLength-1)/8; - DHTUtil::generateRandomKey(nodeID); + bittorrent::generateRandomKey(nodeID); memcpy(nodeID, _min, lastByteIndex+1); } } @@ -179,11 +180,11 @@ SharedHandle DHTBucket::split() unsigned char rMax[DHT_ID_LENGTH]; memcpy(rMax, _max, DHT_ID_LENGTH); - DHTUtil::flipBit(rMax, DHT_ID_LENGTH, _prefixLength); + bitfield::flipBit(rMax, DHT_ID_LENGTH, _prefixLength); unsigned char rMin[DHT_ID_LENGTH]; memcpy(rMin, _min, DHT_ID_LENGTH); - DHTUtil::flipBit(_min, DHT_ID_LENGTH, _prefixLength); + bitfield::flipBit(_min, DHT_ID_LENGTH, _prefixLength); ++_prefixLength; SharedHandle rBucket(new DHTBucket(_prefixLength, diff --git a/src/DHTGetPeersMessage.cc b/src/DHTGetPeersMessage.cc index e6c2af43c..ca08fcfb2 100644 --- a/src/DHTGetPeersMessage.cc +++ b/src/DHTGetPeersMessage.cc @@ -42,7 +42,6 @@ #include "DHTMessageDispatcher.h" #include "DHTMessageCallback.h" #include "DHTPeerAnnounceStorage.h" -#include "DHTUtil.h" #include "Peer.h" #include "DHTTokenTracker.h" #include "Util.h" diff --git a/src/DHTGetPeersReplyMessage.cc b/src/DHTGetPeersReplyMessage.cc index 2d69237b1..8a57b139c 100644 --- a/src/DHTGetPeersReplyMessage.cc +++ b/src/DHTGetPeersReplyMessage.cc @@ -44,7 +44,6 @@ #include "DHTMessageCallback.h" #include "bittorrent_helper.h" #include "Peer.h" -#include "DHTUtil.h" #include "Util.h" #include "bencode.h" #include "a2functional.h" diff --git a/src/DHTMessage.cc b/src/DHTMessage.cc index 09dcccba7..86f51e2a6 100644 --- a/src/DHTMessage.cc +++ b/src/DHTMessage.cc @@ -34,7 +34,7 @@ /* copyright --> */ #include "DHTMessage.h" #include "DHTNode.h" -#include "DHTUtil.h" +#include "Util.h" namespace aria2 { @@ -59,7 +59,7 @@ DHTMessage::~DHTMessage() {} void DHTMessage::generateTransactionID() { unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); _transactionID = std::string(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); } diff --git a/src/DHTNode.cc b/src/DHTNode.cc index 7c74e1f7d..a28565edb 100644 --- a/src/DHTNode.cc +++ b/src/DHTNode.cc @@ -36,9 +36,9 @@ #include -#include "DHTUtil.h" #include "Util.h" #include "a2functional.h" +#include "bittorrent_helper.h" namespace aria2 { @@ -54,7 +54,7 @@ DHTNode::DHTNode(const unsigned char* id):_port(0), _rtt(0), _condition(1), _las void DHTNode::generateID() { - DHTUtil::generateRandomKey(_id); + bittorrent::generateRandomKey(_id); } bool DHTNode::operator==(const DHTNode& node) const diff --git a/src/DHTTokenTracker.cc b/src/DHTTokenTracker.cc index adbd46084..852775cf7 100644 --- a/src/DHTTokenTracker.cc +++ b/src/DHTTokenTracker.cc @@ -36,7 +36,7 @@ #include -#include "DHTUtil.h" +#include "Util.h" #include "bittorrent_helper.h" #include "DlAbortEx.h" #include "DHTConstants.h" @@ -47,7 +47,7 @@ namespace aria2 { DHTTokenTracker::DHTTokenTracker() { - DHTUtil::generateRandomData(_secret[0], SECRET_SIZE); + util::generateRandomData(_secret[0], SECRET_SIZE); memcpy(_secret[1], _secret[0], SECRET_SIZE); } @@ -97,7 +97,7 @@ bool DHTTokenTracker::validateToken(const std::string& token, void DHTTokenTracker::updateTokenSecret() { memcpy(_secret[1], _secret[0], SECRET_SIZE); - DHTUtil::generateRandomData(_secret[0], SECRET_SIZE); + util::generateRandomData(_secret[0], SECRET_SIZE); } } // namespace aria2 diff --git a/src/DHTUtil.cc b/src/DHTUtil.cc deleted file mode 100644 index 4118debb9..000000000 --- a/src/DHTUtil.cc +++ /dev/null @@ -1,80 +0,0 @@ -/* */ -#include "DHTUtil.h" -#include "MessageDigestHelper.h" -#include -#include -#include -#ifdef HAVE_LIBGCRYPT -# include -#elif HAVE_LIBSSL -# include -# include "SimpleRandomizer.h" -#endif // HAVE_LIBSSL - -namespace aria2 { - -void DHTUtil::generateRandomKey(unsigned char* key) -{ - unsigned char bytes[40]; - generateRandomData(bytes, sizeof(bytes)); - MessageDigestHelper::digest(key, 20, MessageDigestContext::SHA1, bytes, sizeof(bytes)); -} - -void DHTUtil::generateRandomData(unsigned char* data, size_t length) -{ -#ifdef HAVE_LIBGCRYPT - gcry_randomize(data, length, GCRY_STRONG_RANDOM); -#elif HAVE_LIBSSL - if(RAND_bytes(data, length) != 1) { - for(size_t i = 0; i < length; ++i) { - data[i] = SimpleRandomizer::getInstance()->getRandomNumber(UINT8_MAX+1); - } - } -#else - std::ifstream i("/dev/urandom", std::ios::binary); - i.read(data, length); -#endif // HAVE_LIBSSL -} - -void DHTUtil::flipBit(unsigned char* data, size_t length, size_t bitIndex) -{ - size_t byteIndex = bitIndex/8; - assert(byteIndex <= length); - unsigned char mask = 128 >> (bitIndex%8); - data[byteIndex] ^= mask; -} - -} // namespace aria2 diff --git a/src/DHTUtil.h b/src/DHTUtil.h deleted file mode 100644 index 5ab0ab02e..000000000 --- a/src/DHTUtil.h +++ /dev/null @@ -1,56 +0,0 @@ -/* */ -#ifndef _D_DHT_UTIL_H_ -#define _D_DHT_UTIL_H_ - -#include "common.h" -#include - -namespace aria2 { - -class DHTUtil { -public: - - static void generateRandomKey(unsigned char* key); - - static void generateRandomData(unsigned char* data, size_t length); - - static void flipBit(unsigned char* data, size_t length, size_t bitIndex); - -}; - -} // namespace aria2 - -#endif // _D_DHT_UTIL_H_ diff --git a/src/Makefile.am b/src/Makefile.am index 86d7b7369..36fac9286 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -197,7 +197,7 @@ SRCS = Socket.h\ SequentialDispatcherCommand.h\ PieceSelector.h\ LongestSequencePieceSelector.cc LongestSequencePieceSelector.h\ - bitfield.h\ + bitfield.cc bitfield.h\ BDE.cc BDE.h\ CreateRequestCommand.cc CreateRequestCommand.h\ DownloadResultCode.h @@ -347,7 +347,6 @@ SRCS += PeerAbstractCommand.cc PeerAbstractCommand.h\ HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\ UTPexExtensionMessage.cc UTPexExtensionMessage.h\ DHTNode.cc DHTNode.h\ - DHTUtil.cc DHTUtil.h\ DHTBucket.cc DHTBucket.h\ DHTRoutingTable.cc DHTRoutingTable.h\ DHTMessageEntry.cc DHTMessageEntry.h\ diff --git a/src/Makefile.in b/src/Makefile.in index ba01535be..ad582868b 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -146,7 +146,6 @@ bin_PROGRAMS = aria2c$(EXEEXT) @ENABLE_BITTORRENT_TRUE@ HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\ @ENABLE_BITTORRENT_TRUE@ UTPexExtensionMessage.cc UTPexExtensionMessage.h\ @ENABLE_BITTORRENT_TRUE@ DHTNode.cc DHTNode.h\ -@ENABLE_BITTORRENT_TRUE@ DHTUtil.cc DHTUtil.h\ @ENABLE_BITTORRENT_TRUE@ DHTBucket.cc DHTBucket.h\ @ENABLE_BITTORRENT_TRUE@ DHTRoutingTable.cc DHTRoutingTable.h\ @ENABLE_BITTORRENT_TRUE@ DHTMessageEntry.cc DHTMessageEntry.h\ @@ -410,7 +409,7 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \ SelectEventPoll.cc SelectEventPoll.h SequentialPicker.h \ SequentialDispatcherCommand.h PieceSelector.h \ LongestSequencePieceSelector.cc LongestSequencePieceSelector.h \ - bitfield.h BDE.cc BDE.h CreateRequestCommand.cc \ + bitfield.cc bitfield.h BDE.cc BDE.h CreateRequestCommand.cc \ CreateRequestCommand.h DownloadResultCode.h \ XmlRpcRequestParserController.cc \ XmlRpcRequestParserController.h \ @@ -490,12 +489,12 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \ ExtensionMessageFactory.h DefaultExtensionMessageFactory.cc \ DefaultExtensionMessageFactory.h HandshakeExtensionMessage.cc \ HandshakeExtensionMessage.h UTPexExtensionMessage.cc \ - UTPexExtensionMessage.h DHTNode.cc DHTNode.h DHTUtil.cc \ - DHTUtil.h DHTBucket.cc DHTBucket.h DHTRoutingTable.cc \ - DHTRoutingTable.h DHTMessageEntry.cc DHTMessageEntry.h \ - DHTMessageDispatcher.h DHTMessageDispatcherImpl.cc \ - DHTMessageDispatcherImpl.h DHTMessageReceiver.cc \ - DHTMessageReceiver.h DHTMessageTracker.cc DHTMessageTracker.h \ + UTPexExtensionMessage.h DHTNode.cc DHTNode.h DHTBucket.cc \ + DHTBucket.h DHTRoutingTable.cc DHTRoutingTable.h \ + DHTMessageEntry.cc DHTMessageEntry.h DHTMessageDispatcher.h \ + DHTMessageDispatcherImpl.cc DHTMessageDispatcherImpl.h \ + DHTMessageReceiver.cc DHTMessageReceiver.h \ + DHTMessageTracker.cc DHTMessageTracker.h \ DHTMessageTrackerEntry.cc DHTMessageTrackerEntry.h \ DHTMessage.cc DHTMessage.h DHTConnection.h \ DHTConnectionImpl.cc DHTConnectionImpl.h DHTAbstractMessage.cc \ @@ -645,8 +644,7 @@ am__objects_6 = @ENABLE_BITTORRENT_TRUE@ DefaultExtensionMessageFactory.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ HandshakeExtensionMessage.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ UTPexExtensionMessage.$(OBJEXT) \ -@ENABLE_BITTORRENT_TRUE@ DHTNode.$(OBJEXT) DHTUtil.$(OBJEXT) \ -@ENABLE_BITTORRENT_TRUE@ DHTBucket.$(OBJEXT) \ +@ENABLE_BITTORRENT_TRUE@ DHTNode.$(OBJEXT) DHTBucket.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ DHTRoutingTable.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ DHTMessageEntry.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ DHTMessageDispatcherImpl.$(OBJEXT) \ @@ -800,8 +798,8 @@ am__objects_27 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \ NsCookieParser.$(OBJEXT) CookieStorage.$(OBJEXT) \ SocketBuffer.$(OBJEXT) OptionHandlerException.$(OBJEXT) \ URIResult.$(OBJEXT) SelectEventPoll.$(OBJEXT) \ - LongestSequencePieceSelector.$(OBJEXT) BDE.$(OBJEXT) \ - CreateRequestCommand.$(OBJEXT) $(am__objects_1) \ + LongestSequencePieceSelector.$(OBJEXT) bitfield.$(OBJEXT) \ + BDE.$(OBJEXT) CreateRequestCommand.$(OBJEXT) $(am__objects_1) \ $(am__objects_2) $(am__objects_3) $(am__objects_4) \ $(am__objects_5) $(am__objects_6) $(am__objects_7) \ $(am__objects_8) $(am__objects_9) $(am__objects_10) \ @@ -1137,7 +1135,7 @@ SRCS = Socket.h SocketCore.cc SocketCore.h BinaryStream.h Command.cc \ SelectEventPoll.cc SelectEventPoll.h SequentialPicker.h \ SequentialDispatcherCommand.h PieceSelector.h \ LongestSequencePieceSelector.cc LongestSequencePieceSelector.h \ - bitfield.h BDE.cc BDE.h CreateRequestCommand.cc \ + bitfield.cc bitfield.h BDE.cc BDE.h CreateRequestCommand.cc \ CreateRequestCommand.h DownloadResultCode.h $(am__append_1) \ $(am__append_2) $(am__append_3) $(am__append_4) \ $(am__append_5) $(am__append_6) $(am__append_7) \ @@ -1362,7 +1360,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTTokenTracker.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTTokenUpdateCommand.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTUnknownMessage.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTUtil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultAuthResolver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtAnnounce.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtInteractive.Po@am__quote@ @@ -1531,6 +1528,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ZeroBtMessage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asctime_r.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bencode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitfield.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bittorrent_helper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/daemon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/download_helper.Po@am__quote@ diff --git a/src/Util.cc b/src/Util.cc index 08412da82..f20b044e8 100644 --- a/src/Util.cc +++ b/src/Util.cc @@ -46,6 +46,8 @@ #include #include #include +#include +#include #ifndef HAVE_SLEEP # ifdef HAVE_WINSOCK_H # define WIN32_LEAN_AND_MEAN @@ -53,6 +55,13 @@ # endif // HAVE_WINSOCK_H #endif // HAVE_SLEEP +#ifdef HAVE_LIBGCRYPT +# include +#elif HAVE_LIBSSL +# include +# include "SimpleRandomizer.h" +#endif // HAVE_LIBSSL + #include "File.h" #include "message.h" #include "Randomizer.h" @@ -792,4 +801,24 @@ std::map Util::createIndexPathMap(std::istream& i) return indexPathMap; } +namespace util { + +void generateRandomData(unsigned char* data, size_t length) +{ +#ifdef HAVE_LIBGCRYPT + gcry_randomize(data, length, GCRY_STRONG_RANDOM); +#elif HAVE_LIBSSL + if(RAND_bytes(data, length) != 1) { + for(size_t i = 0; i < length; ++i) { + data[i] = SimpleRandomizer::getInstance()->getRandomNumber(UINT8_MAX+1); + } + } +#else + std::ifstream i("/dev/urandom", std::ios::binary); + i.read(data, length); +#endif // HAVE_LIBSSL +} + +} // namespace util + } // namespace aria2 diff --git a/src/Util.h b/src/Util.h index 06ddaf1fc..8640b7006 100644 --- a/src/Util.h +++ b/src/Util.h @@ -332,6 +332,12 @@ static OutputIterator split(const std::string& src, OutputIterator out, return out; } +namespace util { + +void generateRandomData(unsigned char* data, size_t length); + +} // namespace util + } // namespace aria2 #endif // _D_UTIL_H_ diff --git a/src/bitfield.h b/src/bitfield.h index 23eb6bb94..26f4d024f 100644 --- a/src/bitfield.h +++ b/src/bitfield.h @@ -113,6 +113,8 @@ inline size_t countSetBit(const unsigned char* bitfield, size_t nbits) return count; } +void flipBit(unsigned char* data, size_t length, size_t bitIndex); + } // namespace bitfield } // namespace aria2 diff --git a/src/bittorrent_helper.cc b/src/bittorrent_helper.cc index 274002123..53c8a0065 100644 --- a/src/bittorrent_helper.cc +++ b/src/bittorrent_helper.cc @@ -52,7 +52,6 @@ #include "a2netcompat.h" #include "BtConstants.h" #include "bitfield.h" -#include "DHTUtil.h" namespace aria2 { @@ -625,8 +624,7 @@ std::string generatePeerId(const std::string& peerIdPrefix) unsigned char buf[20]; int len = 20-peerIdPrefix.size(); if(len > 0) { - DHTUtil::generateRandomData(buf, len); - + util::generateRandomData(buf, len); peerId += std::string(&buf[0], &buf[len]); } if(peerId.size() > 20) { peerId.erase(20); @@ -837,6 +835,13 @@ void assertID } } +void generateRandomKey(unsigned char* key) +{ + unsigned char bytes[40]; + util::generateRandomData(bytes, sizeof(bytes)); + MessageDigestHelper::digest(key, 20, MessageDigestContext::SHA1, bytes, sizeof(bytes)); +} + } // namespace bittorrent } // namespace aria2 diff --git a/src/bittorrent_helper.h b/src/bittorrent_helper.h index a99c05b0f..c9d64579e 100644 --- a/src/bittorrent_helper.h +++ b/src/bittorrent_helper.h @@ -208,6 +208,8 @@ void assertPayloadLengthEqual void assertID (uint8_t expected, const unsigned char* data, const std::string& msgName); +void generateRandomKey(unsigned char* key); + } // namespace bittorrent } // namespace aria2 diff --git a/test/ARC4Test.cc b/test/ARC4Test.cc index 1bab1163b..804d749ba 100644 --- a/test/ARC4Test.cc +++ b/test/ARC4Test.cc @@ -1,10 +1,11 @@ #include "ARC4Encryptor.h" + +#include +#include + #include "ARC4Decryptor.h" #include "Exception.h" #include "Util.h" -#include "DHTUtil.h" -#include -#include namespace aria2 { @@ -31,7 +32,7 @@ void ARC4Test::testEncryptDecrypt() const size_t LEN = 20; unsigned char key[LEN]; memset(key, 0, LEN); - DHTUtil::generateRandomData(key, sizeof(key)); + util::generateRandomData(key, sizeof(key)); enc.init(key, sizeof(key)); dec.init(key, sizeof(key)); diff --git a/test/BNodeTest.cc b/test/BNodeTest.cc index 7f2b4e9b2..a01329d2e 100644 --- a/test/BNodeTest.cc +++ b/test/BNodeTest.cc @@ -1,12 +1,13 @@ #include "BNode.h" -#include "DHTNode.h" -#include "DHTBucket.h" -#include "DHTUtil.h" -#include "Exception.h" -#include "Util.h" + #include #include +#include "DHTNode.h" +#include "DHTBucket.h" +#include "Exception.h" +#include "Util.h" + namespace aria2 { class BNodeTest:public CppUnit::TestFixture { diff --git a/test/DHTAnnouncePeerMessageTest.cc b/test/DHTAnnouncePeerMessageTest.cc index 1452b00b3..99c2a16c1 100644 --- a/test/DHTAnnouncePeerMessageTest.cc +++ b/test/DHTAnnouncePeerMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "MockDHTMessageFactory.h" @@ -47,11 +46,11 @@ void DHTAnnouncePeerMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); unsigned char infoHash[DHT_ID_LENGTH]; - DHTUtil::generateRandomData(infoHash, DHT_ID_LENGTH); + util::generateRandomData(infoHash, DHT_ID_LENGTH); std::string token = "token"; uint16_t port = 6881; @@ -83,11 +82,11 @@ void DHTAnnouncePeerMessageTest::testDoReceivedAction() remoteNode->setPort(6881); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); unsigned char infoHash[DHT_ID_LENGTH]; - DHTUtil::generateRandomData(infoHash, DHT_ID_LENGTH); + util::generateRandomData(infoHash, DHT_ID_LENGTH); std::string token = "token"; uint16_t port = 6882; diff --git a/test/DHTAnnouncePeerReplyMessageTest.cc b/test/DHTAnnouncePeerReplyMessageTest.cc index 3ccf6d348..af3ab22ef 100644 --- a/test/DHTAnnouncePeerReplyMessageTest.cc +++ b/test/DHTAnnouncePeerReplyMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "bencode.h" @@ -32,7 +31,7 @@ void DHTAnnouncePeerReplyMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); DHTAnnouncePeerReplyMessage msg(localNode, remoteNode, transactionID); diff --git a/test/DHTFindNodeMessageTest.cc b/test/DHTFindNodeMessageTest.cc index 1e19e881b..933545867 100644 --- a/test/DHTFindNodeMessageTest.cc +++ b/test/DHTFindNodeMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "MockDHTMessageFactory.h" @@ -52,7 +51,7 @@ void DHTFindNodeMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); SharedHandle targetNode(new DHTNode()); @@ -79,7 +78,7 @@ void DHTFindNodeMessageTest::testDoReceivedAction() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); SharedHandle targetNode(new DHTNode()); diff --git a/test/DHTFindNodeReplyMessageTest.cc b/test/DHTFindNodeReplyMessageTest.cc index 14ddbc79f..9b2cf0d5e 100644 --- a/test/DHTFindNodeReplyMessageTest.cc +++ b/test/DHTFindNodeReplyMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "DHTBucket.h" @@ -34,7 +33,7 @@ void DHTFindNodeReplyMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); DHTFindNodeReplyMessage msg(localNode, remoteNode, transactionID); diff --git a/test/DHTGetPeersMessageTest.cc b/test/DHTGetPeersMessageTest.cc index 1b90028dd..9c6a88655 100644 --- a/test/DHTGetPeersMessageTest.cc +++ b/test/DHTGetPeersMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "MockDHTMessageFactory.h" @@ -70,11 +69,11 @@ void DHTGetPeersMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); unsigned char infoHash[DHT_ID_LENGTH]; - DHTUtil::generateRandomData(infoHash, DHT_ID_LENGTH); + util::generateRandomData(infoHash, DHT_ID_LENGTH); DHTGetPeersMessage msg(localNode, remoteNode, infoHash, transactionID); @@ -101,11 +100,11 @@ void DHTGetPeersMessageTest::testDoReceivedAction() remoteNode->setPort(6881); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); unsigned char infoHash[DHT_ID_LENGTH]; - DHTUtil::generateRandomData(infoHash, DHT_ID_LENGTH); + util::generateRandomData(infoHash, DHT_ID_LENGTH); DHTTokenTracker tokenTracker; MockDHTMessageDispatcher dispatcher; diff --git a/test/DHTGetPeersReplyMessageTest.cc b/test/DHTGetPeersReplyMessageTest.cc index 34cbcd7ee..c7e5444cf 100644 --- a/test/DHTGetPeersReplyMessageTest.cc +++ b/test/DHTGetPeersReplyMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "DHTBucket.h" @@ -35,7 +34,7 @@ void DHTGetPeersReplyMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); std::string token = "token"; diff --git a/test/DHTPingMessageTest.cc b/test/DHTPingMessageTest.cc index a011878cf..af93b854f 100644 --- a/test/DHTPingMessageTest.cc +++ b/test/DHTPingMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "MockDHTMessageFactory.h" @@ -50,7 +49,7 @@ void DHTPingMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); DHTPingMessage msg(localNode, remoteNode, transactionID); @@ -74,7 +73,7 @@ void DHTPingMessageTest::testDoReceivedAction() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); + util::generateRandomData(tid, DHT_TRANSACTION_ID_LENGTH); std::string transactionID(&tid[0], &tid[DHT_TRANSACTION_ID_LENGTH]); MockDHTMessageDispatcher dispatcher; diff --git a/test/DHTPingReplyMessageTest.cc b/test/DHTPingReplyMessageTest.cc index dd87c3053..d8fdb5b84 100644 --- a/test/DHTPingReplyMessageTest.cc +++ b/test/DHTPingReplyMessageTest.cc @@ -3,7 +3,6 @@ #include #include "DHTNode.h" -#include "DHTUtil.h" #include "Exception.h" #include "Util.h" #include "bencode.h" @@ -32,11 +31,11 @@ void DHTPingReplyMessageTest::testGetBencodedMessage() SharedHandle remoteNode(new DHTNode()); unsigned char tid[DHT_TRANSACTION_ID_LENGTH]; - DHTUtil::generateRandomData(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]; - DHTUtil::generateRandomData(id, DHT_ID_LENGTH); + util::generateRandomData(id, DHT_ID_LENGTH); DHTPingReplyMessage msg(localNode, remoteNode, id, transactionID); diff --git a/test/DHTTokenTrackerTest.cc b/test/DHTTokenTrackerTest.cc index 2f050b057..990e4e095 100644 --- a/test/DHTTokenTrackerTest.cc +++ b/test/DHTTokenTrackerTest.cc @@ -1,9 +1,10 @@ #include "DHTTokenTracker.h" + +#include + #include "Exception.h" #include "Util.h" -#include "DHTUtil.h" #include "DHTConstants.h" -#include namespace aria2 { @@ -26,7 +27,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(DHTTokenTrackerTest); void DHTTokenTrackerTest::testGenerateToken() { unsigned char infohash[DHT_ID_LENGTH]; - DHTUtil::generateRandomData(infohash, DHT_ID_LENGTH); + util::generateRandomData(infohash, DHT_ID_LENGTH); std::string ipaddr = "192.168.0.1"; uint16_t port = 6881; diff --git a/test/DHTUtilTest.cc b/test/DHTUtilTest.cc deleted file mode 100644 index ee9c0ad04..000000000 --- a/test/DHTUtilTest.cc +++ /dev/null @@ -1,34 +0,0 @@ -#include "DHTUtil.h" -#include "Exception.h" -#include "Util.h" -#include -#include - -namespace aria2 { - -class DHTUtilTest:public CppUnit::TestFixture { - - CPPUNIT_TEST_SUITE(DHTUtilTest); - CPPUNIT_TEST(testGenerateRandomData); - CPPUNIT_TEST_SUITE_END(); -public: - void setUp() {} - - void tearDown() {} - - void testGenerateRandomData(); -}; - - -CPPUNIT_TEST_SUITE_REGISTRATION(DHTUtilTest); - -void DHTUtilTest::testGenerateRandomData() -{ - unsigned char data1[20]; - DHTUtil::generateRandomData(data1, sizeof(data1)); - unsigned char data2[20]; - DHTUtil::generateRandomData(data2, sizeof(data2)); - CPPUNIT_ASSERT(memcmp(data1, data2, sizeof(data1)) != 0); -} - -} // namespace aria2 diff --git a/test/Makefile.am b/test/Makefile.am index e1e2b0c22..e5d222f1e 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -165,7 +165,6 @@ aria2c_SOURCES += BtAllowedFastMessageTest.cc\ DHKeyExchangeTest.cc\ ARC4Test.cc\ MSEHandshakeTest.cc\ - DHTUtilTest.cc\ MockBtAnnounce.h\ MockBtProgressInfoFile.h\ MockBtRequestFactory.h\ diff --git a/test/Makefile.in b/test/Makefile.in index 3fafc3ac3..c66893d52 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -115,7 +115,6 @@ check_PROGRAMS = $(am__EXEEXT_1) @ENABLE_BITTORRENT_TRUE@ DHKeyExchangeTest.cc\ @ENABLE_BITTORRENT_TRUE@ ARC4Test.cc\ @ENABLE_BITTORRENT_TRUE@ MSEHandshakeTest.cc\ -@ENABLE_BITTORRENT_TRUE@ DHTUtilTest.cc\ @ENABLE_BITTORRENT_TRUE@ MockBtAnnounce.h\ @ENABLE_BITTORRENT_TRUE@ MockBtProgressInfoFile.h\ @ENABLE_BITTORRENT_TRUE@ MockBtRequestFactory.h\ @@ -239,15 +238,15 @@ am__aria2c_SOURCES_DIST = AllTest.cc TestUtil.cc TestUtil.h \ DHTTokenTrackerTest.cc XORCloserTest.cc DHTIDCloserTest.cc \ DHTRoutingTableSerializerTest.cc \ DHTRoutingTableDeserializerTest.cc DHKeyExchangeTest.cc \ - ARC4Test.cc MSEHandshakeTest.cc DHTUtilTest.cc \ - MockBtAnnounce.h MockBtProgressInfoFile.h \ - MockBtRequestFactory.h MockDHTMessage.h \ - MockDHTMessageCallback.h MockDHTMessageDispatcher.h \ - MockDHTMessageFactory.h MockDHTTask.h MockDHTTaskFactory.h \ - MockDHTTaskQueue.h MockExtensionMessage.h \ - MockExtensionMessageFactory.h MockPieceStorage.h \ - BencodeTest.cc BittorrentHelperTest.cc MetalinkerTest.cc \ - MetalinkEntryTest.cc Metalink2RequestGroupTest.cc \ + ARC4Test.cc MSEHandshakeTest.cc MockBtAnnounce.h \ + MockBtProgressInfoFile.h MockBtRequestFactory.h \ + MockDHTMessage.h MockDHTMessageCallback.h \ + MockDHTMessageDispatcher.h MockDHTMessageFactory.h \ + MockDHTTask.h MockDHTTaskFactory.h MockDHTTaskQueue.h \ + MockExtensionMessage.h MockExtensionMessageFactory.h \ + MockPieceStorage.h BencodeTest.cc BittorrentHelperTest.cc \ + MetalinkerTest.cc MetalinkEntryTest.cc \ + Metalink2RequestGroupTest.cc \ MetalinkPostDownloadHandlerTest.cc MetalinkHelperTest.cc \ MetalinkParserControllerTest.cc MetalinkProcessorTest.cc @ENABLE_XML_RPC_TRUE@am__objects_1 = XmlRpcRequestParserControllerTest.$(OBJEXT) \ @@ -326,7 +325,6 @@ am__aria2c_SOURCES_DIST = AllTest.cc TestUtil.cc TestUtil.h \ @ENABLE_BITTORRENT_TRUE@ DHKeyExchangeTest.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ ARC4Test.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ MSEHandshakeTest.$(OBJEXT) \ -@ENABLE_BITTORRENT_TRUE@ DHTUtilTest.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ BencodeTest.$(OBJEXT) \ @ENABLE_BITTORRENT_TRUE@ BittorrentHelperTest.$(OBJEXT) @ENABLE_METALINK_TRUE@am__objects_7 = MetalinkerTest.$(OBJEXT) \ @@ -762,7 +760,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTRoutingTableTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTTokenTrackerTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTUnknownMessageTest.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DHTUtilTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DNSCacheTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultAuthResolverTest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultBtAnnounceTest.Po@am__quote@ diff --git a/test/UtilTest.cc b/test/UtilTest.cc index dfb03ec84..46d73f5b9 100644 --- a/test/UtilTest.cc +++ b/test/UtilTest.cc @@ -1,5 +1,6 @@ #include "Util.h" +#include #include #include @@ -54,6 +55,7 @@ class UtilTest:public CppUnit::TestFixture { CPPUNIT_TEST(testJoinPath); CPPUNIT_TEST(testParseIndexPath); CPPUNIT_TEST(testCreateIndexPathMap); + CPPUNIT_TEST(testGenerateRandomData); CPPUNIT_TEST_SUITE_END(); private: @@ -97,6 +99,7 @@ public: void testJoinPath(); void testParseIndexPath(); void testCreateIndexPathMap(); + void testGenerateRandomData(); }; @@ -788,4 +791,13 @@ void UtilTest::testCreateIndexPathMap() CPPUNIT_ASSERT_EQUAL(std::string("/myhome/mypicture.png"), m[100]); } +void UtilTest::testGenerateRandomData() +{ + unsigned char data1[20]; + util::generateRandomData(data1, sizeof(data1)); + unsigned char data2[20]; + util::generateRandomData(data2, sizeof(data2)); + CPPUNIT_ASSERT(memcmp(data1, data2, sizeof(data1)) != 0); +} + } // namespace aria2