mirror of https://github.com/aria2/aria2
20 Commits (338e8aca09331d3e7fa4e1e8e1f9d10260986772)
Author | SHA1 | Message | Date |
---|---|---|---|
Tatsuhiro Tsujikawa | c1f9032441 |
2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Don't inject validator into BtMessage in metadataGetMode because most of the checks depends on the total length of download but it is unknown. Delegate metadataGetMode to BtMessage. * src/DefaultBtMessageFactory.cc * src/DefaultBtMessageFactory.h |
|
Tatsuhiro Tsujikawa | 309d292831 |
2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use C++ style cast * src/AsyncNameResolver.cc * src/Base64.h * src/BtBitfieldMessage.cc * src/BtHandshakeMessage.cc * src/DefaultBtMessageFactory.cc * src/DefaultBtProgressInfoFile.cc * src/EpollEventPoll.cc * src/ExpatMetalinkProcessor.cc * src/IteratableChecksumValidator.cc * src/IteratableChunkChecksumValidator.cc * src/MessageDigestHelper.cc * src/Platform.cc * src/RequestGroupMan.cc * src/SingleFileAllocationIterator.cc * src/Sqlite3MozCookieParser.cc * src/XML2SAXMetalinkProcessor.cc * src/Xml2XmlRpcRequestProcessor.cc * src/util.cc * src/util.h |
|
Tatsuhiro Tsujikawa | 99654e4160 |
2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Move all functions in PeerMessageUtil to bittorrent_helper. * src/BtBitfieldMessage.cc * src/BtBitfieldMessageValidator.h * src/BtExtendedMessage.cc * src/BtHandshakeMessage.cc * src/BtHandshakeMessageValidator.h * src/BtPieceMessage.cc * src/BtPieceMessageValidator.h * src/BtPortMessage.cc * src/DHTFindNodeReplyMessage.cc * src/DHTGetPeersReplyMessage.cc * src/DHTMessageFactoryImpl.cc * src/DHTRoutingTableDeserializer.cc * src/DHTRoutingTableSerializer.cc * src/DHTTokenTracker.cc * src/DefaultBtMessageFactory.cc * src/IndexBtMessage.cc * src/IndexBtMessage.h * src/IndexBtMessageValidator.h * src/Makefile.am * src/PeerMessageUtil.cc: Removed. * src/PeerMessageUtil.h: Removed. * src/RangeBtMessage.cc * src/RangeBtMessage.h * src/RangeBtMessageValidator.h * src/UTPexExtensionMessage.cc * src/ZeroBtMessage.cc * src/ZeroBtMessage.h * src/bittorrent_helper.cc * src/bittorrent_helper.h * test/BittorrentHelperTest.cc * test/BtAllowedFastMessageTest.cc * test/BtBitfieldMessageTest.cc * test/BtCancelMessageTest.cc * test/BtChokeMessageTest.cc * test/BtExtendedMessageTest.cc * test/BtHandshakeMessageTest.cc * test/BtHaveAllMessageTest.cc * test/BtHaveMessageTest.cc * test/BtHaveNoneMessageTest.cc * test/BtInterestedMessageTest.cc * test/BtNotInterestedMessageTest.cc * test/BtPieceMessageTest.cc * test/BtPortMessageTest.cc * test/BtRejectMessageTest.cc * test/BtRequestMessageTest.cc * test/BtSuggestPieceMessageTest.cc * test/BtUnchokeMessageTest.cc * test/DHTFindNodeReplyMessageTest.cc * test/DHTGetPeersReplyMessageTest.cc * test/DHTMessageFactoryImplTest.cc * test/DHTRoutingTableDeserializerTest.cc * test/DHTRoutingTableSerializerTest.cc * test/DefaultBtMessageFactoryTest.cc * test/DefaultExtensionMessageFactoryTest.cc * test/Makefile.am * test/PeerListProcessorTest.cc * test/PeerMessageUtilTest.cc: Removed. * test/UTPexExtensionMessageTest.cc |
|
Tatsuhiro Tsujikawa | 5699b67526 |
2009-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Rewritten DownloadContext and removed SingleFileDownloadContext and BtContext and its derived classes. BitTorrent specific attributes are now set by DownloadContext::setAttribute() with key bittorrent::BITTORRENT. * src/AbstractBtMessage.cc * src/AbstractBtMessage.h * src/AbstractCommand.cc * src/AbstractCommand.h * src/AbstractProxyRequestCommand.cc * src/AbstractProxyResponseCommand.cc * src/ActivePeerConnectionCommand.cc * src/ActivePeerConnectionCommand.h * src/AnnounceList.cc * src/BtCheckIntegrityEntry.cc * src/BtConstants.h * src/BtContext.h: Removed * src/BtDependency.cc * src/BtExtendedMessage.cc * src/BtPieceMessage.cc * src/BtPieceMessage.h * src/BtPostDownloadHandler.cc * src/BtRegistry.cc * src/BtRegistry.h * src/BtSetup.cc * src/CheckIntegrityCommand.cc * src/CheckIntegrityEntry.cc * src/ChecksumCheckIntegrityEntry.cc * src/ConsoleStatCalc.cc * src/ContentTypeRequestGroupCriteria.cc * src/DHTGetPeersCommand.cc * src/DHTGetPeersCommand.h * src/DHTPeerLookupTask.cc * src/DHTPeerLookupTask.h * src/DHTTaskFactory.h * src/DHTTaskFactoryImpl.cc * src/DHTTaskFactoryImpl.h * src/DefaultBtAnnounce.cc * src/DefaultBtAnnounce.h * src/DefaultBtContext.cc: Removed * src/DefaultBtContext.h: Removed * src/DefaultBtInteractive.cc * src/DefaultBtInteractive.h * src/DefaultBtMessageDispatcher.cc * src/DefaultBtMessageDispatcher.h * src/DefaultBtMessageFactory.cc * src/DefaultBtMessageFactory.h * src/DefaultBtMessageReceiver.cc * src/DefaultBtMessageReceiver.h * src/DefaultBtProgressInfoFile.cc * src/DefaultBtRequestFactory.cc * src/DefaultBtRequestFactory.h * src/DefaultExtensionMessageFactory.cc * src/DefaultExtensionMessageFactory.h * src/DefaultPeerStorage.cc * src/DefaultPeerStorage.h * src/DefaultPieceStorage.cc * src/DefaultSegmentManFactory.cc * src/DiskAdaptor.cc * src/DiskAdaptor.h * src/DownloadContext.cc * src/DownloadContext.h * src/DownloadEngine.cc * src/DownloadEngineFactory.cc * src/DownloadHandler.cc * src/DownloadResult.h * src/FileAllocationCommand.cc * src/FileAllocationDispatcherCommand.cc * src/FileAllocationEntry.cc * src/FileEntry.h * src/FillRequestGroupCommand.cc * src/FtpDownloadCommand.cc * src/FtpFinishDownloadCommand.cc * src/FtpInitiateConnectionCommand.cc * src/FtpNegotiationCommand.cc * src/FtpTunnelRequestCommand.cc * src/FtpTunnelResponseCommand.cc * src/HandshakeExtensionMessage.cc * src/HandshakeExtensionMessage.h * src/HaveEraseCommand.cc * src/HttpDownloadCommand.cc * src/HttpInitiateConnectionCommand.cc * src/HttpProxyRequestCommand.cc * src/HttpProxyResponseCommand.cc * src/HttpRequest.cc * src/HttpRequest.h * src/HttpRequestCommand.cc * src/HttpResponseCommand.cc * src/HttpServerBodyCommand.cc * src/HttpServerCommand.cc * src/HttpSkipResponseCommand.cc * src/InitiateConnectionCommandFactory.cc * src/InitiatorMSEHandshakeCommand.cc * src/InitiatorMSEHandshakeCommand.h * src/IteratableChecksumValidator.cc * src/IteratableChecksumValidator.h * src/IteratableChunkChecksumValidator.cc * src/MSEHandshake.cc * src/MSEHandshake.h * src/Makefile.am * src/Makefile.in * src/Metalink2RequestGroup.cc * src/MetalinkPostDownloadHandler.cc * src/MultiDiskAdaptor.cc * src/MultiDiskAdaptor.h * src/MultiFileAllocationIterator.cc * src/MultiUrlRequestInfo.cc * src/PeerChokeCommand.cc * src/PeerChokeCommand.h * src/PeerInitiateConnectionCommand.cc * src/PeerInitiateConnectionCommand.h * src/PeerInteractionCommand.cc * src/PeerInteractionCommand.h * src/PeerReceiveHandshakeCommand.cc * src/PieceHashCheckIntegrityEntry.cc * src/RealtimeCommand.cc * src/ReceiverMSEHandshakeCommand.cc * src/RequestGroup.cc * src/RequestGroup.h * src/RequestGroupEntry.cc * src/RequestGroupMan.cc * src/SeedCheckCommand.cc * src/SeedCheckCommand.h * src/SegmentMan.cc * src/ShareRatioSeedCriteria.h * src/SingleFileDownloadContext.cc: Removed * src/SingleFileDownloadContext.h: Removed * src/SleepCommand.cc * src/StreamCheckIntegrityEntry.cc * src/TrackerWatcherCommand.cc * src/TrackerWatcherCommand.h * src/UnknownLengthPieceStorage.cc * src/Util.cc * src/Util.h * src/XmlRpcMethodImpl.cc * src/bittorrent_helper.cc * src/bittorrent_helper.h * src/download_helper.cc * src/main.cc * src/option_processing.cc * test/BitfieldManTest.cc * test/BittorrentHelperTest.cc * test/BtCancelMessageTest.cc * test/BtChokeMessageTest.cc * test/BtDependencyTest.cc * test/BtPieceMessageTest.cc * test/BtPostDownloadHandlerTest.cc * test/BtRegistryTest.cc * test/BtRejectMessageTest.cc * test/BtRequestMessageTest.cc * test/DHTPeerAnnounceStorageTest.cc * test/DefaultBtAnnounceTest.cc * test/DefaultBtContextTest.cc: Removed * test/DefaultBtMessageDispatcherTest.cc * test/DefaultBtMessageFactoryTest.cc * test/DefaultBtProgressInfoFileTest.cc * test/DefaultBtRequestFactoryTest.cc * test/DefaultExtensionMessageFactoryTest.cc * test/DefaultPeerStorageTest.cc * test/DefaultPieceStorageTest.cc * test/DirectDiskAdaptorTest.cc * test/DownloadContextTest.cc * test/DownloadHandlerFactoryTest.cc * test/DownloadHelperTest.cc * test/HandshakeExtensionMessageTest.cc * test/HttpRequestTest.cc * test/HttpResponseTest.cc * test/IteratableChecksumValidatorTest.cc * test/IteratableChunkChecksumValidatorTest.cc * test/MSEHandshakeTest.cc * test/Makefile.am * test/Makefile.in * test/Metalink2RequestGroupTest.cc * test/MetalinkPostDownloadHandlerTest.cc * test/MockBtContext.h: Removed * test/MockDHTTaskFactory.h * test/MockDownloadContext.h: Removed * test/MockPieceStorage.h * test/MultiDiskAdaptorTest.cc * test/MultiFileAllocationIteratorTest.cc * test/RequestGroupManTest.cc * test/RequestGroupTest.cc * test/SegmentManTest.cc * test/ShareRatioSeedCriteriaTest.cc * test/SingleFileDownloadContextTest.cc: Removed * test/UtilTest.cc * test/XmlRpcMethodTest.cc |
|
Tatsuhiro Tsujikawa | 20e215047c |
2009-05-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added source filename(__FILE__) and line number(__LINE__) to exception message. * src/AbstractCommand.cc * src/AbstractDiskWriter.cc * src/AbstractProxyResponseCommand.cc * src/BDE.h * src/BtAllowedFastMessage.cc * src/BtHandshakeMessageValidator.h * src/BtHaveAllMessage.cc * src/BtHaveNoneMessage.cc * src/BtPieceMessage.cc * src/BtRejectMessage.cc * src/ChunkedDecoder.cc * src/CookieStorage.cc * src/DHTAnnouncePeerMessage.cc * src/DHTEntryPointNameResolveCommand.cc * src/DHTMessageFactoryImpl.cc * src/DHTMessageTracker.cc * src/DHTRoutingTableDeserializer.cc * src/DHTRoutingTableSerializer.cc * src/DHTSetup.cc * src/DHTTokenTracker.cc * src/DefaultBtAnnounce.cc * src/DefaultBtContext.cc * src/DefaultBtInteractive.cc * src/DefaultBtMessageFactory.cc * src/DefaultBtProgressInfoFile.cc * src/DefaultExtensionMessageFactory.cc * src/DlAbortEx.h * src/DlRetryEx.h * src/DownloadCommand.cc * src/DownloadEngineFactory.cc * src/DownloadFailureException.h * src/Exception.cc * src/Exception.h * src/ExpatMetalinkProcessor.cc * src/ExpatXmlRpcRequestProcessor.cc * src/FallocFileAllocationIterator.cc * src/FatalException.h * src/FtpConnection.cc * src/FtpFinishDownloadCommand.cc * src/FtpInitiateConnectionCommand.cc * src/FtpNegotiationCommand.cc * src/GZipDecoder.cc * src/HandshakeExtensionMessage.cc * src/HttpConnection.cc * src/HttpHeaderProcessor.cc * src/HttpInitiateConnectionCommand.cc * src/HttpResponse.cc * src/HttpResponseCommand.cc * src/HttpServer.cc * src/HttpSkipResponseCommand.cc * src/InitiateConnectionCommandFactory.cc * src/IteratableChunkChecksumValidator.cc * src/LibgcryptARC4Context.h * src/LibgcryptARC4Decryptor.h * src/LibgcryptARC4Encryptor.h * src/LibgcryptDHKeyExchange.h * src/LibgnutlsTLSContext.cc * src/LibsslARC4Context.h * src/LibsslARC4Decryptor.h * src/LibsslARC4Encryptor.h * src/LibsslDHKeyExchange.h * src/LibsslTLSContext.cc * src/MSEHandshake.cc * src/MessageDigestHelper.cc * src/MetalinkHelper.cc * src/MultiDiskAdaptor.cc * src/NameMatchOptionHandler.h * src/NameResolver.cc * src/Netrc.cc * src/NsCookieParser.cc * src/OptionHandlerException.cc * src/OptionHandlerException.h * src/OptionHandlerImpl.h * src/OptionParser.cc * src/ParameterizedStringParser.cc * src/PeerAbstractCommand.cc * src/PeerConnection.cc * src/PeerMessageUtil.cc * src/PeerReceiveHandshakeCommand.cc * src/Platform.cc * src/ReceiverMSEHandshakeCommand.cc * src/RecoverableException.h * src/RequestGroup.cc * src/SimpleLogger.cc * src/SocketCore.cc * src/Sqlite3MozCookieParser.cc * src/UTPexExtensionMessage.cc * src/Util.cc * src/XML2SAXMetalinkProcessor.cc * src/Xml2XmlRpcRequestProcessor.cc * src/XmlRpcMethodImpl.cc * src/bencode.cc * src/download_helper.cc * src/messageDigest.h * test/ExceptionTest.cc * test/TestUtil.cc |
|
Tatsuhiro Tsujikawa | 15582ed8cd |
2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Refactored BtMessage subclasses. BtCancelMessage, BtRequestMessage and BtRejectMessage are derived from RangeBtMessage class. BtAllowedFastMessage, BtHaveMessage and BtSuggestPieceMessage are derived from IndexBtMessage class. BtChokeMessage, BtHaveAllMessage, BtHaveNoneMessage, BtInterestedMessage, BtNotInterestedMessage and BtUnchokeMessage are derived from ZeroBtMessage class. * src/AbstractBtMessage.cc * src/AbstractBtMessage.h * src/BtAllowedFastMessage.cc * src/BtAllowedFastMessage.h * src/BtAllowedFastMessageValidator.h: Removed * src/BtBitfieldMessage.cc * src/BtBitfieldMessage.h * src/BtCancelMessage.cc * src/BtCancelMessage.h * src/BtCancelMessageValidator.h: Removed * src/BtChokeMessage.cc * src/BtChokeMessage.h * src/BtExtendedMessage.cc * src/BtExtendedMessage.h * src/BtHandshakeMessage.cc * src/BtHandshakeMessage.h * src/BtHaveAllMessage.cc * src/BtHaveAllMessage.h * src/BtHaveMessage.cc * src/BtHaveMessage.h * src/BtHaveMessageValidator.h: Removed * src/BtHaveNoneMessage.cc * src/BtHaveNoneMessage.h * src/BtInterestedMessage.cc * src/BtInterestedMessage.h * src/BtKeepAliveMessage.cc * src/BtKeepAliveMessage.h * src/BtNotInterestedMessage.cc * src/BtNotInterestedMessage.h * src/BtPieceMessage.cc * src/BtPieceMessage.h * src/BtPortMessage.cc * src/BtPortMessage.h * src/BtRejectMessage.cc * src/BtRejectMessage.h * src/BtRejectMessageValidator.h: Removed * src/BtRequestMessage.cc * src/BtRequestMessage.h * src/BtRequestMessageValidator.h: Removed * src/BtSuggestPieceMessage.cc * src/BtSuggestPieceMessage.h * src/BtSuggestPieceMessageValidator.h: Removed * src/BtUnchokeMessage.cc * src/BtUnchokeMessage.h * src/DefaultBtMessageFactory.cc * src/IndexBtMessage.cc * src/IndexBtMessage.h * src/IndexBtMessageValidator.h * src/Makefile.am * src/PeerMessageUtil.cc * src/PeerMessageUtil.h * src/RangeBtMessage.cc * src/RangeBtMessage.h * src/RangeBtMessageValidator.h * src/SimpleBtMessage.cc * src/SimpleBtMessage.h * src/ZeroBtMessage.cc * src/ZeroBtMessage.h * test/BtRequestMessageTest.cc |
|
Tatsuhiro Tsujikawa | 6d01f8f94f |
2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Execute choking algorithm when BtInterestedMessage arrives from unchoked peer. * src/BtInterestedMessage.cc * src/BtInterestedMessage.h * src/DefaultBtMessageFactory.cc * test/BtInterestedMessageTest.cc * test/MockPeerStorage.h |
|
Tatsuhiro Tsujikawa | 7cf589e784 |
2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Made BtRegistry non-static object. Now DownloadEngine has a reference to its object. * src/AbstractBtMessage.cc * src/ActivePeerConnectionCommand.cc * src/ActivePeerConnectionCommand.h * src/BtContextAwareCommand.cc * src/BtContextAwareCommand.h * src/BtExtendedMessage.cc * src/BtExtendedMessage.h * src/BtInterestedMessage.cc * src/BtInterestedMessage.h * src/BtNotInterestedMessage.cc * src/BtNotInterestedMessage.h * src/BtRegistry.cc * src/BtRegistry.h * src/BtSeederStateChoke.cc * src/BtSetup.cc * src/DHTGetPeersCommand.cc * src/DHTGetPeersCommand.h * src/DHTPeerAnnounceEntry.cc * src/DHTPeerAnnounceEntry.h * src/DHTPeerAnnounceStorage.cc * src/DHTPeerAnnounceStorage.h * src/DHTPeerLookupTask.cc * src/DHTPeerLookupTask.h * src/DHTSetup.cc * src/DHTSetup.h * src/DHTTaskFactory.h * src/DHTTaskFactoryImpl.cc * src/DHTTaskFactoryImpl.h * src/DefaultBtAnnounce.cc * src/DefaultBtInteractive.cc * src/DefaultBtInteractive.h * src/DefaultBtMessageDispatcher.cc * src/DefaultBtMessageDispatcher.h * src/DefaultBtMessageFactory.cc * src/DefaultBtMessageFactory.h * src/DefaultBtMessageReceiver.cc * src/DefaultBtProgressInfoFile.cc * src/DefaultBtProgressInfoFile.h * src/DefaultBtRequestFactory.cc * src/DefaultBtRequestFactory.h * src/DefaultExtensionMessageFactory.cc * src/DefaultExtensionMessageFactory.h * src/DefaultPeerStorage.cc * src/DefaultPeerStorage.h * src/DownloadEngine.cc * src/DownloadEngine.h * src/InitiatorMSEHandshakeCommand.cc * src/InitiatorMSEHandshakeCommand.h * src/MSEHandshake.cc * src/MSEHandshake.h * src/Makefile.am * src/Makefile.in * src/PeerChokeCommand.cc * src/PeerChokeCommand.h * src/PeerInitiateConnectionCommand.cc * src/PeerInitiateConnectionCommand.h * src/PeerInteractionCommand.cc * src/PeerInteractionCommand.h * src/PeerObject.h * src/PeerReceiveHandshakeCommand.cc * src/PeerReceiveHandshakeCommand.h * src/ReceiverMSEHandshakeCommand.cc * src/RequestGroup.cc * src/RequestGroup.h * src/RequestGroupMan.cc * src/RequestGroupMan.h * src/SeedCheckCommand.cc * src/SeedCheckCommand.h * src/ShareRatioSeedCriteria.h * src/SimpleBtMessage.cc * src/TrackerWatcherCommand.cc * src/TrackerWatcherCommand.h * src/UTPexExtensionMessage.cc * src/UTPexExtensionMessage.h * test/BtCancelMessageTest.cc * test/BtChokeMessageTest.cc * test/BtExtendedMessageTest.cc * test/BtInterestedMessageTest.cc * test/BtNotInterestedMessageTest.cc * test/BtPieceMessageTest.cc * test/BtPortMessageTest.cc * test/BtRegistryTest.cc * test/BtRejectMessageTest.cc * test/BtRequestMessageTest.cc * test/DHTPeerAnnounceEntryTest.cc * test/DHTPeerAnnounceStorageTest.cc * test/DefaultBtMessageDispatcherTest.cc * test/DefaultBtMessageFactoryTest.cc * test/DefaultBtProgressInfoFileTest.cc * test/DefaultBtRequestFactoryTest.cc * test/DefaultExtensionMessageFactoryTest.cc * test/MSEHandshakeTest.cc * test/MockDHTTaskFactory.h * test/ShareRatioSeedCriteriaTest.cc * test/UTPexExtensionMessageTest.cc |
|
Tatsuhiro Tsujikawa | 1ef99931e1 |
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten Exception class. Throw exception object, not its pointer and catch by reference, so that remove problematic delete operator for catched exception. * src/Exception.cc * src/Exception.h * test/ExceptionTest.cc * src/*: All files throwing/catching exception. * test/*: All files throwing/catching exception. |
|
Tatsuhiro Tsujikawa | 3505201f33 |
2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten SharedHandle. Now copy constructor taking raw pointer has keyword explicit and SharedHandle's default constructor initializes its internal obj to null, old implementation initializes it using obj's default constructor. To assign null, write SharedHandle<T> x(...); x.reset(); TODO: test/SharedHandleTest.cc needs more tests. * src/SharedHandle.h |
|
Tatsuhiro Tsujikawa | 032c7c2808 |
2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
type cleanup for allmost all remaining files. |
|
Tatsuhiro Tsujikawa | fc0fa4203a |
2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Use unsigned char for data store. |
|
Tatsuhiro Tsujikawa | 5d6f1c046a |
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Bootstrap through node added by port message. Currently bootstrap is executed if the number of buckets in routing table is 1. * src/BtPortMessage.{h, cc} * src/DefaultBtMessageFactory.{h, cc} * src/PeerInteractionCommand.cc * test/BtPortMessageTest.cc * test/MockDHTTask.h |
|
Tatsuhiro Tsujikawa | 1b7c198289 |
2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Removed "using namespace std;" from all sources. Appended std:: prefix to c++ standard classes. Included string.h where mem* function are used. |
|
Tatsuhiro Tsujikawa | 0f13363229 |
2008-02-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added DHT functionality, compatible with mainline. DHT is disabled by default. To enable it, give --enable-dht to aria2c. You may need to specify entry point to DHT network using --dht-entry-point. DHT uses UDP port to listen incoming message. Use --dht-listen-port to specify port number. Make sure that your firewall configuration can pass through UDP traffic to the port. The routing table is saved in $HOME/.aria2/dht.dat. * src/DHT* * src/BNode.{h, cc} * src/PeerInteractionCommand.cc: enable DHT functionality for a particular torrent. * src/Data.cc: Rewritten ctor. * src/OptionHandlerFactory.cc: Added --enable-dht, --dht-listen-port, --dht-entry-point. * src/DefaultBtInteractive.cc: Send port message if dht is enabled. * src/RequestGroup.cc: Initialize DHT functionality. When download ends, remove BtContext from DHTPeerAnnounceStorage. * src/BtPortMessage.{h, cc}: Rewritten. * src/message.h * src/OptionHandlerImpl.cc * src/option_processing.cc: Added --enable-dht, --dht-listen-port, --dht-entry-point. * src/Dictionary.{h, cc} (remove): New function. * src/prefs.h * src/DefaultBtMessageFactory.h * src/BtHandshakeMessage.cc * src/ActivePeerConnectionCommand.cc * src/SocketCore.{h, cc}: Added datagram socket support. * src/DefaultBtMessageFactory.cc * src/BtSetup.cc: Add BtContext to DHTPeerAnnounceStorage here. Create DHT commands. * src/BtMessageFactory.h * src/PeerMessageUtil.{h, cc} |
|
Tatsuhiro Tsujikawa | 286f34cb3f |
2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added uTorrent compatible Peer Exchange. * src/BencodeVisitor.{h, cc} * test/BencodeVisitorTest.cc * src/BtConstants.h * src/BtContext.h: Added 'private' flag. * src/BtExtendedMessage.{h, cc} * test/BtExtendedMessageTest.cc * src/BtHandshakeMessage.{h, cc}: Set extended messaging bit in reserved field. * test/BtHandshakeMessageTest.cc * src/BtMessageFactory.h * src/BtRegistry.h * src/BtRuntime.h: This class holds default extension message IDs for aria2. By default, aria2 uses ID 8 for ut_pex. * src/DefaultBtContext.cc * src/DefaultBtInteractive.{h, cc}: This class holds _utPexEnabled. When it is true, aria2 enables ut_pex. This value is set by PeerInteractionCommand. * src/DefaultBtMessageFactory.{h, cc} * test/DefaultBtMessageFactoryTest.cc * src/DefaultBtMessageReceiver.cc: Moved the code of fast extension handling to DefaultBtInteractive class. * src/DefaultExtensionMessageFactory.{h, cc} * test/DefaultExtensionMessageFactoryTest.cc * src/DefaultPeerStorage.cc: Returns false if a peer is already in the container(peers and incomingPeers. The equality is determined by Peer::id). * test/DefaultPeerStorageTest.cc * src/ExtensionMessage.h * test/MockExtensionMessage.h * src/ExtensionMessageFactory.h * test/MockExtensionMessageFactory.h * src/HandshakeExtensionMessage.{h, cc} * test/HandshakeExtensionMessageTest.cc * src/MetaEntry.h * src/Peer.{h, cc} * src/PeerInteractionCommand.cc * src/PeerReceiveHandshakeCommand.cc: Evaluate the return value of addIncomingPeer. * src/PeerMessageUtil.{h, cc} * src/PeerObject.h * src/UTPexExtensionMessage.{h, cc} * test/UTPexExtensionMessageTest.cc * src/message.h * src/prefs.h Fixed the bug that returns incomplete data when it contains null character. A convenient constructor was also added. * src/Data.{h, cc} Rewritten. * src/CompactPeerListProcessor.cc Fixed typos. * src/message.h * src/MetaFileUtil.cc |
|
Tatsuhiro Tsujikawa | cd9e35bc63 |
2007-01-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* src/message.h: Added EX_INVALID_PAYLOAD_SIZE and EX_INVALID_BT_MESSAGE_ID. Following source files affected. * src/BtAllowedFastMessage.cc: * src/BtBitfieldMessage.cc * src/BtCancelMessage.cc * src/BtChokeMessage.cc * src/BtHaveAllMessage.cc * src/BtHaveMessage.cc * src/BtHaveNoneMessage.cc * src/BtInterestedMessage.cc * src/BtNotInterestedMessage.cc * src/BtPieceMessage.cc * src/BtPortMessage.cc * src/BtRejectMessage.cc * src/BtRequestMessage.cc * src/BtSuggestPieceMessage.cc * src/BtUnchokeMessage.cc * src/message.h: Added EX_INVALID_CHUNK_CHECKSUM. Following source files are affected. * src/ChunkChecksumValidator.cc * src/SegmentMan.cc |
|
Tatsuhiro Tsujikawa | a1df7a762e |
2007-01-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To decrease CPU usage in bittorrent download, calculation results in BitfieldMan were cached and realtime fetching PeerObject was removed with WeakHandle introduced. Option values are set to the objects by setter before download begins. * src/DefaultBtRequestFactory.cc: Use messageFactory member. * src/DefaultBtRequestFactory.h (dispatcher): BtMessageDispatcherHandle -> BtMessageDispatcherWeakHandle. (messageFactory): New variable. (setBtMessageDispatcher): BtMessageDispatcherHandle -> BtMessageDispatcherWeakHandle. (setBtMessageFactory): New function. * src/DefaultBtMessageDispatcher.cc: (sendMessages): Use maxUploadSpeedLimit instead of fetching the value from Option. (checkRequestSlotAndDoNecessaryThing): Use requestTimeout instead of feating the value from Option. Use messageFactory member. * src/PeerInteractionCommand.cc (PeerInteractionCommand): Added maxDownloadSpeedLimit. Add reverse dependencies to factory object. Set maxUploadSpeedLimit and requestTimeout and messageFactory to dispatcher. Set messageFactory to receiver. Set keepAliveInterval and maxDownloadSpeedLimit and messageFactory to btInteractive. Set receiver to peerObject. Set maxDownloadSpeedLimit to this. (executeInternal): Use maxDownloadSpeedLimit member. * src/BtChokeMessage.cc (doReceivedAction): Use dispatcher, requestFactory member. (onSendComplete): Use dispatcher member. * src/PeerInteractionCommand.h (maxDownloadSpeedLimit): New variable. * src/DefaultBtMessageReceiver.h (peerConnection): PeerConnectionHandle -> PeerConnectionWeakHandle (dispatcher): BtMessageDispatcherHandle -> BtMessageDispatcherWeakHandle (messageFactory): New variable. (setPeerConnection): PeerConnectionHandle -> PeerConnectionWeakHandle (getPeerConnection): PeerConnectionHandle -> PeerConnectionWeakHandle (setDispatcher): BtMessageDispatcherHandle -> BtMessageDispatcherWeakHandle (setBtMessageFactory): New function. * src/DefaultBtInteractive.cc (initiateHandshake): Use messageFactory member. (addBitfieldMessageToQueue): Use messageFactory member. (addAllowedFastMessageToQueue): Use messageFactory member. (decideChoking): Use messageFactory member. (checkHave): Use messageFactory member. (sendKeepAlive): Use keepAliveInterval, messageFactory member. (receiveMessages): Use maxDownloadSpeedLimit member. (decideInterest): Use messageFactory member. * src/BtRequestMessage.cc (doReceivedAction): Use messageFactory, dispatcher member. (onQueued): Use dispatcher member. * src/BtPieceMessage.cc (doReceivedAction): Use dispatcher member. (send): Use peerConnection member. (onWrongPiece): Use requestFactory member. (handleChokingEvent): Use messageFactory, dispatcher member. (handleCancelSendingPieceEvent): Use messageFactory, dispatcher member. * src/BtMessageDispatcher.h (BtMessageDispatcherWeakHandle): New type definition. * src/SimpleBtMessage.cc (send): Use peerConnection member. * src/BtRejectMessage.cc (doReceivedAction): Use dispatcher member. * src/DefaultBtMessageDispatcher.h (Option.h): Removed include. (messageFactory): New variable. (option): Removed. (maxUploadSpeedLimit): New variable. (requestTimeout): New variable. (DefaultBtMessageDispatcher): Removed option. Added maxUploadSpeedLimit, requestTimeout. (setOption): Removed. (getOption): Removed. (setMaxUploadSpeedLimit): New function. (setRequestTimeout): New function. (setBtMessageFactory): New function. * src/DefaultBtInteractive.h (btMessageReceiver): BtMessageReceiverHandle -> BtMessageReceiverWeakHandle (dispatcher): BtMessageDispatcherHandle -> BtMessageReceiverWeakHandle (btRequestFactory): BtRequestFactoryHandle -> BtRequestFactoryWeakHandle (peerConnection): PeerConnectionHandle -> PeerConnectionWeakHandle (messageFactory): New variable. (option): Removed. (keepAliveInterval): New variable. (maxDownloadSpeedLimit): New variable. (DefaultBtInteractive): Added keepAliveInterval, maxDownloadSpeedLimit. (setBtMessageReceiver): BtMessageReceiverHandle -> BtMessageReceiverWeakHandle (setDispatcher): BtMessageDispatcherHandle -> BtMessageReceiverWeakHandle (setBtRequestFactory): BtRequestFactoryHandle -> BtRequestFactoryWeakHandle (setPeerConnection): PeerConnectionHandle -> PeerConnectionWeakHandle (setOption): Removed. (setKeepAliveInterval): New function. (setMaxDownloadSpeedLimit): New function. (setBtMessageFactory): New function. * src/BitfieldMan.h (cachedNumMissingBlock): New variable. (cachedNumFilteredBlock): New variable. (cachedCompletedLength): New variable. (cachedFilteredComletedLength): New variable. (cachedFilteredTotalLength): New variable. (countMissingBlockNow): New function. (countFilteredBlockNow): New function. (getFilteredTotalLengthNow): New function. (getCompletedLengthNow): New function. (getFilteredCompletedLengthNow): New function. (updateCache): New function. * src/AbstractBtMessage.h (BtMessageDispatcher.h): New include. (PeerConnection.h): New include. (BtRequestFactory.h): New include (BtMessageFactory.h): New include. (dispatcher): New variable. (messageFactory): New variable. (peerConnection: New variable. (setBtMessageDispatcher): New function. (setPeerConnection): New function. (setBtMessageFactory): New function. (setBtRequestFactory): New function. * src/DefaultBtMessageFactory.cc (setCommonProperty): Set dispatcher, requestFactory, this, peerConnection to msg. * src/BtRegistry.h (BT_MESSAGE_RECEIVER): New macro. * src/PeerConnection.h (PeerConnectionWeakHandle): New type definition. * src/BtMessageFactory.h (BtMessageFactoryWeakHandle): New type definition. * src/BitfieldMan.cc (BitfieldMan): Added cachedNumMissingBlock, cachedNumFilteredBlock, cachedCompletedLength, cachedFilteredComletedLength, cachedFilteredTotalLength. Call updateCache(). (countMissingBlock): Return cachedNumMissingBlock. (countMissingBlockNow): New function. (countBlock): Return cachedNumFilteredBlock if filterEnabled is true. (countFilteredBlockNow): New function. (setBit): Call updateCache(). (unsetBit): Call updateCache(). (setBitfield): Call updateCache(). (clearAllBit): Call updateCache(). (setAllBit): Use setBitInternal instead of setBit. Call updateCache(). (addFilter): Call updateCache(). (enableFilter): Call updateCache(). (disableFilter): Call updateCache(). (clearFilter): Call updateCache(). (getFilteredTotalLength): Return cachedFilteredTotalLength. (getFilteredTotalLengthNow): New function. (getCompletedLength): Return cachedCompletedLength. (getCompletedLengthNow): New function. (getFilteredCompletedLength): Return cachedFilteredComletedLength. (getFilteredCompletedLengthNow): New function. (updateCache): New function. * src/BtMessageReceiver.h (BtMessageReceiverWeakHandle): New type definition. * src/DefaultBtMessageReceiver.cc (receiveHandshake): Use messageFactory member. (sendHandshake): Use messageFactory member. (receiveMessage): Use messageFactory member. * src/DefaultBtMessageFactory.h (dispatcher): New variable. (requestFactory): New variable. (peerConnection): New variablle. (setBtMessageDispatcher): New function. (setBtRequestFactory): New function. (setPeerConnection): New function. * src/SharedHandle.h (RefCount): New class. (WeakHandle): New class. * src/PeerObject.h (BtMessageReceiver.h): New include. (PeerObject): Added btMessageReceiver. (btMessageReceiver): New variable. * src/Util.cc (countBit): Simplified. * src/BtCancelMessage.cc (doReceivedAction): Use dispatcher member. * src/BtRequestFactory.h (BtRequestFactoryWeakHandle): New type definition. * src/PeerStorage.h (downloadSpeed): int -> uint32_t (uploadSpeed): int -> uint32_t (sessionDownloadLength): long long int -> uint64_t (sessionUploadLength): long long int -> uint64_t |
|
Tatsuhiro Tsujikawa | a413cb50f7 | ||
Tatsuhiro Tsujikawa | 9c3e8fbd9c |
2006-12-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten a portion of bittorrent implementation: * src/BtMessageValidator.h: New class. * src/BtBitfieldMessageValidator.h: New class. * src/BtHandshakeMessageValidator.h: New class. * src/BtRequestMessageValidator.h: New class. * src/BtSuggestPieceMessageValidator.h: New class. * src/BtAllowedFastMessageValidator.h: New class. * src/BtRejectMessageValidator.h: New class. * src/BtCancelMessageValidator.h: New class. * src/BtPieceMessageValidator.h: New class. * src/BtHaveMessageValidator.h: New class. * src/BtEventListener.h: New class. * src/AbstractBtEventListener.h: New class. * src/BtEvent.h: New class. * src/BtChokingEvent.h: New class. * src/BtChokedEvent.h: New class. * src/BtCancelSendingPieceEvent.h: New class. * src/BtAbortOutstandingRequestEvent.h: New class. * src/Randomizer.h: New class. * src/SimpleRandomizer.h: New class. * src/BtMessage.h: New class. * src/AbstractBtMessage.h: New class. * src/SimpleBtMessage.h: New class. * src/BtHaveMessage.h: New class. * src/BtInterestedMessage.h: New class. * src/BtAllowedFastMessage.h: New class. * src/BtUnchokeMessage.h: New class. * src/BtCancelMessage.h: New class. * src/BtNotInterestedMessage.h: New class. * src/BtChokeMessage.h: New class. * src/BtHaveNoneMessage.h: New class. * src/BtHandshakeMessage.h: New class. * src/BtSuggestPieceMessage.h: New class. * src/BtHaveMessage.h: New class. * src/BtPieceMessage.h: New class. * src/BtHaveAllMessage.h: New class. * src/BtKeepAliveMessage.h: New class. * src/BtPortMessage.h: New class. * src/BtRejectMessage.h: New class. * src/BtBitfieldMessage.h: New class. * src/BtRequestMessage.h: New class. * src/DefaultBtRequestFactory.h: New class. * src/DefaultBtMessageReceiver.h: New class. * src/BtInteractive.h: New class. * src/BtMessageDispatcher.h: New class. * src/DefaultBtMessageDispatcher.h: New class. * src/DefaultBtInteractive.h: New class. * src/BitfieldManFactory.h: New class. * src/HandleRegistry.h: New class. * src/BtMessageFactory.h: New class. * src/BtMessageReceiver.h: New class. * src/DefaultBtMessageFactory.h: New class. * src/PeerObject.h: New class. * src/BtRequestFactory.h: New class. |