summaryrefslogtreecommitdiff
path: root/src/Peer.h
Commit message (Collapse)AuthorAgeFilesLines
* add retry different protocolsHanjie Wu2023-12-161-6/+19
|
* add uTP support for outbound connectionsHanjie Wu2023-12-161-0/+6
|
* Updating upload size and speed must be done separatelyTatsuhiro Tsujikawa2016-01-051-1/+3
|
* make clang-format using clang-format-3.6Tatsuhiro Tsujikawa2015-12-271-67/+20
|
* Peer: Use std::unique_ptr for res_Tatsuhiro Tsujikawa2013-10-261-2/+2
|
* Convert most 0/NULL pointers to nullptrNils Maier2013-08-201-1/+1
| | | | Courtesy of llvm cpp11-migrate 3.3
* Require -std=c++11 and use std::shared_ptr instead of SharedHandleTatsuhiro Tsujikawa2013-06-221-1/+0
|
* Rename /BadCondition/ in Peer to /Drop/Tatsuhiro Tsujikawa2013-01-261-4/+4
|
* Remove PeerStorage::getActivePeers() and add getUsedPeers() insteadTatsuhiro Tsujikawa2013-01-261-1/+7
| | | | | PeerStorage::getUsedPeers() returns non-active peers, so caller must call Peer::isActive() to get active peers.
* Refactor peer list management in DefaultPeerStorageTatsuhiro Tsujikawa2013-01-261-21/+8
| | | | | | | | Peer list is now divided into 2: unusedPeers_ and usedPeers_. Duplicate check is done using std::set by comparing pair of IP address and port. For this, only IP address and port given to the Peer constructor are used. In other words, TCP port received from extended message is not used for this purpose.
* Removed trailing spacesTatsuhiro Tsujikawa2012-10-011-4/+4
|
* Rewritten ExtensionMessageRegistryTatsuhiro Tsujikawa2012-09-261-3/+3
|
* Use int64_t instead of off_tTatsuhiro Tsujikawa2012-06-251-5/+5
| | | | | Some classes such as DiskAdaptor, DiskWriter, FileAllocationIterator and ChecksumValidator are left unchanged.
* Use std::set instead of std::deque if the elements are sorted andTatsuhiro Tsujikawa2012-03-231-2/+2
| | | | insertions and deletions are frequent.
* Use int instead of unsigned int where unsigned int is not needed.Tatsuhiro Tsujikawa2011-12-091-2/+2
|
* Use int32_t for piece length instead of size_tTatsuhiro Tsujikawa2011-12-091-4/+4
|
* Replaced uint64_t with off_t or int64_t.Tatsuhiro Tsujikawa2011-12-091-5/+5
| | | | | Since off_t is int64_t with LFS, we cannot take advantage of extra capacity of uint64_t.
* 2010-11-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-11-121-1/+1
| | | | | | | | Removed SharedHandle::isNull(). Instead we added operator* and operator unspecified_bool_type. Removed use of WeakHandle and replaced with raw pointer.
* 2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-10-311-3/+3
| | | | | | Made #include guard consistent for c++ header files.
* 2010-08-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-08-041-0/+13
| | | | | | | | | | | | | | | | | | | | Add only gracefully disconnected peer to ut_pex dropped list. Add incoming dropped list to PeerStorage. * src/DefaultBtInteractive.cc * src/DefaultPeerStorage.cc * src/InitiatorMSEHandshakeCommand.cc * src/Peer.cc * src/Peer.h * src/PeerConnection.cc * src/PeerConnection.h * src/PeerInteractionCommand.cc * src/PeerReceiveHandshakeCommand.cc * src/ReceiverMSEHandshakeCommand.cc * src/UTPexExtensionMessage.cc * test/DefaultPeerStorageTest.cc * test/UTPexExtensionMessageTest.cc
* 2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-06-231-0/+2
| | | | | | | | | | | | | | Request ut_metadata in end-game mode(in other words, more aggresively) * src/HandshakeExtensionMessage.cc * src/Peer.cc * src/Peer.h * src/PeerSessionResource.cc * src/PeerSessionResource.h * src/UTMetadataRequestFactory.cc * test/UTMetadataRequestFactoryTest.cc
* 2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-06-211-30/+30
| | | | | | | Changed naming standards for class member variable: now it looks like var_ instead of _var.
* 2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-06-131-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Renamed member variables * src/ActivePeerConnectionCommand.cc * src/BtLeecherStateChoke.cc * src/BtPieceMessage.cc * src/BtPortMessage.cc * src/BtSeederStateChoke.cc * src/DHTGetPeersReplyMessage.cc * src/DefaultBtInteractive.cc * src/DefaultPeerStorage.cc * src/HandshakeExtensionMessage.cc * src/LpdReceiveMessageCommand.cc * src/Peer.cc * src/Peer.h * src/PeerAbstractCommand.cc * src/PeerInitiateConnectionCommand.cc * src/PeerListenCommand.cc * src/SimpleBtMessage.cc * src/UTPexExtensionMessage.cc * src/XmlRpcMethodImpl.cc * test/DHTAnnouncePeerMessageTest.cc * test/DHTGetPeersMessageTest.cc * test/DHTGetPeersReplyMessageTest.cc * test/DHTMessageFactoryImplTest.cc * test/DHTPeerAnnounceEntryTest.cc * test/DHTPeerAnnounceStorageTest.cc * test/DefaultPeerStorageTest.cc * test/HandshakeExtensionMessageTest.cc * test/LpdMessageReceiverTest.cc * test/PeerListProcessorTest.cc * test/PeerTest.cc * test/UTPexExtensionMessageTest.cc
* 2010-04-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-04-111-8/+8
| | | | | | | | Use clock_gettime(CLOCK_MONOTONIC, ...) if it is available and usable to prevent from aria2 from being affected by system time change.
* 2010-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-03-201-3/+4
| | | | | | Use cuid_t type for cuid.
* 2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-03-061-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added Time global::wallclock to cache "current time" to reduce the call gettimeofday(). Global variables are now in namespace global. * src/AbstractCommand.cc * src/ActivePeerConnectionCommand.cc * src/AdaptiveURISelector.cc * src/BtLeecherStateChoke.cc * src/BtLeecherStateChoke.h * src/BtSeederStateChoke.cc * src/BtSeederStateChoke.h * src/BtStopDownloadCommand.cc * src/ConsoleStatCalc.cc * src/DHTBucket.cc * src/DHTGetPeersCommand.cc * src/DHTMessageTrackerEntry.cc * src/DHTNode.cc * src/DHTPeerAnnounceEntry.cc * src/DHTPeerAnnounceStorage.cc * src/DHTSetup.cc * src/DefaultBtAnnounce.cc * src/DefaultBtInteractive.cc * src/DefaultBtMessageDispatcher.cc * src/DefaultPeerStorage.cc * src/DefaultPieceStorage.cc * src/DownloadCommand.cc * src/DownloadEngine.cc * src/FileEntry.cc * src/HttpServerBodyCommand.cc * src/HttpServerCommand.cc * src/HttpServerResponseCommand.cc * src/LpdMessageDispatcher.cc * src/MultiUrlRequestInfo.cc * src/Peer.cc * src/Peer.h * src/PeerAbstractCommand.cc * src/PeerStat.h * src/RequestSlot.cc * src/RequestSlot.h * src/SegmentMan.cc * src/ServerStatMan.cc * src/SleepCommand.cc * src/SpeedCalc.cc * src/SpeedCalc.h * src/TimeA2.cc * src/TimeA2.h * src/TimeBasedCommand.cc * src/TimeSeedCriteria.h * src/UTMetadataRequestTracker.h * src/UTPexExtensionMessage.cc * src/wallclock.h
* 2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-02-281-5/+2
| | | | | | | Use vector instead of deque for containers which is used for mostly read-only purpose.
* 2010-02-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-02-201-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added Local Peer Discovery. It is disabled by default. Use --bt-enable-lpd to enable the function. * src/BtConstants.h * src/BtSetup.cc * src/LpdDispatchMessageCommand.cc * src/LpdDispatchMessageCommand.h * src/LpdMessage.h * src/LpdMessageDispatcher.cc * src/LpdMessageDispatcher.h * src/LpdMessageReceiver.cc * src/LpdMessageReceiver.h * src/LpdReceiveMessageCommand.cc * src/LpdReceiveMessageCommand.h * src/Makefile.am * src/OptionHandlerFactory.cc * src/Peer.cc * src/Peer.h * src/PeerInteractionCommand.cc * src/SocketCore.cc * src/SocketCore.h * src/prefs.cc * src/prefs.h * src/usage_text.h * src/util.cc * src/util.h * test/LpdMessageDispatcherTest.cc * test/LpdMessageReceiverTest.cc * test/Makefile.am
* 2010-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-02-081-4/+0
| | | | | | | | | | | | | Removed unused PeerSessionResource::_latency. * src/BtConstants.h * src/BtPieceMessage.cc * src/Peer.cc * src/Peer.h * src/PeerSessionResource.cc * src/PeerSessionResource.h * test/PeerSessionResourceTest.cc
* 2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2010-01-051-1/+1
| | | | | | | | | Untabify. Fixed one line in copyright which is longer than 80 columns. * src * test
* 2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2009-06-071-0/+8
| | | | | | | | | | | Added countSeeder() function which counts seeder in the given iterator range. Use it in ConsoleStatCalc and XmlRpcMethodImpl. * src/ConsoleStatCalc.cc * src/Peer.h * src/XmlRpcMethodImpl.cc * test/PeerTest.cc
* 2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2009-05-291-13/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implemented getter methods in header files to give them more chance of optimization. Return const reference for SharadHandle if possible. * src/AbstractAuthResolver.cc * src/AbstractAuthResolver.h * src/AbstractBtMessage.cc * src/AbstractBtMessage.h * src/AbstractSingleDiskAdaptor.cc * src/AbstractSingleDiskAdaptor.h * src/AsyncNameResolver.cc * src/AsyncNameResolver.h * src/BNode.cc * src/BNode.h * src/BitfieldMan.cc * src/BitfieldMan.h * src/BtAbortOutstandingRequestEvent.h * src/BtExtendedMessage.cc * src/BtExtendedMessage.h * src/BtSeederStateChoke.cc * src/BtSeederStateChoke.h * src/Cookie.cc * src/Cookie.h * src/DHTBucket.cc * src/DHTBucket.h * src/DHTConnectionImpl.cc * src/DHTConnectionImpl.h * src/DHTFindNodeReplyMessage.cc * src/DHTFindNodeReplyMessage.h * src/DHTGetPeersReplyMessage.cc * src/DHTGetPeersReplyMessage.h * src/DHTInteractionCommand.cc * src/DHTMessage.cc * src/DHTMessage.h * src/DHTMessageDispatcherImpl.cc * src/DHTMessageEntry.cc * src/DHTMessageReceiver.cc * src/DHTMessageReceiver.h * src/DHTMessageTrackerEntry.cc * src/DHTMessageTrackerEntry.h * src/DHTPeerAnnounceEntry.cc * src/DHTPeerAnnounceEntry.h * src/DHTPeerLookupTask.cc * src/DHTPeerLookupTask.h * src/DHTRoutingTableDeserializer.cc * src/DHTRoutingTableDeserializer.h * src/DefaultBtAnnounce.cc * src/DefaultBtAnnounce.h * src/DefaultBtMessageDispatcher.cc * src/DefaultBtMessageDispatcher.h * src/DefaultBtRequestFactory.cc * src/DefaultBtRequestFactory.h * src/DiskAdaptor.cc * src/DiskAdaptor.h * src/DownloadContext.cc * src/DownloadContext.h * src/DownloadEngine.cc * src/DownloadEngine.h * src/EpollEventPoll.cc * src/EpollEventPoll.h * src/FtpConnection.cc * src/FtpConnection.h * src/HttpConnection.cc * src/HttpConnection.h * src/HttpHeader.cc * src/HttpHeader.h * src/HttpRequest.cc * src/HttpRequest.h * src/HttpResponse.cc * src/HttpResponse.h * src/LibsslTLSContext.cc * src/LibsslTLSContext.h * src/MSEHandshake.cc * src/MSEHandshake.h * src/MetalinkEntry.cc * src/MetalinkEntry.h * src/MetalinkParserController.cc * src/MetalinkParserController.h * src/MetalinkParserStateMachine.cc * src/MetalinkParserStateMachine.h * src/MultiDiskAdaptor.cc * src/MultiDiskAdaptor.h * src/NetrcAuthResolver.cc * src/NetrcAuthResolver.h * src/Peer.cc * src/Peer.h * src/PeerSessionResource.cc * src/PeerSessionResource.h * src/Piece.cc * src/Piece.h * src/PieceStatMan.cc * src/PieceStatMan.h * src/Request.cc * src/Request.h * src/RequestGroup.cc * src/RequestGroup.h * src/RequestGroupMan.cc * src/RequestGroupMan.h * src/RequestSlot.cc * src/RequestSlot.h * src/SegmentMan.cc * src/SegmentMan.h * src/SelectEventPoll.cc * src/SelectEventPoll.h * src/ServerStat.cc * src/ServerStat.h * src/Signature.cc * src/Signature.h * src/URIResult.cc * src/URIResult.h * src/UTPexExtensionMessage.cc * src/UTPexExtensionMessage.h
* 2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>Tatsuhiro Tsujikawa2009-03-081-3/+3
| | | | | | | Updated doc * src/Peer.h
* 2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-11-031-0/+5
| | | | | | | | | | | | | | Implemented commented code in BtSeederStateChoke * src/BtSeederStateChoke.cc * src/Peer.cc * src/Peer.h * src/PeerInteractionCommand.cc * src/PeerSessionResource.cc * src/PeerSessionResource.h * test/MockBtMessageDispatcher.h * test/PeerSessionResourceTest.cc
* 2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-09-021-0/+2
| | | | | | | | | | | | Moved threthold values to UTPexExtensionMessage. * src/DefaultBtInteractive.cc * src/Peer.cc * src/Peer.h * src/UTPexExtensionMessage.cc * src/UTPexExtensionMessage.h * test/UTPexExtensionMessageTest.cc
* 2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-09-021-1/+8
| | | | | | | | | | | | | | Added _incoming member to Peer class and made it true if the peer initiated connection. Don't add those peer to UTPex message. If extended handshake is received, assign _incoming to false. * src/DefaultBtInteractive.cc * src/HandshakeExtensionMessage.cc * src/Peer.cc * src/Peer.h * src/PeerListenCommand.cc
* 2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-05-171-0/+2
| | | | | | | | | | | | | Call subtractPieceStats from ~PeerInteractionCommand only when the peer has at least one completed piece. * src/Peer.cc * src/Peer.h * src/PeerInteractionCommand.cc * src/PeerSessionResource.cc * src/PeerSessionResource.h
* 2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-04-131-0/+4
| | | | | | | | | | | | | | | | | | | | Rewritten choking algorithm. * src/PeerChokeCommand.{cc, h} * src/BtInterestedMessage.cc * src/PeerSessionResource.{cc, h} * src/DefaultPeerStorage.{cc, h} * src/BtNotInterestedMessage.cc * src/DefaultBtMessageDispatcher.{cc, h} * src/BtMessageDispatcher.h * src/Peer.{cc, h} * src/BtLeecherStateChoke.{cc, h} * src/BtSetup.cc * src/BtSeederStateChoke.{cc, h} * src/PeerStorage.h * test/MockPeerStorage.h * test/MockBtMessageDispatcher.h
* 2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-03-081-20/+20
| | | | | | | | | | | | | Type clarification * src/PeerSessionResource.{h, cc} * src/DefaultPieceStorage.{h, cc} * src/Peer.{h, cc} * test/PeerSessionResourceTest.cc Use div function * src/BtPieceMessage.cc (erasePieceOnDisk)
* 2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-03-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Updated Makfefile.am to make 'make dist' work. Now packaged filename is aria2c-VERSION.tar.bz2. Added README, README.html, and aria2c.1.html to dist_doc_DATA. Added LICENSE.OpenSSL to dist_noinst_DATA. Large file support is now configured by configure script. * configure.ac Removed unsused source files * src/ * test/ Removed PeerDecl.h and BtContextDecl.h. typedefs are removed to Peer.h and BtContext.h respectively. * src/Peer.h * src/BtContext.h Updated translations. Added Polish, Thai, Indonesian, Norwegian Nynorsk, Hungarian translations. Great thanks to all translators!;) * po/*.{po, gmo}
* 2008-02-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-02-091-82/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract the Peer class's member variables, which are only needed after PeerInteractionCommand, into PeerSessionResource class. This class is instantiated in PeerInteractionCommand class's ctor and released in its dtor. This will make Peer class lightweight and uses less memory for peers which are not connected and wait in the queue. * src/PeerChokeCommand.cc * src/PeerSessionResource.{h, cc} * src/PeerInteractionCommand.cc * src/PeerAbstractCommand.cc: Note: 0 is given to onAbort() function. * src/DefaultBtInteractive.cc * src/BtPieceMessage.cc * src/BtInterestedMessage.cc * src/BtUnchokeMessage.cc * src/DefaultPeerStorage.{h, cc} * src/PeerInitiateConnectionCommand.cc * src/ActivePeerConnectionCommand.cc * src/BtNotInterestedMessage.cc * src/DefaultBtMessageDispatcher.cc * src/BtChokeMessage.cc * src/BtRequestMessage.cc * src/Peer.{h, cc} * src/BtRegistry.h * src/TrackerWatcherCommand.cc * src/PeerReceiveHandshakeCommand.cc * test/BtExtendedMessageTest.cc * test/BtAllowedFastMessageTest.cc * test/BtCancelMessageTest.cc * test/DefaultPieceStorageTest.cc * test/BtBitfieldMessageTest.cc * test/BtHaveMessageTest.cc * test/BtNotInterestedMessageTest.cc * test/BtRequestMessageTest.cc * test/PeerSessionResourceTest.cc * test/DefaultBtMessageDispatcherTest.cc * test/PeerTest.cc * test/BtInterestedMessageTest.cc * test/BtRejectMessageTest.cc * test/BtChokeMessageTest.cc * test/DefaultPeerStorageTest.cc * test/BtHaveNoneMessageTest.cc * test/BtHaveAllMessageTest.cc * test/DefaultExtensionMessageFactoryTest.cc * test/BtUnchokeMessageTest.cc * test/DefaultBtMessageFactoryTest.cc * test/HandshakeExtensionMessageTest.cc * test/UTPexExtensionMessageTest.cc * test/DefaultBtRequestFactoryTest.cc * test/BtPieceMessageTest.cc Removed typedef PeerStats. * src/PeerStat.h * src/SegmentMan.cc
* 2008-02-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-02-081-90/+44
| | | | | | | | | Removed "using namespace std;" from all sources. Appended std:: prefix to c++ standard classes. Included string.h where mem* function are used.
* 2008-02-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-02-011-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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}
* 2008-01-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2008-01-101-1/+1
| | | | | | | | | | | | | Fixed the bug that DefaultPeerStorage::returnPeer() may delete wrong peer if there are peers that have same ipaddr and port. I've experiened segmentation fault and "pure virtual function was called" error. * src/Peer.h * test/PeerTest.cc * src/DefaultPeerStorage.cc * test/DefaultPeerStorageTest.cc
* 2007-12-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-12-261-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | Allocate bitfield in Peer when it is really used. More specifically, bitfield in Peer is allocated after the connection is established and deallocated when the connection is dropped. Since 2 parameters(piece length and total length) was removed from the constructor of Peer class, many test classes were modified accordingly. See svn log for more detailed information. * src/PeerInteractionCommand.cc * src/CompactPeerListProcessor.cc * src/Peer.cc * src/DefaultPeerListProcessor.cc * src/PeerListenCommand.cc * src/PeerReceiveHandshakeCommand.cc Fixed memory leak * src/Piece.cc
* 2007-12-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-12-251-5/+4
| | | | | | | | | | | | | | | Removed incomingPeer. Set 0 to peer's port if it is not a listening port. * src/DefaultPeerStorage.{h, cc} * test/DefaultPeerStorageTest.cc * src/HandshakeExtensionMessage.cc * test/HandshakeExtensionMessageTest.cc * src/Peer.{h, cc}: Added ipaddr and port to identity comparison. * src/PeerStorage.h * test/MockPeerStorage.h * src/PeerListenCommand.cc
* 2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-12-221-2/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* 2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-12-051-7/+10
| | | | | | | | | Fixed the bug: aria2 doesn't utilize fast set index offered by peer. * src/Peer.{h, cc} * src/DefaultPieceStorage.cc * test/DefaultPieceStorageTest.cc
* 2007-11-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-11-141-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Added ifdef and some modifications to compile without BitTorrent, Metalink, MessageDigest support. * src/PieceHashCheckIntegrityEntry.cc * src/MetalinkEntry.h * src/version_usage.cc * src/main.cc * src/DownloadEngine.{h, cc} * src/Metalink2RequestGroup.cc * src/Peer.cc * src/RequestGroup.cc * src/MetalinkHelper.cc * test/DefaultPieceStorageTest.cc * test/MetalinkPostDownloadHandlerTest.cc * test/Metalink2RequestGroupTest.cc Hide TOTAL SPD when all downloads complete. * src/ConsoleStatCalc.cc Log target system information. * src/main.cc
* 2007-10-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>Tatsuhiro Tsujikawa2007-10-111-0/+2
| | | | | | | | | | Implemented BitTorrent/http/ftp integrated download. I've rewritten lots of files and now some headers have forward class declarations to reduce compile time. The implementation is extremely alpha stage, I recommend to use this for testing purpose only.