mirror of https://github.com/aria2/aria2
2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
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.ccpull/1/head
parent
7e694d38cb
commit
3349fe0811
33
ChangeLog
33
ChangeLog
|
@ -1,3 +1,36 @@
|
|||
2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
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 <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Removed the call to trim() because trim() is called for each
|
||||
|
|
|
@ -38,13 +38,14 @@
|
|||
#include <cassert>
|
||||
#include <algorithm>
|
||||
|
||||
#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> 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<DHTBucket> rBucket(new DHTBucket(_prefixLength,
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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]);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,9 +36,9 @@
|
|||
|
||||
#include <cstring>
|
||||
|
||||
#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
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
#include <cstring>
|
||||
|
||||
#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
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
/* <!-- copyright */
|
||||
/*
|
||||
* aria2 - The high speed download utility
|
||||
*
|
||||
* Copyright (C) 2006 Tatsuhiro Tsujikawa
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give
|
||||
* permission to link the code of portions of this program with the
|
||||
* OpenSSL library under certain conditions as described in each
|
||||
* individual source file, and distribute linked combinations
|
||||
* including the two.
|
||||
* You must obey the GNU General Public License in all respects
|
||||
* for all of the code used other than OpenSSL. If you modify
|
||||
* file(s) with this exception, you may extend this exception to your
|
||||
* version of the file(s), but you are not obligated to do so. If you
|
||||
* do not wish to do so, delete this exception statement from your
|
||||
* version. If you delete this exception statement from all source
|
||||
* files in the program, then also delete it here.
|
||||
*/
|
||||
/* copyright --> */
|
||||
#include "DHTUtil.h"
|
||||
#include "MessageDigestHelper.h"
|
||||
#include <cassert>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
#ifdef HAVE_LIBGCRYPT
|
||||
# include <gcrypt.h>
|
||||
#elif HAVE_LIBSSL
|
||||
# include <openssl/rand.h>
|
||||
# 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
|
|
@ -1,56 +0,0 @@
|
|||
/* <!-- copyright */
|
||||
/*
|
||||
* aria2 - The high speed download utility
|
||||
*
|
||||
* Copyright (C) 2006 Tatsuhiro Tsujikawa
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give
|
||||
* permission to link the code of portions of this program with the
|
||||
* OpenSSL library under certain conditions as described in each
|
||||
* individual source file, and distribute linked combinations
|
||||
* including the two.
|
||||
* You must obey the GNU General Public License in all respects
|
||||
* for all of the code used other than OpenSSL. If you modify
|
||||
* file(s) with this exception, you may extend this exception to your
|
||||
* version of the file(s), but you are not obligated to do so. If you
|
||||
* do not wish to do so, delete this exception statement from your
|
||||
* version. If you delete this exception statement from all source
|
||||
* files in the program, then also delete it here.
|
||||
*/
|
||||
/* copyright --> */
|
||||
#ifndef _D_DHT_UTIL_H_
|
||||
#define _D_DHT_UTIL_H_
|
||||
|
||||
#include "common.h"
|
||||
#include <cstdlib>
|
||||
|
||||
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_
|
|
@ -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\
|
||||
|
|
|
@ -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@
|
||||
|
|
29
src/Util.cc
29
src/Util.cc
|
@ -46,6 +46,8 @@
|
|||
#include <sstream>
|
||||
#include <ostream>
|
||||
#include <algorithm>
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
#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 <gcrypt.h>
|
||||
#elif HAVE_LIBSSL
|
||||
# include <openssl/rand.h>
|
||||
# include "SimpleRandomizer.h"
|
||||
#endif // HAVE_LIBSSL
|
||||
|
||||
#include "File.h"
|
||||
#include "message.h"
|
||||
#include "Randomizer.h"
|
||||
|
@ -792,4 +801,24 @@ std::map<size_t, std::string> 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
|
||||
|
|
|
@ -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_
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
#include "ARC4Encryptor.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "ARC4Decryptor.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "DHTUtil.h"
|
||||
#include <cstring>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
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));
|
||||
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
#include "BNode.h"
|
||||
#include "DHTNode.h"
|
||||
#include "DHTBucket.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTBucket.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
class BNodeTest:public CppUnit::TestFixture {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "MockDHTMessageFactory.h"
|
||||
|
@ -47,11 +46,11 @@ void DHTAnnouncePeerMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "bencode.h"
|
||||
|
@ -32,7 +31,7 @@ void DHTAnnouncePeerReplyMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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);
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "MockDHTMessageFactory.h"
|
||||
|
@ -52,7 +51,7 @@ void DHTFindNodeMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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<DHTNode> targetNode(new DHTNode());
|
||||
|
@ -79,7 +78,7 @@ void DHTFindNodeMessageTest::testDoReceivedAction()
|
|||
SharedHandle<DHTNode> 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<DHTNode> targetNode(new DHTNode());
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "DHTBucket.h"
|
||||
|
@ -34,7 +33,7 @@ void DHTFindNodeReplyMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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);
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "MockDHTMessageFactory.h"
|
||||
|
@ -70,11 +69,11 @@ void DHTGetPeersMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "DHTBucket.h"
|
||||
|
@ -35,7 +34,7 @@ void DHTGetPeersReplyMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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";
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "MockDHTMessageFactory.h"
|
||||
|
@ -50,7 +49,7 @@ void DHTPingMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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<DHTNode> 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;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "DHTNode.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "bencode.h"
|
||||
|
@ -32,11 +31,11 @@ void DHTPingReplyMessageTest::testGetBencodedMessage()
|
|||
SharedHandle<DHTNode> 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);
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#include "DHTTokenTracker.h"
|
||||
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include "DHTUtil.h"
|
||||
#include "DHTConstants.h"
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
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;
|
||||
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
#include "DHTUtil.h"
|
||||
#include "Exception.h"
|
||||
#include "Util.h"
|
||||
#include <cstring>
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
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
|
|
@ -165,7 +165,6 @@ aria2c_SOURCES += BtAllowedFastMessageTest.cc\
|
|||
DHKeyExchangeTest.cc\
|
||||
ARC4Test.cc\
|
||||
MSEHandshakeTest.cc\
|
||||
DHTUtilTest.cc\
|
||||
MockBtAnnounce.h\
|
||||
MockBtProgressInfoFile.h\
|
||||
MockBtRequestFactory.h\
|
||||
|
|
|
@ -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@
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include "Util.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue