mirror of https://github.com/aria2/aria2
2007-12-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Fixed compile error without message digest support. * src/FileMetalinkParserState.cc * src/MetalinkParserController.{h, cc} * test/XML2SAXMetalinkProcessorTest.cc * test/MetalinkParserControllerTest.ccpull/1/head
parent
b75dbc4bbe
commit
0ec3727bf5
|
@ -1,3 +1,11 @@
|
|||
2007-12-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Fixed compile error without message digest support.
|
||||
* src/FileMetalinkParserState.cc
|
||||
* src/MetalinkParserController.{h, cc}
|
||||
* test/XML2SAXMetalinkProcessorTest.cc
|
||||
* test/MetalinkParserControllerTest.cc
|
||||
|
||||
2007-12-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Enable direct I/O support in checksum checking.
|
||||
|
|
|
@ -49,8 +49,10 @@ void FileMetalinkParserState::beginElement(MetalinkParserStateMachine* stm,
|
|||
stm->setLanguageState();
|
||||
} else if(name == "os") {
|
||||
stm->setOSState();
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
} else if(name == "verification") {
|
||||
stm->setVerificationState();
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
} else if(name == "resources") {
|
||||
stm->setResourcesState();
|
||||
int32_t maxConnections;
|
||||
|
|
|
@ -145,7 +145,8 @@ SRCS = Socket.h\
|
|||
Peer.cc Peer.h\
|
||||
BtRegistry.cc BtRegistry.h\
|
||||
MultiFileAllocationIterator.cc MultiFileAllocationIterator.h\
|
||||
PeerConnection.cc PeerConnection.h
|
||||
PeerConnection.cc PeerConnection.h\
|
||||
ByteArrayDiskWriter.cc ByteArrayDiskWriter.h
|
||||
# debug_new.cpp
|
||||
|
||||
if ENABLE_MESSAGE_DIGEST
|
||||
|
@ -174,7 +175,6 @@ SRCS += MetaEntry.h\
|
|||
RequestSlot.cc RequestSlot.h\
|
||||
Directory.cc Directory.h\
|
||||
TrackerWatcherCommand.cc TrackerWatcherCommand.h\
|
||||
ByteArrayDiskWriter.cc ByteArrayDiskWriter.h\
|
||||
PeerChokeCommand.cc PeerChokeCommand.h\
|
||||
SeedCriteria.h\
|
||||
TimeSeedCriteria.h\
|
||||
|
|
|
@ -63,7 +63,6 @@ bin_PROGRAMS = aria2c$(EXEEXT)
|
|||
@ENABLE_BITTORRENT_TRUE@ RequestSlot.cc RequestSlot.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ Directory.cc Directory.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ TrackerWatcherCommand.cc TrackerWatcherCommand.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ ByteArrayDiskWriter.cc ByteArrayDiskWriter.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ PeerChokeCommand.cc PeerChokeCommand.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ SeedCriteria.h\
|
||||
@ENABLE_BITTORRENT_TRUE@ TimeSeedCriteria.h\
|
||||
|
@ -291,7 +290,8 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
|
|||
MultiDiskAdaptor.cc MultiDiskAdaptor.h Peer.cc Peer.h \
|
||||
BtRegistry.cc BtRegistry.h MultiFileAllocationIterator.cc \
|
||||
MultiFileAllocationIterator.h PeerConnection.cc \
|
||||
PeerConnection.h IteratableChunkChecksumValidator.cc \
|
||||
PeerConnection.h ByteArrayDiskWriter.cc ByteArrayDiskWriter.h \
|
||||
IteratableChunkChecksumValidator.cc \
|
||||
IteratableChunkChecksumValidator.h \
|
||||
IteratableChecksumValidator.cc IteratableChecksumValidator.h \
|
||||
CheckIntegrityCommand.cc CheckIntegrityCommand.h \
|
||||
|
@ -306,7 +306,6 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
|
|||
PeerInteractionCommand.h PeerListenCommand.cc \
|
||||
PeerListenCommand.h RequestSlot.cc RequestSlot.h Directory.cc \
|
||||
Directory.h TrackerWatcherCommand.cc TrackerWatcherCommand.h \
|
||||
ByteArrayDiskWriter.cc ByteArrayDiskWriter.h \
|
||||
PeerChokeCommand.cc PeerChokeCommand.h SeedCriteria.h \
|
||||
TimeSeedCriteria.h ShareRatioSeedCriteria.h \
|
||||
UnionSeedCriteria.h SeedCheckCommand.cc SeedCheckCommand.h \
|
||||
|
@ -391,7 +390,6 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
|
|||
@ENABLE_BITTORRENT_TRUE@ RequestSlot.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ Directory.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ TrackerWatcherCommand.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ ByteArrayDiskWriter.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ PeerChokeCommand.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ SeedCheckCommand.$(OBJEXT) \
|
||||
@ENABLE_BITTORRENT_TRUE@ DefaultPeerListProcessor.$(OBJEXT) \
|
||||
|
@ -526,10 +524,11 @@ am__objects_12 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \
|
|||
DirectDiskAdaptor.$(OBJEXT) MultiDiskAdaptor.$(OBJEXT) \
|
||||
Peer.$(OBJEXT) BtRegistry.$(OBJEXT) \
|
||||
MultiFileAllocationIterator.$(OBJEXT) PeerConnection.$(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) $(am__objects_11)
|
||||
ByteArrayDiskWriter.$(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) \
|
||||
$(am__objects_11)
|
||||
am_libaria2c_a_OBJECTS = $(am__objects_12)
|
||||
libaria2c_a_OBJECTS = $(am_libaria2c_a_OBJECTS)
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
|
@ -817,10 +816,11 @@ SRCS = Socket.h SocketCore.cc SocketCore.h Command.cc Command.h \
|
|||
MultiDiskAdaptor.cc MultiDiskAdaptor.h Peer.cc Peer.h \
|
||||
BtRegistry.cc BtRegistry.h MultiFileAllocationIterator.cc \
|
||||
MultiFileAllocationIterator.h PeerConnection.cc \
|
||||
PeerConnection.h $(am__append_1) $(am__append_2) \
|
||||
$(am__append_3) $(am__append_4) $(am__append_5) \
|
||||
$(am__append_6) $(am__append_7) $(am__append_8) \
|
||||
$(am__append_9) $(am__append_10) $(am__append_11)
|
||||
PeerConnection.h ByteArrayDiskWriter.cc ByteArrayDiskWriter.h \
|
||||
$(am__append_1) $(am__append_2) $(am__append_3) \
|
||||
$(am__append_4) $(am__append_5) $(am__append_6) \
|
||||
$(am__append_7) $(am__append_8) $(am__append_9) \
|
||||
$(am__append_10) $(am__append_11)
|
||||
noinst_LIBRARIES = libaria2c.a
|
||||
libaria2c_a_SOURCES = $(SRCS)
|
||||
aria2c_LDADD = libaria2c.a @LIBINTL@ @ALLOCA@ @LIBGNUTLS_LIBS@\
|
||||
|
|
|
@ -36,15 +36,21 @@
|
|||
#include "Metalinker.h"
|
||||
#include "MetalinkEntry.h"
|
||||
#include "MetalinkResource.h"
|
||||
#include "Checksum.h"
|
||||
#include "ChunkChecksum.h"
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
# include "Checksum.h"
|
||||
# include "ChunkChecksum.h"
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
||||
MetalinkParserController::MetalinkParserController():
|
||||
_metalinker(new Metalinker()),
|
||||
_tEntry(0),
|
||||
_tResource(0),
|
||||
_tResource(0)
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
,
|
||||
_tChecksum(0),
|
||||
_tChunkChecksum(0) {}
|
||||
_tChunkChecksum(0)
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
{}
|
||||
|
||||
MetalinkParserController::~MetalinkParserController() {}
|
||||
|
||||
|
@ -57,8 +63,10 @@ void MetalinkParserController::newEntryTransaction()
|
|||
{
|
||||
_tEntry = new MetalinkEntry();
|
||||
_tResource = 0;
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
_tChecksum = 0;
|
||||
_tChunkChecksum = 0;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setFileNameOfEntry(const string& filename)
|
||||
|
@ -211,14 +219,17 @@ void MetalinkParserController::cancelResourceTransaction()
|
|||
|
||||
void MetalinkParserController::newChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tEntry.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tChecksum = new Checksum();
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setTypeOfChecksum(const string& type)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
@ -227,18 +238,22 @@ void MetalinkParserController::setTypeOfChecksum(const string& type)
|
|||
} else {
|
||||
cancelChecksumTransaction();
|
||||
}
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setHashOfChecksum(const string& md)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tChecksum->setMessageDigest(md);
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::commitChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
@ -246,24 +261,30 @@ void MetalinkParserController::commitChecksumTransaction()
|
|||
_tEntry->checksum = _tChecksum;
|
||||
}
|
||||
_tChecksum = 0;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::cancelChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
_tChecksum = 0;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::newChunkChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tEntry.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tChunkChecksum = new ChunkChecksum();
|
||||
_tempChunkChecksums.clear();
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setTypeOfChunkChecksum(const string& type)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
@ -272,10 +293,12 @@ void MetalinkParserController::setTypeOfChunkChecksum(const string& type)
|
|||
} else {
|
||||
cancelChunkChecksumTransaction();
|
||||
}
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setLengthOfChunkChecksum(int32_t length)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
@ -284,38 +307,47 @@ void MetalinkParserController::setLengthOfChunkChecksum(int32_t length)
|
|||
} else {
|
||||
cancelChunkChecksumTransaction();
|
||||
}
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::addHashOfChunkChecksum(int32_t order, const string& md)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tempChunkChecksums.push_back(pair<int32_t, string>(order, md));
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::createNewHashOfChunkChecksum(int32_t order)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tempHashPair.first = order;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::setMessageDigestOfChunkChecksum(const string& md)
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tempHashPair.second = md;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::addHashOfChunkChecksum()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
_tempChunkChecksums.push_back(_tempHashPair);
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
bool firstAsc(const pair<int32_t, string>& p1, const pair<int32_t, string>& p2)
|
||||
|
@ -338,6 +370,7 @@ public:
|
|||
|
||||
void MetalinkParserController::commitChunkChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
if(_tChunkChecksum.isNull()) {
|
||||
return;
|
||||
}
|
||||
|
@ -350,11 +383,14 @@ void MetalinkParserController::commitChunkChecksumTransaction()
|
|||
_tEntry->chunkChecksum = _tChunkChecksum;
|
||||
}
|
||||
_tChunkChecksum = 0;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
void MetalinkParserController::cancelChunkChecksumTransaction()
|
||||
{
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
_tChunkChecksum = 0;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -43,10 +43,13 @@ class MetalinkEntry;
|
|||
typedef SharedHandle<MetalinkEntry> MetalinkEntryHandle;
|
||||
class MetalinkResource;
|
||||
typedef SharedHandle<MetalinkResource> MetalinkResourceHandle;
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
class Checksum;
|
||||
typedef SharedHandle<Checksum> ChecksumHandle;
|
||||
class ChunkChecksum;
|
||||
typedef SharedHandle<ChunkChecksum> ChunkChecksumHandle;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
||||
class MetalinkParserController {
|
||||
private:
|
||||
|
@ -56,6 +59,7 @@ private:
|
|||
|
||||
MetalinkResourceHandle _tResource;
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
ChecksumHandle _tChecksum;
|
||||
|
||||
ChunkChecksumHandle _tChunkChecksum;
|
||||
|
@ -63,6 +67,7 @@ private:
|
|||
deque<pair<int32_t, string> > _tempChunkChecksums;
|
||||
|
||||
pair<int32_t, string> _tempHashPair;
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
||||
public:
|
||||
MetalinkParserController();
|
||||
|
|
|
@ -2,8 +2,10 @@
|
|||
#include "Metalinker.h"
|
||||
#include "MetalinkEntry.h"
|
||||
#include "MetalinkResource.h"
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
#include "Checksum.h"
|
||||
#include "ChunkChecksum.h"
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
#include <cppunit/extensions/HelperMacros.h>
|
||||
|
||||
class MetalinkParserControllerTest:public CppUnit::TestFixture {
|
||||
|
@ -11,8 +13,10 @@ class MetalinkParserControllerTest:public CppUnit::TestFixture {
|
|||
CPPUNIT_TEST_SUITE(MetalinkParserControllerTest);
|
||||
CPPUNIT_TEST(testEntryTransaction);
|
||||
CPPUNIT_TEST(testResourceTransaction);
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
CPPUNIT_TEST(testChecksumTransaction);
|
||||
CPPUNIT_TEST(testChunkChecksumTransaction);
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
private:
|
||||
|
@ -24,8 +28,10 @@ public:
|
|||
|
||||
void testEntryTransaction();
|
||||
void testResourceTransaction();
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
void testChecksumTransaction();
|
||||
void testChunkChecksumTransaction();
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
};
|
||||
|
||||
|
||||
|
@ -86,6 +92,7 @@ void MetalinkParserControllerTest::testResourceTransaction()
|
|||
CPPUNIT_ASSERT_EQUAL((size_t)1, ctrl.getResult()->entries.front()->resources.size());
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
void MetalinkParserControllerTest::testChecksumTransaction()
|
||||
{
|
||||
MetalinkParserController ctrl;
|
||||
|
@ -138,3 +145,4 @@ void MetalinkParserControllerTest::testChunkChecksumTransaction()
|
|||
ctrl.commitEntryTransaction();
|
||||
CPPUNIT_ASSERT(ctrl.getResult()->entries[1]->chunkChecksum.isNull());
|
||||
}
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
|
|
@ -17,11 +17,13 @@ class XML2SAXMetalinkProcessorTest:public CppUnit::TestFixture {
|
|||
CPPUNIT_TEST(testNoName);
|
||||
CPPUNIT_TEST(testBadURLPrefs);
|
||||
CPPUNIT_TEST(testBadURLMaxConn);
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
CPPUNIT_TEST(testUnsupportedType);
|
||||
CPPUNIT_TEST(testMultiplePieces);
|
||||
CPPUNIT_TEST(testBadPieceNo);
|
||||
CPPUNIT_TEST(testBadPieceLength);
|
||||
CPPUNIT_TEST(testUnsupportedType_piece);
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
private:
|
||||
|
||||
|
@ -42,11 +44,13 @@ public:
|
|||
void testNoName();
|
||||
void testBadURLPrefs();
|
||||
void testBadURLMaxConn();
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
void testUnsupportedType();
|
||||
void testMultiplePieces();
|
||||
void testBadPieceNo();
|
||||
void testBadPieceLength();
|
||||
void testUnsupportedType_piece();
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
};
|
||||
|
||||
|
||||
|
@ -347,6 +351,7 @@ void XML2SAXMetalinkProcessorTest::testBadURLMaxConn()
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef ENABLE_MESSAGE_DIGEST
|
||||
void XML2SAXMetalinkProcessorTest::testUnsupportedType()
|
||||
{
|
||||
XML2SAXMetalinkProcessor proc;
|
||||
|
@ -509,3 +514,4 @@ void XML2SAXMetalinkProcessorTest::testUnsupportedType_piece()
|
|||
delete e;
|
||||
}
|
||||
}
|
||||
#endif // ENABLE_MESSAGE_DIGEST
|
||||
|
|
Loading…
Reference in New Issue