mirror of
https://github.com/aria2/aria2.git
synced 2025-02-19 05:37:49 +00:00
2007-06-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Accept incoming connections if download rate is low. * src/PeerListenCommand.h, src/PeerListenCommand.cc: (_lowestSpeedLimit): New variable. (setLowestSpeedLimit): New function. (execute): Accept incoming connections if download rate is low. MAX_PEERS is ignored in this case.
This commit is contained in:
parent
453e2f10dd
commit
47ce21a469
@ -1,3 +1,12 @@
|
||||
2007-06-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
Accept incoming connections if download rate is low.
|
||||
* src/PeerListenCommand.h, src/PeerListenCommand.cc:
|
||||
(_lowestSpeedLimit): New variable.
|
||||
(setLowestSpeedLimit): New function.
|
||||
(execute): Accept incoming connections if download rate is low.
|
||||
MAX_PEERS is ignored in this case.
|
||||
|
||||
2007-06-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||
|
||||
RequestGroup::getNextCommand() was renamed to createNextCommand().
|
||||
|
1
TODO
1
TODO
@ -34,3 +34,4 @@
|
||||
* Do not use ufilename in multi-simultaneous download mode.
|
||||
* Create download command directly when 1connection download.
|
||||
Consider timeout when file allocation/check integrity is enabled.
|
||||
* Accept incoming connections if download rate is low.
|
||||
|
@ -41,7 +41,8 @@ PeerListenCommand::PeerListenCommand(int cuid,
|
||||
TorrentDownloadEngine* e,
|
||||
const BtContextHandle& btContext)
|
||||
:BtContextAwareCommand(cuid, btContext),
|
||||
e(e) {}
|
||||
e(e),
|
||||
_lowestSpeedLimit(20*1024) {}
|
||||
|
||||
PeerListenCommand::~PeerListenCommand() {}
|
||||
|
||||
@ -77,8 +78,11 @@ bool PeerListenCommand::execute() {
|
||||
peerSocket->getPeerInfo(peerInfo);
|
||||
pair<string, int> localInfo;
|
||||
peerSocket->getAddrInfo(localInfo);
|
||||
|
||||
TransferStat tstat = peerStorage->calculateStat();
|
||||
if(peerInfo.first != localInfo.first &&
|
||||
btRuntime->getConnections() < MAX_PEERS) {
|
||||
(!pieceStorage->downloadFinished() && tstat.getDownloadSpeed() < _lowestSpeedLimit ||
|
||||
btRuntime->getConnections() < MAX_PEERS)) {
|
||||
PeerHandle peer = PeerHandle(new Peer(peerInfo.first, peerInfo.second,
|
||||
btContext->getPieceLength(),
|
||||
btContext->getTotalLength()));
|
||||
|
@ -42,6 +42,7 @@ class PeerListenCommand : public BtContextAwareCommand {
|
||||
private:
|
||||
TorrentDownloadEngine* e;
|
||||
SocketHandle socket;
|
||||
int32_t _lowestSpeedLimit;
|
||||
public:
|
||||
PeerListenCommand(int cuid,
|
||||
TorrentDownloadEngine* e,
|
||||
@ -52,6 +53,11 @@ public:
|
||||
bool execute();
|
||||
|
||||
int bindPort(int portRangeStart, int portRangeEnd);
|
||||
|
||||
void setLowestSpeedLimit(int32_t speed)
|
||||
{
|
||||
_lowestSpeedLimit = speed;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // _D_PEER_LISTEN_COMMAND_H_
|
||||
|
Loading…
x
Reference in New Issue
Block a user