mirror of https://github.com/aria2/aria2
2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Halt metadata download immediately when metadata download is done. Don't wait unresponsive tracker. * src/ByteArrayDiskWriter.h * src/DefaultBtInteractive.cc * src/DefaultExtensionMessageFactory.cc * src/DefaultExtensionMessageFactory.h * src/PeerInteractionCommand.cc * src/UTMetadataDataExtensionMessage.cc * src/UTMetadataDataExtensionMessage.h * src/UTMetadataRequestExtensionMessage.cc * test/UTMetadataDataExtensionMessageTest.cc * test/UTMetadataRequestExtensionMessageTest.ccpull/1/head
parent
56265173bd
commit
625a102d1b
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
|||
2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Halt metadata download immediately when metadata download is done.
|
||||
Don't wait unresponsive tracker.
|
||||
* src/ByteArrayDiskWriter.h
|
||||
* src/DefaultBtInteractive.cc
|
||||
* src/DefaultExtensionMessageFactory.cc
|
||||
* src/DefaultExtensionMessageFactory.h
|
||||
* src/PeerInteractionCommand.cc
|
||||
* src/UTMetadataDataExtensionMessage.cc
|
||||
* src/UTMetadataDataExtensionMessage.h
|
||||
* src/UTMetadataRequestExtensionMessage.cc
|
||||
* test/UTMetadataDataExtensionMessageTest.cc
|
||||
* test/UTMetadataRequestExtensionMessageTest.cc
|
||||
|
||||
2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Documented --interface option in man page.
|
||||
|
|
|
@ -70,6 +70,11 @@ public:
|
|||
{
|
||||
buf.str(s);
|
||||
}
|
||||
|
||||
std::string getString() const
|
||||
{
|
||||
return buf.str();
|
||||
}
|
||||
};
|
||||
|
||||
typedef SharedHandle<ByteArrayDiskWriter> ByteArrayDiskWriterHandle;
|
||||
|
|
|
@ -483,6 +483,10 @@ void DefaultBtInteractive::doInteractionProcessing() {
|
|||
_pieceStorage->cancelPiece(_pieceStorage->getPiece(*i));
|
||||
}
|
||||
}
|
||||
if(_pieceStorage->downloadFinished()) {
|
||||
_downloadContext->getOwnerRequestGroup()->setForceHaltRequested
|
||||
(true, RequestGroup::NONE);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
checkActiveInteraction();
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
#include "bencode.h"
|
||||
#include "PieceStorage.h"
|
||||
#include "UTMetadataRequestTracker.h"
|
||||
#include "BtRuntime.h"
|
||||
#include "RequestGroup.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
@ -137,7 +136,6 @@ DefaultExtensionMessageFactory::createMessage(const unsigned char* data, size_t
|
|||
m->setUTMetadataRequestTracker(_tracker);
|
||||
m->setPieceStorage(_dctx->getOwnerRequestGroup()->getPieceStorage());
|
||||
m->setDownloadContext(_dctx);
|
||||
m->setBtRuntime(_btRuntime);
|
||||
return m;
|
||||
}
|
||||
case 2: {
|
||||
|
|
|
@ -47,7 +47,6 @@ class DownloadContext;
|
|||
class BtMessageFactory;
|
||||
class BtMessageDispatcher;
|
||||
class UTMetadataRequestTracker;
|
||||
class BtRuntime;
|
||||
|
||||
class DefaultExtensionMessageFactory:public ExtensionMessageFactory {
|
||||
private:
|
||||
|
@ -59,8 +58,6 @@ private:
|
|||
|
||||
SharedHandle<DownloadContext> _dctx;
|
||||
|
||||
SharedHandle<BtRuntime> _btRuntime;
|
||||
|
||||
WeakHandle<BtMessageFactory> _messageFactory;
|
||||
|
||||
WeakHandle<BtMessageDispatcher> _dispatcher;
|
||||
|
@ -111,11 +108,6 @@ public:
|
|||
{
|
||||
_tracker = tracker;
|
||||
}
|
||||
|
||||
void setBtRuntime(const SharedHandle<BtRuntime>& btRuntime)
|
||||
{
|
||||
_btRuntime = btRuntime;
|
||||
}
|
||||
};
|
||||
|
||||
typedef SharedHandle<DefaultExtensionMessageFactory> DefaultExtensionMessageFactoryHandle;
|
||||
|
|
|
@ -122,7 +122,6 @@ PeerInteractionCommand::PeerInteractionCommand
|
|||
(_requestGroup->getDownloadContext());
|
||||
extensionMessageFactory->setUTMetadataRequestTracker
|
||||
(utMetadataRequestTracker);
|
||||
extensionMessageFactory->setBtRuntime(_btRuntime);
|
||||
// PieceStorage will be set later.
|
||||
|
||||
SharedHandle<DefaultBtMessageFactory> factory(new DefaultBtMessageFactory());
|
||||
|
|
|
@ -45,7 +45,6 @@
|
|||
#include "bittorrent_helper.h"
|
||||
#include "DiskAdaptor.h"
|
||||
#include "Piece.h"
|
||||
#include "BtRuntime.h"
|
||||
#include "LogFactory.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
@ -88,7 +87,6 @@ void UTMetadataDataExtensionMessage::doReceivedAction()
|
|||
if(std::string(&infoHash[0], &infoHash[INFO_HASH_LENGTH]) ==
|
||||
attrs[bittorrent::INFO_HASH].s()){
|
||||
_logger->info("Got ut_metadata");
|
||||
_btRuntime->setHalt(true);
|
||||
} else {
|
||||
_logger->info("Got wrong ut_metadata");
|
||||
for(size_t i = 0; i < _dctx->getNumPieces(); ++i) {
|
||||
|
|
|
@ -42,7 +42,6 @@ namespace aria2 {
|
|||
class DownloadContext;
|
||||
class PieceStorage;
|
||||
class UTMetadataRequestTracker;
|
||||
class BtRuntime;
|
||||
class Logger;
|
||||
|
||||
class UTMetadataDataExtensionMessage:public UTMetadataExtensionMessage {
|
||||
|
@ -55,8 +54,6 @@ private:
|
|||
|
||||
SharedHandle<PieceStorage> _pieceStorage;
|
||||
|
||||
SharedHandle<BtRuntime> _btRuntime;
|
||||
|
||||
WeakHandle<UTMetadataRequestTracker> _tracker;
|
||||
|
||||
Logger* _logger;
|
||||
|
@ -104,11 +101,6 @@ public:
|
|||
{
|
||||
_dctx = dctx;
|
||||
}
|
||||
|
||||
void setBtRuntime(const SharedHandle<BtRuntime>& btRuntime)
|
||||
{
|
||||
_btRuntime = btRuntime;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
#include "DownloadContext.h"
|
||||
#include "BtMessage.h"
|
||||
#include "PieceStorage.h"
|
||||
#include "BtRuntime.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "BtConstants.h"
|
||||
#include "PieceStorage.h"
|
||||
#include "DownloadContext.h"
|
||||
#include "BtRuntime.h"
|
||||
#include "DirectDiskAdaptor.h"
|
||||
#include "ByteArrayDiskWriter.h"
|
||||
#include "BDE.h"
|
||||
|
@ -71,7 +70,6 @@ void UTMetadataDataExtensionMessageTest::testDoReceivedAction()
|
|||
diskAdaptor->setDiskWriter(diskWriter);
|
||||
SharedHandle<MockPieceStorage> pieceStorage(new MockPieceStorage());
|
||||
pieceStorage->setDiskAdaptor(diskAdaptor);
|
||||
SharedHandle<BtRuntime> btRuntime(new BtRuntime());
|
||||
SharedHandle<UTMetadataRequestTracker> tracker
|
||||
(new UTMetadataRequestTracker());
|
||||
SharedHandle<DownloadContext> dctx(new DownloadContext());
|
||||
|
@ -91,7 +89,6 @@ void UTMetadataDataExtensionMessageTest::testDoReceivedAction()
|
|||
|
||||
UTMetadataDataExtensionMessage m(1);
|
||||
m.setPieceStorage(pieceStorage);
|
||||
m.setBtRuntime(btRuntime);
|
||||
m.setUTMetadataRequestTracker(tracker);
|
||||
m.setDownloadContext(dctx);
|
||||
|
||||
|
@ -107,11 +104,11 @@ void UTMetadataDataExtensionMessageTest::testDoReceivedAction()
|
|||
m.setIndex(0);
|
||||
m.setData(piece0);
|
||||
m.doReceivedAction();
|
||||
CPPUNIT_ASSERT(!btRuntime->isHalt());
|
||||
|
||||
tracker->add(0);
|
||||
m.doReceivedAction();
|
||||
CPPUNIT_ASSERT(btRuntime->isHalt());
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(metadata, diskWriter->getString());
|
||||
}
|
||||
|
||||
} // namespace aria2
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "UTMetadataRejectExtensionMessage.h"
|
||||
#include "UTMetadataDataExtensionMessage.h"
|
||||
#include "PieceStorage.h"
|
||||
#include "BtRuntime.h"
|
||||
#include "extension_message_test_helper.h"
|
||||
|
||||
namespace aria2 {
|
||||
|
|
Loading…
Reference in New Issue