mirror of https://github.com/aria2/aria2
2006-06-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
To fix the bug that causes same have message is sent many times to a single peer. * src/Time.cc (isNewer): Use Util::difftv(). To fix the bug that sends tracker requests without a sleep interval when the number of connections is less than 15. * src/TrackerWatcherCommand.cc (execute): Now the number of connections is not a factor to decide whether or not a tracker request should be sent or not. * src/Time.h (setTimeInSec): New function. * src/Time.cc (setTimeInSec): New function. etc. * src/ChokeMessage.cc (receivedAction): Removed peer->snubbing = false * src/PeerConnection.h (receiveHandshake): Updated doc. * src/TorrentMan.h (getAdvertisedPieceIndexes): Updated the method signature. * src/TorrentMan.cc (getAdvertisedPieceIndexes): Updated the method signature. * Release 0.5.2pull/1/head
parent
d02d80d9e9
commit
722b3f8957
34
ChangeLog
34
ChangeLog
|
@ -1,3 +1,37 @@
|
||||||
|
2006-06-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
To fix the bug that causes same have message is sent many times to
|
||||||
|
a single peer.
|
||||||
|
|
||||||
|
* src/Time.cc
|
||||||
|
(isNewer): Use Util::difftv().
|
||||||
|
|
||||||
|
To fix the bug that sends tracker requests without a sleep interval
|
||||||
|
when the number of connections is less than 15.
|
||||||
|
|
||||||
|
* src/TrackerWatcherCommand.cc
|
||||||
|
(execute): Now the number of connections is not a factor to decide
|
||||||
|
whether or not a tracker request should be sent or not.
|
||||||
|
* src/Time.h
|
||||||
|
(setTimeInSec): New function.
|
||||||
|
* src/Time.cc
|
||||||
|
(setTimeInSec): New function.
|
||||||
|
|
||||||
|
etc.
|
||||||
|
|
||||||
|
* src/ChokeMessage.cc
|
||||||
|
(receivedAction): Removed peer->snubbing = false
|
||||||
|
|
||||||
|
* src/PeerConnection.h
|
||||||
|
(receiveHandshake): Updated doc.
|
||||||
|
|
||||||
|
* src/TorrentMan.h
|
||||||
|
(getAdvertisedPieceIndexes): Updated the method signature.
|
||||||
|
* src/TorrentMan.cc
|
||||||
|
(getAdvertisedPieceIndexes): Updated the method signature.
|
||||||
|
|
||||||
|
* Release 0.5.2
|
||||||
|
|
||||||
2006-06-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2006-06-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
To make a listening socket non-block:
|
To make a listening socket non-block:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.59 for aria2c 0.5.1.
|
# Generated by GNU Autoconf 2.59 for aria2c 0.5.2.
|
||||||
#
|
#
|
||||||
# Report bugs to <tujikawa@rednoah.com>.
|
# Report bugs to <tujikawa@rednoah.com>.
|
||||||
#
|
#
|
||||||
|
@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='aria2c'
|
PACKAGE_NAME='aria2c'
|
||||||
PACKAGE_TARNAME='aria2c'
|
PACKAGE_TARNAME='aria2c'
|
||||||
PACKAGE_VERSION='0.5.1'
|
PACKAGE_VERSION='0.5.2'
|
||||||
PACKAGE_STRING='aria2c 0.5.1'
|
PACKAGE_STRING='aria2c 0.5.2'
|
||||||
PACKAGE_BUGREPORT='tujikawa@rednoah.com'
|
PACKAGE_BUGREPORT='tujikawa@rednoah.com'
|
||||||
|
|
||||||
ac_unique_file="src/Socket.h"
|
ac_unique_file="src/Socket.h"
|
||||||
|
@ -788,7 +788,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures aria2c 0.5.1 to adapt to many kinds of systems.
|
\`configure' configures aria2c 0.5.2 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
@ -854,7 +854,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of aria2c 0.5.1:";;
|
short | recursive ) echo "Configuration of aria2c 0.5.2:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
@ -994,7 +994,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit 0
|
test -n "$ac_init_help" && exit 0
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
aria2c configure 0.5.1
|
aria2c configure 0.5.2
|
||||||
generated by GNU Autoconf 2.59
|
generated by GNU Autoconf 2.59
|
||||||
|
|
||||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||||
|
@ -1008,7 +1008,7 @@ cat >&5 <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by aria2c $as_me 0.5.1, which was
|
It was created by aria2c $as_me 0.5.2, which was
|
||||||
generated by GNU Autoconf 2.59. Invocation command line was
|
generated by GNU Autoconf 2.59. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
@ -1651,7 +1651,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='aria2c'
|
PACKAGE='aria2c'
|
||||||
VERSION='0.5.1'
|
VERSION='0.5.2'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
@ -11528,7 +11528,7 @@ _ASBOX
|
||||||
} >&5
|
} >&5
|
||||||
cat >&5 <<_CSEOF
|
cat >&5 <<_CSEOF
|
||||||
|
|
||||||
This file was extended by aria2c $as_me 0.5.1, which was
|
This file was extended by aria2c $as_me 0.5.2, which was
|
||||||
generated by GNU Autoconf 2.59. Invocation command line was
|
generated by GNU Autoconf 2.59. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
@ -11591,7 +11591,7 @@ _ACEOF
|
||||||
|
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF
|
cat >>$CONFIG_STATUS <<_ACEOF
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
aria2c config.status 0.5.1
|
aria2c config.status 0.5.2
|
||||||
configured by $0, generated by GNU Autoconf 2.59,
|
configured by $0, generated by GNU Autoconf 2.59,
|
||||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
#
|
#
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_INIT(aria2c, 0.5.1, tujikawa@rednoah.com)
|
AC_INIT(aria2c, 0.5.2, tujikawa@rednoah.com)
|
||||||
AM_INIT_AUTOMAKE()
|
AM_INIT_AUTOMAKE()
|
||||||
AM_PATH_CPPUNIT(1.10.2)
|
AM_PATH_CPPUNIT(1.10.2)
|
||||||
AC_CONFIG_SRCDIR([src/Socket.h])
|
AC_CONFIG_SRCDIR([src/Socket.h])
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
# General Public License and is *not* in the public domain.
|
# General Public License and is *not* in the public domain.
|
||||||
|
|
||||||
PACKAGE = aria2c
|
PACKAGE = aria2c
|
||||||
VERSION = 0.5.1
|
VERSION = 0.5.2
|
||||||
|
|
||||||
SHELL = /bin/sh
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,6 @@ ChokeMessage* ChokeMessage::create(const char* data, int dataLength) {
|
||||||
|
|
||||||
void ChokeMessage::receivedAction() {
|
void ChokeMessage::receivedAction() {
|
||||||
peer->peerChoking = true;
|
peer->peerChoking = true;
|
||||||
peer->snubbing = false;
|
|
||||||
peerInteraction->onChoked();
|
peerInteraction->onChoked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,12 @@ public:
|
||||||
int sendMessage(const char* msg, int length);
|
int sendMessage(const char* msg, int length);
|
||||||
|
|
||||||
bool receiveMessage(char* msg, int& length);
|
bool receiveMessage(char* msg, int& length);
|
||||||
|
/**
|
||||||
|
* Returns true if a handshake message is fully received, otherwise returns
|
||||||
|
* false.
|
||||||
|
* In both cases, 'msg' is filled with received bytes and the filled length
|
||||||
|
* is assigned to 'length'.
|
||||||
|
*/
|
||||||
bool receiveHandshake(char* msg, int& length);
|
bool receiveHandshake(char* msg, int& length);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ bool Time::elapsedInMillis(int millis) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Time::isNewer(const Time& time) const {
|
bool Time::isNewer(const Time& time) const {
|
||||||
return Util::difftvsec(this->tv, time.tv) > 0;
|
return Util::difftv(this->tv, time.tv) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Time::difference() const {
|
int Time::difference() const {
|
||||||
|
@ -68,3 +68,8 @@ int Time::difference() const {
|
||||||
long long int Time::differenceInMillis() const {
|
long long int Time::differenceInMillis() const {
|
||||||
return Util::difftv(getCurrentTime(), tv)/1000;
|
return Util::difftv(getCurrentTime(), tv)/1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Time::setTimeInSec(int sec) {
|
||||||
|
tv.tv_sec = sec;
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
}
|
||||||
|
|
|
@ -65,6 +65,8 @@ public:
|
||||||
return tv.tv_sec;
|
return tv.tv_sec;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setTimeInSec(int sec);
|
||||||
|
|
||||||
bool isNewer(const Time& time) const;
|
bool isNewer(const Time& time) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -655,7 +655,7 @@ void TorrentMan::advertisePiece(int cuid, int index) {
|
||||||
};
|
};
|
||||||
|
|
||||||
PieceIndexes TorrentMan::getAdvertisedPieceIndexes(int myCuid,
|
PieceIndexes TorrentMan::getAdvertisedPieceIndexes(int myCuid,
|
||||||
Time lastCheckTime) const {
|
const Time& lastCheckTime) const {
|
||||||
PieceIndexes indexes;
|
PieceIndexes indexes;
|
||||||
for(Haves::const_iterator itr = haves.begin(); itr != haves.end(); itr++) {
|
for(Haves::const_iterator itr = haves.begin(); itr != haves.end(); itr++) {
|
||||||
const Haves::value_type& have = *itr;
|
const Haves::value_type& have = *itr;
|
||||||
|
|
|
@ -178,7 +178,7 @@ public:
|
||||||
|
|
||||||
void advertisePiece(int cuid, int index);
|
void advertisePiece(int cuid, int index);
|
||||||
|
|
||||||
PieceIndexes getAdvertisedPieceIndexes(int myCuid, Time lastCheckTime) const;
|
PieceIndexes getAdvertisedPieceIndexes(int myCuid, const Time& lastCheckTime) const;
|
||||||
|
|
||||||
long long int getTotalLength() const { return totalLength; }
|
long long int getTotalLength() const { return totalLength; }
|
||||||
void setTotalLength(long long int length) { totalLength = length; }
|
void setTotalLength(long long int length) { totalLength = length; }
|
||||||
|
|
|
@ -28,7 +28,10 @@
|
||||||
TrackerWatcherCommand::TrackerWatcherCommand(int cuid,
|
TrackerWatcherCommand::TrackerWatcherCommand(int cuid,
|
||||||
TorrentDownloadEngine* e,
|
TorrentDownloadEngine* e,
|
||||||
int interval):
|
int interval):
|
||||||
Command(cuid), e(e), interval(interval) {}
|
Command(cuid), e(e), interval(interval) {
|
||||||
|
// to force requesting to a tracker first time.
|
||||||
|
checkPoint.setTimeInSec(0);
|
||||||
|
}
|
||||||
|
|
||||||
TrackerWatcherCommand::~TrackerWatcherCommand() {}
|
TrackerWatcherCommand::~TrackerWatcherCommand() {}
|
||||||
|
|
||||||
|
@ -44,8 +47,7 @@ bool TrackerWatcherCommand::execute() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(e->torrentMan->trackers == 0 &&
|
if(e->torrentMan->trackers == 0 &&
|
||||||
(e->torrentMan->connections < MAX_PEER_UPDATE ||
|
(e->torrentMan->isHalt() ||
|
||||||
e->torrentMan->isHalt() ||
|
|
||||||
checkPoint.elapsed(interval))) {
|
checkPoint.elapsed(interval))) {
|
||||||
checkPoint.reset();
|
checkPoint.reset();
|
||||||
e->torrentMan->req->resetTryCount();
|
e->torrentMan->req->resetTryCount();
|
||||||
|
|
Loading…
Reference in New Issue