| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
If we have peer which is already used, make addAndCheckoutPeer() fail.
If peer is in unused list, first remove the old entry, and then add
new one. This would make assertion in ~DefaultPeerStorage hold.
|
| |
|
|
| |
This reverts commit 65b7205dfdc182a0d6a694547b2d5710dfd7466d.
|
| |
|
|
|
| |
As of 4df7b540a2263b87577a8805b3ca08e5e3e4da65, the assertion no
longer holds.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Also make the log level warning when the returned peer is not found.
|
| | |
|
| | |
|
| |
|
|
|
| |
The constructor of std::shared_ptr which takes nullptr is not explicit
so we can return nullptr directly.
|
| | |
|
| |
|
|
| |
We definitely need some tests to determine this value.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
PeerStorage::getUsedPeers() returns non-active peers, so caller must
call Peer::isActive() to get active peers.
|
| |
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old implementation calculates download/upload statistics for a
RequestGroup by summing up all PeerStat objects. For global
statistics, those are summed together. This clearly incurs runtime
penalty and we introduced some kind of caching which updates
statistics every 250ms but it did not work right.
This change removes all these aggregation code, and instead makes
RequestGroup and RequestGroupMan objects hold NetStat object and
download/upload bytes are directly calculated by thier own NetStat.
This is far more simplar than the old way and less runtime penalty and
brings more accuracy.
|
| |
|
|
|
| |
Since off_t is int64_t with LFS, we cannot take advantage of extra
capacity of uint64_t.
|
| |
|
|
|
|
|
|
| |
In aria2, one piece is downloaded from several peers, so when hash
check failed for that piece, it cannot determine which peer(s) sent
bad data. So, we ignore peer who sent last block of data in random
minutes. We use randomized timeout because all peers get waken up at
the almost same time.
|
| |
|
|
|
| |
This is necessary to avoid global variable initialization order
problem.
|
| | |
|
| | |
|
| |
|
|
| |
Always use MAX_PEER_LIST_SIZE by default.
|
| | |
|
| |
|
|
|
|
|
| |
Rewritten Logger interface. Logger now writes source file name and
line number in log file.
|
| |
|
|
|
|
|
|
| |
Removed SharedHandle::isNull(). Instead we added operator* and
operator unspecified_bool_type. Removed use of WeakHandle and
replaced with raw pointer.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To match the behavior of friend operator functions in
SharedHandle.h to std::tr1::shared_ptr, we intentionally broke
these functions and modified code so that our code does not depend
on old behavior.
* src/AbstractCommand.cc
* src/DHTAbstractNodeLookupTask.h
* src/DHTBucket.cc
* src/DHTMessageReceiver.cc
* src/DHTNodeLookupEntry.cc
* src/DHTRoutingTable.cc
* src/DefaultBtRequestFactory.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/DownloadContext.cc
* src/EpollEventPoll.cc
* src/Event.h
* src/HttpConnection.cc
* src/KqueueEventPoll.cc
* src/MultiDiskAdaptor.cc
* src/PeerAbstractCommand.cc
* src/PieceStatMan.cc
* src/PollEventPoll.cc
* src/PortEventPoll.cc
* src/SegmentMan.cc
* src/SelectEventPoll.cc
* src/SelectEventPoll.h
* src/ServerStatMan.cc
* src/SharedHandle.h
* src/UnknownLengthPieceStorage.cc
* src/a2functional.h
* src/option_processing.cc
* src/version_usage.cc
* test/BNodeTest.cc
* test/DHTAnnouncePeerMessageTest.cc
* test/DHTBucketTest.cc
* test/DHTFindNodeMessageTest.cc
* test/DHTGetPeersMessageTest.cc
* test/DHTIDCloserTest.cc
* test/DHTMessageFactoryImplTest.cc
* test/DHTPingMessageTest.cc
* test/DefaultBtRequestFactoryTest.cc
* test/DefaultPeerStorageTest.cc
* test/SequentialPickerTest.cc
* test/SingletonHolderTest.cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use unnamed namespace instead of static keyword.
* src/AbstractCommand.cc
* src/AdaptiveURISelector.cc
* src/Base64.cc
* src/BitfieldMan.cc
* src/BtDependency.cc
* src/ConsoleStatCalc.cc
* src/ContentTypeRequestGroupCriteria.cc
* src/CookieStorage.cc
* src/DHTMessageFactoryImpl.cc
* src/DHTRoutingTableDeserializer.cc
* src/DefaultBtAnnounce.cc
* src/DefaultBtProgressInfoFile.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/DownloadCommand.cc
* src/DownloadEngine.cc
* src/EpollEventPoll.cc
* src/ExpatMetalinkProcessor.cc
* src/ExpatXmlRpcRequestProcessor.cc
* src/FileEntry.cc
* src/HttpRequest.cc
* src/HttpRequestCommand.cc
* src/HttpResponseCommand.cc
* src/KqueueEventPoll.cc
* src/LongestSequencePieceSelector.cc
* src/MetalinkParserStateV3Impl.cc
* src/MetalinkParserStateV4Impl.cc
* src/MultiDiskAdaptor.cc
* src/MultiUrlRequestInfo.cc
* src/OptionParser.cc
* src/PeerSessionResource.cc
* src/PortEventPoll.cc
* src/Request.cc
* src/RequestGroupMan.cc
* src/SelectEventPoll.cc
* src/SessionSerializer.cc
* src/SimpleLogFormatter.cc
* src/Sqlite3CookieParser.cc
* src/TrackerWatcherCommand.cc
* src/XML2SAXMetalinkProcessor.cc
* src/Xml2XmlRpcRequestProcessor.cc
* src/XmlRpcMethod.cc
* src/XmlRpcMethodImpl.cc
* src/XmlRpcResponse.cc
* src/base32.cc
* src/bencode2.cc
* src/bittorrent_helper.cc
* src/download_helper.cc
* src/main.cc
* src/messageDigest.cc
* src/option_processing.cc
* src/util.cc
* test/AnnounceListTest.cc
* test/BtRegistryTest.cc
* test/DHTBucketTest.cc
* test/DHTRoutingTableTest.cc
* test/DefaultBtAnnounceTest.cc
* test/FileEntryTest.cc
* test/FtpConnectionTest.cc
* test/MSEHandshakeTest.cc
* test/MagnetTest.cc
* test/XmlRpcMethodTest.cc
* test/array_funTest.cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added '// namespace' after end of unnamed namespace.
* src/AbstractCommand.cc
* src/AnnounceList.cc
* src/BtSeederStateChoke.cc
* src/ConsoleStatCalc.cc
* src/CookieStorage.cc
* src/DHTBucket.cc
* src/DHTPeerAnnounceEntry.cc
* src/DHTPeerAnnounceStorage.cc
* src/DHTTaskQueueImpl.cc
* src/DefaultBtMessageDispatcher.cc
* src/DefaultBtRequestFactory.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/ExpatMetalinkProcessor.cc
* src/ExpatXmlRpcRequestProcessor.cc
* src/FeedbackURISelector.cc
* src/FileEntry.cc
* src/GZipEncoder.cc
* src/Metalink2RequestGroup.cc
* src/MetalinkEntry.cc
* src/MetalinkParserStateV3Impl.cc
* src/MetalinkParserStateV4Impl.cc
* src/Metalinker.cc
* src/MultiDiskAdaptor.cc
* src/Netrc.cc
* src/NsCookieParser.cc
* src/OptionParser.cc
* src/PieceStatMan.cc
* src/RarestPieceSelector.cc
* src/RequestGroupMan.cc
* src/SegmentMan.cc
* src/ServerStatMan.cc
* src/SocketCore.cc
* src/XML2SAXMetalinkProcessor.cc
* src/Xml2XmlRpcRequestProcessor.cc
* src/XmlRpcMethodImpl.cc
* src/cookie_helper.cc
* src/download_helper.cc
* src/messageDigest.cc
* src/util.cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enclosed classes and structs declared in *.cc files unnamed
namespace. Added static keyword for function template in *.cc
files(TODO we should use unnamed namespace instead of static).
* src/AbstractCommand.cc
* src/AnnounceList.cc
* src/BtLeecherStateChoke.cc
* src/BtLeecherStateChoke.h
* src/BtSeederStateChoke.cc
* src/BtSeederStateChoke.h
* src/ConsoleStatCalc.cc
* src/ContentTypeRequestGroupCriteria.cc
* src/CookieStorage.cc
* src/DHTBucket.cc
* src/DHTPeerAnnounceEntry.cc
* src/DHTPeerAnnounceStorage.cc
* src/DefaultBtMessageDispatcher.cc
* src/DefaultBtRequestFactory.cc
* src/DefaultPeerStorage.cc
* src/DefaultPieceStorage.cc
* src/ExpatMetalinkProcessor.cc
* src/ExpatXmlRpcRequestProcessor.cc
* src/FeedbackURISelector.cc
* src/FileEntry.cc
* src/Metalink2RequestGroup.cc
* src/MetalinkEntry.cc
* src/Metalinker.cc
* src/MultiDiskAdaptor.cc
* src/Netrc.cc
* src/OptionParser.cc
* src/PieceStatMan.cc
* src/RarestPieceSelector.cc
* src/RequestGroupMan.cc
* src/SegmentMan.cc
* src/ServerStatMan.cc
* src/XML2SAXMetalinkProcessor.cc
* src/Xml2XmlRpcRequestProcessor.cc
* src/XmlRpcResponse.cc
* src/a2algo.h
* src/download_helper.cc
|
| |
|
|
|
|
|
| |
Code cleanup
* src/DefaultPeerStorage.cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rewritten ut_pex peer selection.
* src/DefaultBtInteractive.cc
* src/DefaultPeerStorage.cc
* src/DefaultPeerStorage.h
* src/PeerStorage.h
* src/UTPexExtensionMessage.h
* test/DefaultPeerStorageTest.cc
* test/MockPeerStorage.h
* test/UTPexExtensionMessageTest.cc
|
| |
|
|
|
|
|
| |
Changed naming standards for class member variable: now it looks
like var_ instead of _var.
|
| |
|
|
|
|
|
|
| |
Fixed assertion error if updateTransferStatFor is called with peer
X before calculateStat() after peer X is added.
* src/DefaultPeerStorage.cc
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
Renamed member variables. Removed unused member variable.
* src/DefaultPeerStorage.cc
* src/DefaultPeerStorage.h
* src/RequestGroup.cc
* test/DefaultPeerStorageTest.cc
|
| |
|
|
|
|
|
|
| |
Use clock_gettime(CLOCK_MONOTONIC, ...) if it is available and
usable to prevent from aria2 from being affected by system time
change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Avoid to calculate end() iterator in each loop. std::deque is
particularly slow. Make sure that recalculate end iterator if
element is erased during loop.
|