mirror of
https://github.com/aria2/aria2.git
synced 2024-12-13 17:06:01 +00:00
77e095300b
Removed unused preferences: PREF_NO_PREALLOCATION PREF_STDOUT_LOG PREF_TRACKER_MAX_TRIES PREF_DIRECT_DOWNLOAD_TIMEOUT PREF_MIN_SEGMENT_SIZE * src/option_processing.cc * src/prefs.cc * src/prefs.h
12923 lines
418 KiB
Plaintext
12923 lines
418 KiB
Plaintext
2008-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed unused preferences:
|
|
PREF_NO_PREALLOCATION
|
|
PREF_STDOUT_LOG
|
|
PREF_TRACKER_MAX_TRIES
|
|
PREF_DIRECT_DOWNLOAD_TIMEOUT
|
|
PREF_MIN_SEGMENT_SIZE
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
|
|
2008-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Integrated HelpItem into OptionParser to ease the workload for adding
|
|
new options. Removed default value from usage text.
|
|
* src/HelpItem.cc: Removed.
|
|
* src/HelpItem.h: Removed.
|
|
* src/HelpItemFactory.cc: Removed.
|
|
* src/HelpItemFactory.h: Removed.
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
* src/NameMatchOptionHandler.h
|
|
* src/OptionHandler.cc
|
|
* src/OptionHandler.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/OptionHandlerImpl.h
|
|
* src/OptionParser.cc
|
|
* src/OptionParser.h
|
|
* src/TagContainer.cc: Removed.
|
|
* src/TagContainer.h: Removed.
|
|
* src/TaggedItem.cc: Removed.
|
|
* src/TaggedItem.h: Removed.
|
|
* src/main.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
* src/version_usage.cc
|
|
* test/HelpItemTest.cc: Removed.
|
|
* test/Makefile.am
|
|
* test/Makefile.in
|
|
* test/OptionHandlerTest.cc
|
|
* test/OptionParserTest.cc
|
|
* test/TagContainerTest.cc: Removed.
|
|
|
|
2008-09-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved `TransferStat stat = ...' to inside the `if' clause.
|
|
* src/RequestGroup.cc (RequestGroup::reportDownloadFinished)
|
|
|
|
2008-09-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that a block in a piece is requested when same block is
|
|
already requested to the same peer in end game mode.
|
|
* src/BtRequestFactory.h
|
|
* src/DefaultBtInteractive.cc
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/DefaultBtRequestFactory.h
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/PieceStorage.h
|
|
* src/UnknownLengthPieceStorage.cc
|
|
* src/UnknownLengthPieceStorage.h
|
|
* test/DefaultBtRequestFactoryTest.cc
|
|
* test/DefaultPieceStorageTest.cc
|
|
* test/MockBtRequestFactory.h
|
|
* test/MockPieceStorage.h
|
|
|
|
2008-09-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed _uploadLength and _downloadLength from PeerSessionResource
|
|
and use PeerStat::_sessionUploadLength and
|
|
PeerStat::_sessionDownloadLength.
|
|
* src/PeerSessionResource.cc
|
|
* src/PeerSessionResource.h
|
|
|
|
2008-09-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prefixLength of split bucket which doesn't include
|
|
local node ID is incremented.
|
|
* src/DHTBucket.cc
|
|
* src/DHTBucket.h
|
|
* test/DHTBucketTest.cc
|
|
|
|
2008-09-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added cookies.sqlite to EXTRA_DIST
|
|
* test/Makefile.am
|
|
|
|
2008-09-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Turkish translation. Updated French, German, Russian and
|
|
Simplified Chinese translations. Thanks to all translators.
|
|
* po/LINGUAS
|
|
* po/de.po
|
|
* po/fr.po
|
|
* po/ru.po
|
|
* po/tr.po
|
|
* po/zh_CN.po
|
|
|
|
2008-09-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added deliminating text to the beginning of the log so that one can find
|
|
where the log starts easily.
|
|
* src/main.cc
|
|
|
|
2008-09-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved isProxyGETRequest function outside #ifdef ENABLE_ASYNC_DNS clause
|
|
to fix compile error when async DNS is not enabled by configuration.
|
|
* src/AbstractCommand.cc
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If establishing conneciton to a server is failed, then mark error on
|
|
its ServerStat.
|
|
Added the cause of error to log when error event occurred.
|
|
Moved message string to message.h for translation.
|
|
* src/AbstractCommand.cc
|
|
* src/AbstractCommand.h
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HttpRequestCommand.cc
|
|
* src/PeerAbstractCommand.cc
|
|
* src/message.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the function to get error message from socket.
|
|
* src/SocketCore.cc
|
|
* src/SocketCore.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added convenient method RequestGroupMan::getOrCreateServerStat()
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If error event is received in epoll, then abort download immediately.
|
|
* src/AbstractCommand.cc
|
|
* src/Command.cc
|
|
* src/Command.h
|
|
* src/DownloadEngine.cc
|
|
* src/PeerAbstractCommand.cc
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added usage message for --uri-selector, --server-stat-of,
|
|
--server-stat-in, --server-stat-timeout options.
|
|
* src/HelpItemFactory.cc
|
|
* src/usage_text.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added upper limit of FTP response buffer. The current implementation
|
|
uses 4096bytes as a limit.
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* test/FtpConnectionTest.cc
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use non-blocking socket for TCP communication to avoid possible
|
|
blocking due to buffer full.
|
|
* src/AbstractProxyRequestCommand.cc
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
* src/HttpConnection.cc
|
|
* src/HttpConnection.h
|
|
* src/HttpRequestCommand.cc
|
|
* src/InitiatorMSEHandshakeCommand.cc
|
|
* src/InitiatorMSEHandshakeCommand.h
|
|
* src/MSEHandshake.cc
|
|
* src/MSEHandshake.h
|
|
* src/Makefile.am
|
|
* src/PeerConnection.cc
|
|
* src/PeerConnection.h
|
|
* src/PeerInteractionCommand.cc
|
|
* src/PeerListenCommand.cc
|
|
* src/ReceiverMSEHandshakeCommand.cc
|
|
* src/ReceiverMSEHandshakeCommand.h
|
|
* src/SocketBuffer.cc
|
|
* src/SocketBuffer.h
|
|
* src/SocketCore.cc
|
|
* src/SocketCore.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call setStatusRealtime() in constructor.
|
|
* src/RealtimeCommand.cc
|
|
* src/RealtimeCommand.h
|
|
|
|
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call Download::setNoWait(true) to execute newly created command without
|
|
a pause.
|
|
* src/AbstractCommand.cc
|
|
|
|
2008-09-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --max-file-not-found=NUM option. If aria2 receives `file not
|
|
found' error from HTTP/FTP server NUM times without getting single
|
|
bytes of data, then force the download to fail.
|
|
Basically aria2 tris all URIs available. So if long list of URIs are
|
|
specified in Metalink, then aria2 will take a long time to fail
|
|
eventually if all URIs are outdated. This option eases this situation
|
|
to limit the number of servers to try.
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HelpItemFactory.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/PeerStat.h
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* src/SegmentMan.cc
|
|
* src/SegmentMan.h
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-09-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that bulkReceiveResponse() reads all received data as a
|
|
response even if more than one response is in it.
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* test/FtpConnectionTest.cc
|
|
|
|
2008-09-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged from stable-0.15
|
|
* m4/libcares.m4
|
|
|
|
Use pkg-config
|
|
* m4/sqlite3.m4
|
|
|
|
2008-09-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed unnecessary if statement.
|
|
* src/DefaultPieceStorage.cc (initPieceStorage)
|
|
|
|
2008-09-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --connect-timeout option to specify connect timeout in seconds.
|
|
This option is in effect for HTTP/FTP/proxy server. The timeout for
|
|
connecting to BitTorrent peer is not controlled by this option.
|
|
* src/AbstractProxyRequestCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HelpItemFactory.cc
|
|
* src/HttpRequestCommand.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-09-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added help message for -R option.
|
|
* src/HelpItemFactory.cc
|
|
* src/usage_text.h
|
|
|
|
2008-09-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the message that the time is in local time zone.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-09-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented the ability to get timestamp from remote FTP server using
|
|
MDTM command described in RFC3659.
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
* test/FtpConnectionTest.cc
|
|
* test/Makefile.am
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented the ability to get timestamp from remote HTTP server and
|
|
apply it to local file. To enable this feature, --remote-time option
|
|
is added. No usage text has been written yet.
|
|
If several servers returns difference timestamp, then aria2 uses latest
|
|
one.
|
|
* src/CopyDiskAdaptor.cc
|
|
* src/CopyDiskAdaptor.h
|
|
* src/DirectDiskAdaptor.cc
|
|
* src/DirectDiskAdaptor.h
|
|
* src/DiskAdaptor.h
|
|
* src/File.cc
|
|
* src/File.h
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponse.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponseCommand.h
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* src/RequestGroupMan.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* test/CopyDiskAdaptorTest.cc
|
|
* test/FileTest.cc
|
|
* test/Makefile.am
|
|
* test/Makefile.in
|
|
* test/MultiDiskAdaptorTest.cc
|
|
* test/TestUtil.cc
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that DiskWriterEntry is not created when its
|
|
FileEntry.isRequested() is false and it doesn't share a piece with
|
|
other FileEntries that are requested. This bug causes segmentation fault
|
|
in the end.
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* src/MultiFileAllocationIterator.cc
|
|
* test/MultiDiskAdaptorTest.cc
|
|
* test/MultiFileAllocationIteratorTest.cc
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that exception is thrown when MultiDiskAdaptor::size() is
|
|
called if the number of file entries are greater than max open files.
|
|
* src/AbstractSingleDiskAdaptor.cc
|
|
* src/AbstractSingleDiskAdaptor.h
|
|
* src/DiskAdaptor.h
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* test/MultiDiskAdaptorTest.cc
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added a constuctor that receives struct timeval.
|
|
Added operator<.
|
|
* src/TimeA2.cc
|
|
* src/TimeA2.h
|
|
* test/TimeTest.cc
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Parse `expires' of Set-Cookie using Time::parseHTTPDate()
|
|
* src/CookieParser.cc
|
|
* test/CookieParserTest.cc
|
|
* test/HttpResponseTest.cc
|
|
|
|
2008-09-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implmented the functions to parse date.
|
|
* src/TimeA2.cc
|
|
* src/TimeA2.h
|
|
* test/TimeTest.cc
|
|
|
|
2008-09-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added "Firefox3 Cookie" feature to FeatureConfig
|
|
* src/FeatureConfig.cc
|
|
* src/FeatureConfig.h
|
|
* test/FeatureConfigTest.cc
|
|
|
|
2008-09-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.16.0b
|
|
* configure.ac
|
|
|
|
2008-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use pkg-config if is is available.
|
|
* m4/openssl.m4
|
|
|
|
2008-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
DEFAULT_ANNOUNCE_INTERVAL: unsigned int -> time_t
|
|
* src/BtAnnounce.h
|
|
|
|
2008-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If an error occurred with a URI, remove identical URI from remaining
|
|
URI list because it is likely that same error occurred in the end and it
|
|
is waste of time.
|
|
* src/AbstractCommand.cc
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
|
|
2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed wrong comment.
|
|
* src/DefaultPeerStorage.cc
|
|
|
|
2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved implementation to SimpleRandomizer.cc from SimpleRandomizer.h.
|
|
Added return value of getpid() to argument of srand() to achieve more
|
|
randomized value.
|
|
* src/SimpleRandomizer.cc
|
|
* src/SimpleRandomizer.h
|
|
|
|
2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Contact tracker frequently when the number of connections are 0 and
|
|
download is not finished yet.
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/BtAnnounce.h
|
|
* src/DefaultBtAnnounce.cc
|
|
* src/DefaultBtAnnounce.h
|
|
* test/MockBtAnnounce.h
|
|
|
|
2008-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved threshold 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>
|
|
|
|
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-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made files whose name ends with ".gz", ".tgz" not inflated by Content
|
|
Encoding Decoder. Removed size threshold for turning off on the fly
|
|
inflation because resulting file may or may not be inflated depending
|
|
on the file size and I think it is not expected by users.
|
|
This change fixes segmentation fault when Metalink file contains gzipped
|
|
file and its filesize is provided.
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponseCommand.h
|
|
|
|
2008-09-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made Cookie immutable.
|
|
* src/Cookie.cc
|
|
* src/Cookie.h
|
|
* src/CookieParser.cc
|
|
* src/CookieParser.h
|
|
* src/CookieStorage.cc
|
|
* test/CookieParserTest.cc
|
|
* test/CookieStorageTest.cc
|
|
* test/NsCookieParserTest.cc
|
|
* test/Sqlite3MozCookieParserTest.cc
|
|
|
|
2008-09-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed CookieBox, CookieBoxFactory.
|
|
* src/CookieBox.cc
|
|
* src/CookieBox.h
|
|
* src/CookieBoxFactory.cc
|
|
* src/CookieBoxFactory.h
|
|
* src/Makefile.am
|
|
|
|
2008-09-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use CookieStorage class instead of CookieBox class.
|
|
Now CookieStorage accepts cookies from numeric host such as 192.168.1.1.
|
|
* src/AbstractProxyRequestCommand.cc
|
|
* src/CookieStorage.cc
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
* src/HttpConnection.cc
|
|
* src/HttpConnection.h
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
* src/HttpRequestCommand.cc
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
* src/Makefile.am
|
|
* src/MultiUrlRequestInfo.cc
|
|
* src/Request.cc
|
|
* src/Request.h
|
|
* src/main.cc
|
|
* test/AllTest.cc
|
|
* test/CookieStorageTest.cc
|
|
* test/CookieTest.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/Makefile.am
|
|
* test/NsCookieParserTest.cc
|
|
* test/Sqlite3MozCookieParserTest.cc
|
|
* test/nscookietest.txt
|
|
|
|
2008-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated
|
|
* test/Cookies.sqlite
|
|
* test/nscookietest.txt
|
|
|
|
2008-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added tests for CookieStorage::load()
|
|
* test/CookieStorageTest.cc
|
|
|
|
2008-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added CookieStorage class which is based on RFC2109 and manages cookies
|
|
more strictly than CookieBox and CookieBoxFactory class.
|
|
* src/CookieStorage.cc
|
|
* src/CookieStorage.h
|
|
* src/Cookie.cc
|
|
* src/Cookie.h
|
|
* test/CookieStorageTest.cc
|
|
* test/CookieTest.cc
|
|
|
|
2008-08-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that commands are created more than the number of pieces.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-08-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed infinite loop bug in FTP when SIZE command failed.
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
2008-08-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed DirectDiskAdaptorTest.h
|
|
* test/Makefile.am
|
|
|
|
2008-08-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed chunk checksum validation cannot detect trailing garbage data.
|
|
BUG#2074141
|
|
* src/AbstractSingleDiskAdaptor.cc
|
|
* src/AbstractSingleDiskAdaptor.h
|
|
* src/CheckIntegrityEntry.cc
|
|
* src/CheckIntegrityEntry.h
|
|
* src/DiskAdaptor.h
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* src/RequestGroup.cc
|
|
* test/DirectDiskAdaptorTest.cc
|
|
* test/MultiDiskAdaptorTest.cc
|
|
* test/TestUtil.cc
|
|
* test/TestUtil.h
|
|
|
|
2008-08-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number of dht.dat file to 3. In version 3 format, time
|
|
is stored in 64bit, network byte order.
|
|
New build can load old format(version 2) but it saves the file in new
|
|
format. It means once you used new build, your dht.dat becomes
|
|
incompatible with older build.
|
|
* src/DHTRoutingTableDeserializer.cc
|
|
* src/DHTRoutingTableSerializer.cc
|
|
* test/DHTRoutingTableSerializerTest.cc
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added load-v0001.aria2 and load-nonBt-v0001.aria2 to EXTRA_DIST.
|
|
* test/Makefile.am
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number of .aria2 control file to 0001.
|
|
New aria2 can still load version 0000 file but it saves the file in
|
|
version 0001 format. It means that new aria2 can resume download
|
|
started by old aria2 but the opposite is not true.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultBtProgressInfoFile.h
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added ntoh64 and hton64 as inline functions.
|
|
* src/Util.cc
|
|
* test/UtilTest.cc
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added sqlite3 depenency and Firefox3 cookie support.
|
|
* README
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
State that firefox3 cookie is supported explicitly in the usage.
|
|
* src/usage_text.h
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Externalized message.
|
|
* src/RequestGroupMan.cc
|
|
* src/message.h
|
|
|
|
2008-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Save temporary file first and rename to the destination on success.
|
|
Added test cases.
|
|
* src/RequestGroupMan.cc
|
|
* test/RequestGroupManTest.cc
|
|
|
|
2008-08-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that the number of connected peer is exceeding the limit
|
|
(55 by default) in seeding mode.
|
|
Multiplied 0.8 to _maxUploadSpeedLimit.
|
|
* src/ActivePeerConnectionCommand.cc
|
|
|
|
2008-08-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Clear table item.
|
|
* src/Dictionary.cc
|
|
|
|
2008-08-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed error handling of lseek.
|
|
* src/AbstractDiskWriter.cc
|
|
|
|
2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed "(1.x/2.x)" from TEXT_LOAD_COOKIES since aria2 can load Firefox3
|
|
style cookie file.
|
|
* src/usage_text.h
|
|
|
|
2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If a cookie whose expire date is later than 2038-01-19 03:14:07 GMT is
|
|
sent from server, its expire date is assumed to 2038-01-19 03:14:07 GMT.
|
|
If Util::httpGMT is failed, then Cookie::onetime is set to true.
|
|
* src/Util.cc
|
|
* src/Util.h
|
|
* src/CookieParser.cc
|
|
* test/UtilTest.cc
|
|
* test/CookieParserTest.cc
|
|
|
|
2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Separate the implementation to load old mozilla format of cookie to
|
|
NsCookieParser class.
|
|
* src/CookieBoxFactory.cc
|
|
* src/CookieBoxFactory.h
|
|
* src/NsCookieParser.cc
|
|
* src/NsCookieParser.h
|
|
* test/NsCookieParserTest.cc
|
|
|
|
2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made parse() const
|
|
* src/Sqlite3MozCookieParser.cc
|
|
* src/Sqlite3MozCookieParser.h
|
|
|
|
2008-08-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added firefox3 cookie support based on the patch submitted by
|
|
tizianomueller.
|
|
firefox3 cookie is SQLite3 database. libsqlite3 is required to enable
|
|
this functionality.
|
|
* configure.ac
|
|
* m4/sqlite3.m4
|
|
* src/CookieBoxFactory.cc
|
|
* src/CookieBoxFactory.h
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
* src/Sqlite3MozCookieParser.cc
|
|
* src/Sqlite3MozCookieParser.h
|
|
* src/main.cc
|
|
* test/CookieBoxFactoryTest.cc
|
|
* test/Makefile.am
|
|
* test/Makefile.in
|
|
* test/Sqlite3MozCookieParserTest.cc
|
|
* test/badcookies.sqlite
|
|
* test/cookies.sqlite
|
|
|
|
2008-08-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Danish and Greek translations.
|
|
Updated Spanish, Catalan, Norwegian Nynorsk translations.
|
|
Great thanks to all translators.
|
|
* po/LINGUAS
|
|
* po/el.po
|
|
* po/da.po
|
|
* po/es.po
|
|
* po/ca.po
|
|
* po/nn.po
|
|
|
|
2008-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed man page: --follow-bittorrent should be --follow-torrent
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed: numCommand is less than the value specified in -C option.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed occasional assertion failure in PieceSegment.
|
|
Calling PieceStorage::getMissingPiece(size_t) was missing after
|
|
canceling segments in SegmentMan::getSegment(int32_t). This resulted in
|
|
creation of duplicate segments and one of the segment was finished then
|
|
assertion failure was caused.
|
|
* src/SegmentMan.cc
|
|
* test/SegmentManTest.cc
|
|
|
|
2008-08-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added options to load/save the server's performance/status to a file
|
|
and the timeout to drop their data.
|
|
--server-stat-of=FILE specifies the file to which performance data
|
|
is saved.
|
|
--server-stat-if=FILE specifies the file to read previously saved
|
|
by --server-stat-of option. Might be used with --uri-selector=feedback.
|
|
--server-stat-timeout=TIMEOUT specifies timeout to invalidate the data.
|
|
TIMEOUT is specified in seconds and the default value is 24hours.
|
|
* src/MultiUrlRequestInfo.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
* src/ServerStatMan.cc
|
|
* src/ServerStatMan.h
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* test/ServerStatManTest.cc
|
|
|
|
2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented ServerStatMan::removeStaleServerStat() and its test case.
|
|
* src/ServerStatMan.cc
|
|
* src/ServerStatMan.h
|
|
* test/ServerStatManTest.cc
|
|
|
|
2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented ServerStatMan::load(...) function and its test case.
|
|
* src/ServerStat.cc
|
|
* src/ServerStat.h
|
|
* src/ServerStatMan.cc
|
|
* test/ServerStatManTest.cc
|
|
* test/ServerStatTest.cc
|
|
|
|
2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use time_t instead of int32_t. Use int64_t where milli second is
|
|
expected.
|
|
* src/TimeA2.cc
|
|
* src/TimeA2.h
|
|
|
|
2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented ServerStatMan::save(...) function and its test case.
|
|
* src/ServerStat.cc
|
|
* src/ServerStat.h
|
|
* src/ServerStatMan.cc
|
|
* src/ServerStatMan.h
|
|
* test/ServerStatManTest.cc
|
|
|
|
2008-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now aria2 uses name attribute in Metalink as local filename in
|
|
BitTorrent downloads. BUG#2033999
|
|
* src/BtContext.h
|
|
* src/BtDependency.cc
|
|
* src/DefaultBtContext.cc
|
|
* src/DefaultBtContext.h
|
|
* src/SingleFileDownloadContext.cc
|
|
* src/SingleFileDownloadContext.h
|
|
* test/BtDependencyTest.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/MockBtContext.h
|
|
|
|
2008-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added AC_C_BIGENDIAN
|
|
* src/configure.ac
|
|
|
|
2008-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Limited numCommand less than or equal to the number of piece.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Eliminated randomness from the test case. Removed #ifdef __MINGW32
|
|
directive.
|
|
* test/DefaultPieceStorageTest.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed memory leak in test code
|
|
* test/AnnounceListTest.cc
|
|
* test/DefaultPeerListProcessorTest.cc
|
|
* test/DefaultPeerStorageTest.cc
|
|
* test/MetaFileUtilTest.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed wrong argument passing to BitfieldMan::isBitSet()
|
|
* src/DefaultPieceStorage.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Initialized _directIOAllowed
|
|
* src/MultiDiskAdaptor.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed memory leak
|
|
* src/GZipDecoder.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed memory leak
|
|
* src/MetalinkParserStateMachine.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed memory leak
|
|
* src/Dictionary.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed memory leak
|
|
* src/IteratableChunkChecksumValidator.h
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed unmatched malloc/free.
|
|
* src/IteratableChunkChecksumValidator.cc
|
|
* src/IteratableChecksumValidator.cc
|
|
|
|
2008-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed max chunk size check. This change fixes BUG#2040169
|
|
* src/ChunkedDecoder.cc
|
|
* src/ChunkedDecoder.h
|
|
* test/ChunkedDecoderTest.cc
|
|
|
|
2008-08-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented download speed based URI selection algorithm.
|
|
Introduced new option --uri-selector.
|
|
If --uri-selector=feedback is given, aria2 uses download speed observed
|
|
in the previous downloads and chooses fastest server in the URI list.
|
|
Currently at most 10 URIs are considered to introduce randomeness for
|
|
finding better servers. The speed is average download speed in the
|
|
downloads.
|
|
On the other hand, if --uri-selector=inorder is given, which is default,
|
|
URI is tried in order in URI list.
|
|
The usage text for the new option has not been written yet.
|
|
* src/AbstractCommand.cc
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngineFactory.cc
|
|
* src/InOrderURISelector.cc
|
|
* src/InOrderURISelector.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/PeerStat.h
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
* src/SegmentMan.cc
|
|
* src/SegmentMan.h
|
|
* src/ServerStat.cc
|
|
* src/ServerStat.h
|
|
* src/ServerStatMan.cc
|
|
* src/ServerStatMan.h
|
|
* src/ServerStatURISelector.cc
|
|
* src/ServerStatURISelector.h
|
|
* src/URISelector.h
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* test/InOrderURISelectorTest.cc
|
|
* test/RequestGroupManTest.cc
|
|
* test/ServerStatManTest.cc
|
|
* test/ServerStatURISelectorTest.cc
|
|
|
|
2008-08-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.15.1+2
|
|
|
|
2008-08-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.1+2
|
|
* configure.ac
|
|
|
|
2008-08-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that configure --enable-FEATURE actually disables FEATURE.
|
|
* m4/aria2_arg.m4
|
|
|
|
2008-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.15.1+1
|
|
|
|
2008-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.1+1
|
|
* configure.ac
|
|
|
|
2008-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that causes segmentaion fault when resuming download
|
|
using metalink without size tag. Reproducible only using HTTP URI.
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.15.1
|
|
|
|
2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated Bulgarian and French translations, thanks to all translators.
|
|
* po/bg.po
|
|
* po/fr.po
|
|
|
|
2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.1
|
|
* configure.ac
|
|
|
|
2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Avoid repeated call of gettimeofday() when calculating speed.
|
|
* src/SpeedCalc.cc
|
|
* src/SpeedCalc.h
|
|
|
|
2008-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed writable check when socket's send buffer is full in BitTorrent
|
|
downloads to lower CPU usage.
|
|
* src/PeerInteractionCommand.cc
|
|
|
|
2008-07-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed broken gzip inflation.
|
|
Turn off segmented downloading if gzip content is smaller than or equal
|
|
to 1MiB and inflate the data on the fly, because HTTP response header
|
|
doesn't contain the length of inflated file we can't determin where
|
|
the chunk of data should be written.
|
|
On the other hand, if gzip content is larger than 1MB, then turn off
|
|
on the fly inflation, because some servers returns "content-type: gzip"
|
|
for *.tgz, *.gz files.
|
|
* src/DownloadCommand.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponseCommand.h
|
|
|
|
2008-07-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied tizianomueller's patch to fix compile error.
|
|
* test/BitfieldManTest.cc
|
|
* test/BtRequestMessageTest.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/DefaultDiskWriterTest.cc
|
|
* test/DefaultPieceStorageTest.cc
|
|
* test/HttpHeaderProcessorTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/Metalink2RequestGroupTest.cc
|
|
* test/MetalinkParserControllerTest.cc
|
|
* test/MetalinkProcessorTest.cc
|
|
* test/PeerSessionResourceTest.cc
|
|
* test/UtilTest.cc
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.15.0
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reordered src files in POTFILES.in so that usage text appears first.
|
|
* po/POTFILES.in
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.0
|
|
* configure.ac
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Bulgarian translation.
|
|
Updated Catalan, Spanish, French and Japanese translations.
|
|
Thanks to all translators.
|
|
* po/LINGUAS
|
|
* po/bg.po
|
|
* po/ca.po
|
|
* po/es.po
|
|
* po/fr.po
|
|
* po/ja.po
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated feature list. Added libz for dependency section.
|
|
Added a description about unit testing using CppUnit.
|
|
* README
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added a test for libz. Quoted where it is necessary.
|
|
* build_test.sh
|
|
|
|
2008-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added GZip to `Enabled Features' list.
|
|
* src/FeatureConfig.cc
|
|
* src/FeatureConfig.h
|
|
* test/FeatureConfigTest.cc
|
|
|
|
2008-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now SegmentMan::findSlowerSegmentEntry() picks up the segment for which
|
|
the transfer has not yet started.
|
|
Rewritten SegmentMan::registerPeerStat() and SegmentMan::getPeerStat().
|
|
* src/SegmentMan.cc
|
|
* src/SegmentMan.h
|
|
* test/SegmentManTest.cc
|
|
|
|
2008-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Cache last calculated average download/upload speed.
|
|
PeerStat::getAvgDownloadSpeed(), PeerStat::getAvgUploadSpeed() return
|
|
cached value.
|
|
Now SpeedCalc::changeSw() is called from SpeedCalc::calculateSpeed()
|
|
* src/PeerStat.h
|
|
* src/SpeedCalc.cc
|
|
* src/SpeedCalc.h
|
|
|
|
2008-07-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call parseUrl directly.
|
|
* src/Request.cc (resetUrl)
|
|
|
|
2008-07-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Supported absolute/relative path in Location header field.
|
|
* src/AbstractCommand.cc: Call resetUrl() when DlRetryEx is caught.
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
* src/Request.cc
|
|
* test/HttpHeaderTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
2008-07-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed help text for --load-cookie option.
|
|
* doc/aria2c.1.txt
|
|
* src/usage_text.h
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Regenerated test/Makefile.in to remove stale ChangeLog.
|
|
* test/Makefile.in
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated po files.
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.0b
|
|
* configure.ac
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Externalize messages.
|
|
* src/RequestGroupMan.cc
|
|
* src/message.h: Added MSG_SIGNATURE_SAVED, MSG_SIGNATURE_NOT_SAVED.
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use File::exists() instead of File::isFile() to allow non-regular file
|
|
such as block special files.
|
|
* src/AbstractDiskWriter.cc
|
|
* src/MultiDiskWriter.cc
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Supplied missing EAI_SYSTEM. Thanks ggknauf for the patch.
|
|
* src/gai_strerror.h
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error. Thanks gknauf for the patch.
|
|
* src/asctime_r.c
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included asctime_r.h from a2time.h.
|
|
* src/a2time.h
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added a message "aria2 doesn't verify signature" to log message when
|
|
signature file is saved.
|
|
* src/RequestGroupMan.cc
|
|
|
|
2008-07-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to save signature when download is completed if
|
|
signature is available. The filename of signature file is the path to
|
|
download file followed by ".sig". If it already exists, then signature
|
|
will not be saved.
|
|
* src/RequestGroupMan.cc
|
|
* src/Signature.cc
|
|
* test/SignatureTest.cc
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated the descriptions for --bt-seed-unverified.
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Renamed --bt-seed option as --bt-seed-unverified so that it makes clear
|
|
that this is not going to verify files using piece hashes.
|
|
* src/HelpItemFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroup.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to retrieve signature from Metalink file.
|
|
A retrieved signature is stored in Signature class and it is held by
|
|
DownloadContext class. Note that aria2 doesn't verify signature.
|
|
* src/DownloadContext.cc
|
|
* src/DownloadContext.h
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/MetalinkEntry.cc
|
|
* src/MetalinkEntry.h
|
|
* src/MetalinkParserController.cc
|
|
* src/MetalinkParserController.h
|
|
* src/MetalinkParserStateMachine.cc
|
|
* src/MetalinkParserStateMachine.h
|
|
* src/Signature.cc
|
|
* src/Signature.h
|
|
* src/SignatureMetalinkParserState.cc
|
|
* src/SignatureMetalinkParserState.h
|
|
* src/VerificationMetalinkParserState.cc
|
|
* src/VerificationMetalinkParserState.h
|
|
* test/Metalink2RequestGroupTest.cc
|
|
* test/MetalinkParserControllerTest.cc
|
|
* test/MetalinkProcessorTest.cc
|
|
* test/test.xml
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Close DiskAdaptor after renaming file.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Corrected indentation
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved the calls of std::ios::exceptions() inside of try-catch block
|
|
because if an error occurred in constructor of std::fstream, then
|
|
exception is thrown immediately when std::ios::exceptions() is called
|
|
which results unhandled exception and aria2c aborts.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the test for the previous change in DefaultBtContext.cc
|
|
* test/DefaultBtContextTest.cc
|
|
|
|
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that causes infinite loop when the number of pieces are
|
|
fewer than allowed fast set size which is 10 by default.
|
|
* src/DefaultBtContext.cc
|
|
|
|
2008-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated the descriptions for -j, -s. Added --bt-seed.
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --bt-seed option. If --bt-seed=true is given at the command-line,
|
|
aria2 seeds previously downloaded files without validating piece hashs.
|
|
* src/HelpItemFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroup.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated DESCRIPTION of man page.
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the compile error on Nexenta OS(GNU/Solaris OS).
|
|
Don't define `struct addrinfo' when __sun is defined.
|
|
* src/getaddrinfo.h
|
|
|
|
2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Introduced a2_struct_stat. It is defined as `struct _stati64' if
|
|
__MINGW32__ is defined, because under MinGW32, _stati64 is used and its
|
|
second argument is of type `struct _stati64'. Otherwise it is defined as
|
|
`struct stat'.
|
|
* src/AbstractDiskWriter.cc
|
|
* src/File.cc
|
|
* src/File.h
|
|
* src/a2io.h
|
|
|
|
2008-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the compile error in hurd-i386
|
|
See the original bug report:
|
|
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=488602
|
|
* src/a2io.h
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Code cleanup.
|
|
* src/PeerAbstractCommand.cc
|
|
* src/PeerAbstractCommand.h
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed TransferEncoding.
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadCommand.h
|
|
* src/HttpResponseCommand.cc
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated po files.
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten ChunkedEncoding class as ChunkedDecoder class.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/ChunkedDecoder.cc
|
|
* src/ChunkedDecoder.h
|
|
* src/ChunkedEncoding.cc: Removed
|
|
* src/ChunkedEncoding.h: Removed
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadCommand.h
|
|
* src/HttpDownloadCommand.cc
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponse.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.h
|
|
* src/Makefile.am
|
|
* src/TransferEncoding.h: Removed
|
|
* test/ChunkedDecoderTest.cc
|
|
* test/ChunkedEncodingTest.cc: Removed
|
|
* test/HttpResponseTest.cc
|
|
* test/Makefile.am
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use append instead of insert.
|
|
* src/GZipDecoder.cc
|
|
|
|
2008-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated doc
|
|
* src/Decoder.h
|
|
|
|
2008-06-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated usage text for -s option.
|
|
* src/usage_text.h
|
|
|
|
2008-06-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that UTF-8 encoded URL is not URL-encoded properly.
|
|
* src/Request.cc
|
|
|
|
2008-06-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Cleaned up configure.ac.
|
|
* configure.ac
|
|
|
|
2008-06-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use ARIA2_ARG_WITH and ARIA2_ARG_ENABLE instead of AC_ARG_WITH and
|
|
AC_ARG_ENABLE.
|
|
* configure.ac
|
|
|
|
2008-06-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added gzip, deflate decoding support in HTTP using libz. If compiled
|
|
with this feature, aria2 sends "Accept-Encoding: deflate, gzip" header
|
|
to a HTTP server. If a server returns "Content-Encoding: gzip" or
|
|
"Content-Encoding: deflate" then, aria2 decodes the response body on the
|
|
fly and writes decoded data to a local disk.
|
|
* README
|
|
* README.html
|
|
* configure.ac
|
|
* m4/aria2_arg.m4: Added ARIA2_ARG_WITH and ARIA2_ARG_ENABLE, they are
|
|
wrapper function for AC_ARG_WITH and AC_ARG_ENABLE respectively.
|
|
* m4/libz.m4
|
|
* src/Decoder.h
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadCommand.h
|
|
* src/Exception.h
|
|
* src/GZipDecoder.cc
|
|
* src/GZipDecoder.h
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponse.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/Makefile.am
|
|
* test/GZipDecoderTest.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/Makefile.am
|
|
* test/Makefile.in
|
|
* test/gzip_decode_test.gz
|
|
|
|
2008-06-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Clarified usage of -j option.
|
|
* src/usage_text.h
|
|
|
|
2008-06-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Disabled getting size from the response of RETR.
|
|
If SIZE command failed, then disable resuming and segmented downloading.
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
|
|
2008-06-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use digits to find first byte of file size, which makes the intention
|
|
of the code clearer.
|
|
* src/FtpConnection.cc
|
|
|
|
Don't call validateTotalLength() when size is 0.
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
2008-06-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated po files.
|
|
* po/aria2c.pot
|
|
* po/*.gmo
|
|
* po/*.po
|
|
|
|
2008-06-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Clarified usage text for --split option.
|
|
* src/usage_text.h
|
|
|
|
2008-06-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.15.0dev. "dev" means "development"
|
|
version, which means I started the development of the next release!
|
|
* src/configure.ac
|
|
|
|
2008-06-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If FTP server returns negative response with REST raw command and
|
|
requested range is not 0, throw exception. If requested range is 0,
|
|
continue download a file from 0 byte.
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
|
|
2008-06-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Supported FTP server which don't recognize SIZE raw command.
|
|
If SIZE raw command is failed, aria2 will try to get file size
|
|
from the response of RETR raw command. If both attempts are failed,
|
|
then resuming and segmented downloading are disabled.
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
|
|
2008-06-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.14.0+1
|
|
|
|
2008-06-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.14.0+1
|
|
* src/configure.ac
|
|
|
|
2008-06-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the code that refers static member variable from non-static
|
|
context.
|
|
* src/DefaultPeerStorage.cc
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.14.0
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added build test script
|
|
* build_test.sh
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated ja.po
|
|
* src/ja.po
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.14.0
|
|
* src/configure.ac
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated ja.po and fr.po. Great thanks for french translators and
|
|
Sebastien WILLEMIJNS.
|
|
* po/fr.po
|
|
* po/ja.po
|
|
|
|
2008-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added configure option to enable/disable epoll support.
|
|
* configure.ac
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated man page.
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added missing default value '5' to the usage of --split option.
|
|
* src/HelpItemFactory.cc
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Filled up pieces based on the number of missing blocks, rather than
|
|
simplay the number of piece * block length.
|
|
* src/BtRequestFactory.h
|
|
* src/DefaultBtInteractive.cc
|
|
* src/DefaultBtInteractive.h
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/DefaultBtRequestFactory.h
|
|
* src/Piece.cc
|
|
* src/Piece.h
|
|
* test/BitfieldManTest.cc
|
|
* test/DefaultBtRequestFactoryTest.cc
|
|
* test/MockBtRequestFactory.h
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made _epEvents a member variable.
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Cancel download if http redirect is bounded more than 20 times.
|
|
* src/AbstractCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
* src/Request.cc
|
|
* src/Request.h
|
|
* test/RequestTest.cc
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed unhandled exception(removed keyword `new').
|
|
* src/SocketCore.cc (initEPOLL)
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed visit(const MetaEntry*)
|
|
* src/MetaEntryVisitor.h:
|
|
Added visit(const Data*),visit(const Dictionary*),visit(const List*)
|
|
and made them virtual.
|
|
* src/BencodeVisitor.h
|
|
* src/BencodeVisitor.cc
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated po files.
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2008-06-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Moved the call setWriteCheckSocket inside the previous clause to reduce
|
|
the number of socket to watch out.
|
|
* src/PeerInteractionCommand.cc
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
When there is not enough space in disk when writing a chunk of data,
|
|
aria2 now prints the message to the console to warn user and aborts
|
|
its download. Not all downloads are canceled because some downloads
|
|
may use another disk or partition. BUG#1640332
|
|
* src/AbstractDiskWriter.cc
|
|
* src/PeerAbstractCommand.cc
|
|
* src/PeerAbstractCommand.h: Added onFailure() function for override.
|
|
* src/PeerInteractionCommand.cc: In onFailure(), call RequestGroup::
|
|
setHaltRequested(true) to cancel download.
|
|
* src/PeerInteractionCommand.h
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-5.patch, which changes the type of
|
|
socket from int to sock_t as sockets are unsigned in Windows.
|
|
For AsyncNameResolver, DownloadEngine, I did additional modification
|
|
for the portion of the code changed according to epoll support.
|
|
I defined sock_t in a2netcompat.h to use sock_t without including
|
|
SocketCore.h.
|
|
* src/AsyncNameResolver.cc
|
|
* src/AsyncNameResolver.h
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
* src/SocketCore.cc
|
|
* src/SocketCore.h
|
|
* src/a2netcompat.h
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-4.patch. With this change, all
|
|
changes in the patch were applied.
|
|
* test/DHTConnectionImplTest.cc: Fixed unit test error in MinGW.
|
|
* test/DefaultPieceStorageTest.cc: Fixed unit test error in MinGW.
|
|
* test/PeerMessageUtilTest.cc: Fixed unit test error in MinGW.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-4.patch. In this change,
|
|
a2io.h and common.h were modified.
|
|
* src/a2io.h: Changed seek/stat/tell calls to use 64 bit versions in
|
|
MinGW.
|
|
* src/common.h: Changed off_t to 64 bit in MinGW.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-4.patch. In this commit,
|
|
only a2netcompat.h is modified.
|
|
* src/a2netcompat.h: Removed unused getaddrinfo related #define
|
|
directives.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-4.patch. In this commit,
|
|
only gai_strerror.h is modified.
|
|
* src/gai_strerror.h: Fixed gai_strerror() function to report all
|
|
winsock errors in MinGW.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-4.patch. In this commit, only the
|
|
follow sources are applied.
|
|
* src/Platform.h: I removed HAVE_WINSOCK2_H directive from Platform.h.
|
|
* src/Platform.cc: Moved common setup/teardown code to Platform class.
|
|
I moved #endif // HAVE_WINSOCK2_H to the front of #include "DlAbortEx.h"
|
|
I included locale.h from Platform.cc.
|
|
* src/main.cc: Moved common setup/teardown code to Platform class.
|
|
* test/AllTest.cc: Use Platform class.
|
|
Set locale to C in AllTest.cc to prevent the messages to be localized.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw-3.patch.
|
|
* test/HttpHeaderTest.cc: Casted to off_t where it should.
|
|
* test/HttpRequestTest.cc: Casted to off_t where it should.
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's aria2-0.13.2+1-mingw.patch and
|
|
aria2-0.13.2+1-mingw-2.patch.
|
|
* src/ConsoleStatCalc.cc: Added HAVE_TERMIOUS_H directive for the
|
|
systems which don't have termious.h. I moved the directive inside of
|
|
if(isTTY) { ... clause so that line is wiped out without termious.h.
|
|
I also removed HAVE_ASCTIME_R clause because asctime_r is provided
|
|
anyway.
|
|
* src/asctime_r.h
|
|
* src/asctime_r.c: Added for the systems don't have asctime_r function.
|
|
I added 2nd argument to the prototype declaration.
|
|
* src/StringFormat.cc: Get rid of vasprintf.
|
|
* src/getaddrinfo.h: Fixed constants.
|
|
* configure.ac: Added the check for asctime_r function.
|
|
* src/Makefile.am: Added conditional based on HAVE_ASCTIME_R
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added writable test for Socket when the sending message is in progress.
|
|
Usually the sending message is piece message. Without wriable check,
|
|
upload latency is dropped to more than 1sec.
|
|
* src/PeerInteractionCommand.cc
|
|
|
|
2008-06-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Create only requested files and files which shares a piece with
|
|
requested file in multi-torrent downloads. Directory structures are
|
|
also created in the same rule.
|
|
MultiDiskAdaptor::fileExists() now uses FileEntry instead of
|
|
DiskWriterEntry as in the previous implementation.
|
|
* src/MultiDiskWriter.cc
|
|
* src/MultiFileAllocationIterator.cc
|
|
* src/MultiFileAllocationIterator.h
|
|
* test/MultiFileAllocationIteratorTest.cc
|
|
|
|
2008-06-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Commented out -lprofiler
|
|
* src/Makefile.am
|
|
|
|
2008-06-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.14.0b.
|
|
* src/configure.ac
|
|
|
|
2008-06-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Actively establish connection to peers in seeding, when peer cache
|
|
is not full and max upload speed limit is not reached.
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/ActivePeerConnectionCommand.h
|
|
|
|
2008-06-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Always remove a peer from cache in DefaultPeerStorage::returnPeer(),
|
|
to make room more fleshy, recently found peers.
|
|
Peer::_badConditionStartTime is not used anymore. Consider to remove
|
|
it.
|
|
* src/DefaultPeerStorage.cc
|
|
* test/DefaultPeerStorageTest.cc
|
|
|
|
2008-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Returns cached data only when the previous receiveHandshake() is called
|
|
with peek = true.
|
|
* src/PeerConnection.cc (receiveHandshake)
|
|
* src/PeerConnection.h (receiveHandshake)
|
|
|
|
2008-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed default value of -s option from 1 to 5.
|
|
Also max value of -s option is changed from 5 to 16.
|
|
* src/HelpItemFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
|
|
2008-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed -s options behavior. Now it means the number of connections
|
|
made simultaneously in each http/ftp download.
|
|
If 1 URL is specified, the behavior is the same with old implementation.
|
|
If -s N is given and more than N URLs are specified, first N URLs are
|
|
used and remaining URLs are used for backup. If less than N URLs are
|
|
specified, some of URLs are used more than once so that totally N
|
|
connections are made simultaneously.
|
|
* src/main.cc
|
|
|
|
2008-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included missing iosfwd or ostream header.
|
|
* src/RequestGroupMan.cc
|
|
* src/TaggedItem.cc
|
|
* src/TaggedItem.h
|
|
* src/Util.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/HttpHeaderProcessor.cc: Rewritten using std::string as a buffer.
|
|
* src/HttpHeaderProcessor.h: Rewritten using std::string as a buffer.
|
|
* src/HttpConnection.cc: Included missing sstream.
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --bt-max-open-files option.
|
|
* src/DefaultPieceStorage.cc
|
|
* src/HelpItemFactory.cc
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that aria2 aborts when a path to a directory is given
|
|
in command-line.
|
|
* src/ProtocolDetector.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Limited the number files opened in each BitTorrent download. The default
|
|
value is 100. The option to change this value will be added.
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
* src/MultiFileAllocationIterator.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that HTTP downloads don't start with old libraries.
|
|
* src/HttpHeaderProcessor.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use empty() instead of size() > 0.
|
|
* src/HttpConnection.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Drop connection if the incoming peer ID is the same with localhost's
|
|
one. The previous implementation drops connection when incoming peer's
|
|
IP address is the same with localhost's one.
|
|
* src/PeerListenCommand.cc
|
|
* src/DefaultBtInteractive.cc
|
|
|
|
2008-06-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Returns cached data without checking whether socket is readable
|
|
if the cache is available.
|
|
* src/PeerConnection.cc (receiveHandshake)
|
|
|
|
2008-06-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included stdint.h
|
|
* src/common.h
|
|
|
|
2008-06-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed duplicate HAVE_GETTIMEOFDAY
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
|
|
2008-06-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use interval as a minInterval when minInterval is not supplied.
|
|
* src/DefaultBtAnnounce.cc
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made DEFAULT_ANNOUNCE_INTERVAL 120, so that if first tracker request
|
|
attempt is failed, then 2nd attempt get kicked out more quickly.
|
|
And it is now static const member of DefaultBtAnnounce.
|
|
* src/DefaultBtAnnounce.h
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Renamed BtRuntime::lessThanMinPeers() and BtRuntime::lessThanEqMinPeers.
|
|
Made MAX_PEERS and MIN_PEERS static const members of BtRuntime.
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/BtConstants.h
|
|
* src/BtRuntime.h
|
|
* src/DHTGetPeersCommand.cc
|
|
* src/DefaultBtAnnounce.cc
|
|
* src/DefaultPeerStorage.cc: Calculate maxPeerListSize based on
|
|
BtRuntime::MAX_PEERS.
|
|
* src/DefaultPeerStorage.h
|
|
* src/InitiatorMSEHandshakeCommand.cc
|
|
* src/PeerInitiateConnectionCommand.cc
|
|
* src/PeerInteractionCommand.cc
|
|
* src/PeerReceiveHandshakeCommand.cc
|
|
* src/TrackerWatcherCommand.cc
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Always Connect to _numNewConnection
|
|
* src/ActivePeerConnectionCommand.cc
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made `begin' unsigned int.
|
|
* src/GrowSegment.h
|
|
* src/Piece.cc
|
|
* src/Piece.h
|
|
* src/PiecedSegment.cc
|
|
* src/PiecedSegment.h
|
|
* src/Segment.h
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Calculate piece hash when data is arrived if the data is arrived in
|
|
order. This removes additional read operation for hash calculation.
|
|
If the data is arrived in out of order, the hash is calucated when the
|
|
piece is completed. This is the same behavior as the old implementation.
|
|
* src/BtPieceMessage.cc
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadCommand.h
|
|
* src/DownloadEngine.cc
|
|
* src/GrowSegment.cc
|
|
* src/GrowSegment.h
|
|
* src/Piece.cc
|
|
* src/Piece.h
|
|
* src/PiecedSegment.cc
|
|
* src/PiecedSegment.h
|
|
* src/Segment.h
|
|
* test/PieceTest.cc
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Try to keep the ordering of outgoing piece message.
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
(DefaultBtMessageDispatcher::sendMessages)
|
|
|
|
2008-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed busy loop when error/hup epoll events occur.
|
|
* src/AbstractCommand.cc
|
|
* src/PeerAbstractCommand.cc
|
|
|
|
2008-06-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --bt-request-peer-speed-limit option, which was a constant
|
|
SLOW_SPEED_THRESHOLD.
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/ActivePeerConnectionCommand.h
|
|
* src/BtConstants.h
|
|
* src/HelpItemFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/PeerReceiveHandshakeCommand.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-06-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed repeated call of getTopDirPath(). Instead, call it once and
|
|
cache the result.
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
(mkdir, openFile, initAndOpenFile, openExistingFile)
|
|
|
|
2008-06-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error on debian etch.
|
|
The libc6 shipped with debian etch doesn't define ULLONG_MAX properly
|
|
even if _GNU_SOURCE is defined. So define ULLONG_MAX in case when
|
|
it is undefined.
|
|
* src/Util.cc (ULLONG_MAX)
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added epoll support. Use epoll if it is available. If not, use select.
|
|
When async dns is enabled in compile time, epoll support is enabled
|
|
only when aria2 is built with c-ares. This condition statement is
|
|
defined in a2io.h.
|
|
Currently aria2 supports both c-ares and ares, but ares is maintained
|
|
for quite a while and debian already has c-ares package, ares support
|
|
will be dropped in the future version.
|
|
* configure.ac
|
|
* src/AbstractCommand.cc
|
|
* src/AsyncNameResolver.cc
|
|
* src/AsyncNameResolver.h
|
|
* src/Command.cc
|
|
* src/Command.h
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
* src/PeerAbstractCommand.cc
|
|
* src/SocketCore.cc
|
|
* src/SocketCore.h
|
|
* src/a2io.h
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* test/MetalinkEntryTest.cc: Added missing `defined' keyword to #if
|
|
directive.
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Do not do write operation to /dev/null file.
|
|
* src/LogFactory.cc
|
|
* src/SimpleLogger.cc
|
|
|
|
Replaced vasprintf with vsnprintf
|
|
* src/SimpleLogger.cc (SimpleLogger::writeLog)
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/BtRequestMessage.cc
|
|
(BtRequestMessage::onQueue): Given piece to RequestSlot. This is a fix
|
|
for segmentation fault caused by previous commit.
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reduced the usage of gettimeofday().
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
(DefaultBtMessageDispatcher::checkRequestSlotAndDoNecessaryThing)
|
|
(class FindStaleRequestSlot, class ProcessStaleRequestSlot)
|
|
* src/RequestSlot.cc
|
|
* src/RequestSlot.h
|
|
(RequestSlot::isTimeout)
|
|
|
|
Made RequestSlot have a reference to Piece object to avoid find
|
|
Piece repeatedly.
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
(class FindStaleRequestSlot, class ProcessStaleRequestSlot)
|
|
* src/RequestSlot.cc
|
|
* src/RequestSlot.h
|
|
(RequestSlot::getPiece)
|
|
* test/DefaultBtMessageDispatcherTest.cc
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/TimeA2.cc
|
|
* src/TimeA2.h
|
|
(Time::difference): New function.
|
|
(Time::elapsed): Done optimization.
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/HelpItemFactory.cc: Added missing `defined' keyword to #if
|
|
directive.
|
|
|
|
2008-05-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/option_processing.cc: Added missing `defined' keyword to #if
|
|
directive.
|
|
|
|
2008-05-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.2+1
|
|
* src/configure.ac
|
|
|
|
2008-05-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Refactored broken outstanding piece handling.
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/Piece.cc
|
|
* src/Piece.h
|
|
|
|
2008-05-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error on Mac OS X 10.3.9. This error was caused by the
|
|
name collision of static variable and predefined macro.
|
|
* src/BtContext.cc
|
|
* src/BtContext.h
|
|
* src/CookieBoxFactory.cc
|
|
* src/CookieBoxFactory.h
|
|
* src/CookieParser.cc
|
|
* src/CookieParser.h
|
|
* src/DefaultBtContext.cc
|
|
|
|
2008-05-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/RequestGroup.cc
|
|
(RequestGroup::createInitialCommand): Use empty() instead of size().
|
|
|
|
2008-05-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.13.2
|
|
|
|
2008-05-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated fr.po(thanks to Sebastien) and ja.po. ThanksDone make update-po
|
|
* po/fr.po
|
|
* po/ja.po
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2008-05-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.2
|
|
* src/configure.ac
|
|
|
|
2008-05-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Refactord.
|
|
* src/RequestGroupMan.cc
|
|
(removeStoppedGroup)
|
|
(fillRequestGroupFromReserver)
|
|
|
|
2008-05-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error on Ubuntu.
|
|
* src/BtPieceMessage.cc
|
|
* src/MessageDigestHelper.cc
|
|
* src/Util.cc
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error when configured with --disable-bittorrent
|
|
* test/DownloadHandlerFactoryTest.cc
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Done make update-po
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.2rc.
|
|
* src/configure.ac
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made option name bold. Updated SYNOPSIS to make it more readable.
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
* src/version_usage.cc
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Refactored. Use std::string instead of size and char*.
|
|
* Data.cc
|
|
* Data.h
|
|
* test/Data.cc
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added trimSelf(). Rewritten trim() to use trimSelf().
|
|
* Util.cc
|
|
* Util.h
|
|
|
|
2008-05-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/ChunkChecksum.h (getChecksum): Return const reference.
|
|
|
|
2008-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error when configured with --disable-metalink.
|
|
Also moved test/DownloadHandlerFactoryTest.cc to SRC in Makefile.am.
|
|
* test/FeatureConfigTest.cc
|
|
* test/DownloadHandlerFactoryTest.cc
|
|
|
|
2008-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error when configured with --without-gnutls
|
|
--without-openssl
|
|
* src/main.cc
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* test/SegmentManTest.cc
|
|
|
|
2008-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error with OpenSSL.
|
|
* src/IteratableChunkChecksumValidator.cc
|
|
* src/LibsslDHKeyExchange.h
|
|
* src/MessageDigestHelper.cc
|
|
|
|
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Revert the default value of --max-concurrent-downloads to 5.
|
|
Revert the default value of --metalink-servers to 5.
|
|
Man pages was also updated.
|
|
* src/option_processing.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1
|
|
|
|
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Returns const reference:
|
|
DownloadContext::getPieceHash, DownloadContext::getName,
|
|
DownloadContext::getPieceHashAlgo, DownloadContext::getDir,
|
|
BtContext::getInfoHashAsString,
|
|
* src/BtContext.h
|
|
* src/DefaultBtContext.cc
|
|
* src/DefaultBtContext.h
|
|
* src/DownloadContext.h
|
|
* src/SingleFileDownloadContext.h
|
|
* test/MockBtContext.h
|
|
|
|
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/RequestGroup.h (getDir): Removed.
|
|
|
|
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Returns const reference. The internal urlencode function was optimized
|
|
a little bit.
|
|
* src/Request.cc
|
|
* src/Request.h
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
|
|
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined option name and possible values as std::string to reduce
|
|
temporary string object creation in runtime.
|
|
* src/HelpItemFactory.cc
|
|
* src/LogFactory.cc
|
|
* src/Option.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.cc
|
|
* src/prefs.h
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Return const reference.
|
|
* src/DownloadHandlerConstants.cc
|
|
* src/DownloadHandlerConstants.h
|
|
(getMetalinkExtensions)
|
|
(getMetalinkContentTypes)
|
|
(getBtExtensions)
|
|
(getBtContentTypes)
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/HttpHeader.cc (get): Rewritten.
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Make HttpHeader::getFirst(...) return const reference.
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use Option::getAsBool(...) instead of Option::get(...) and compare
|
|
it with V_TRUE.
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DownloadCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HttpRequest.cc
|
|
* src/InitiateConnectionCommand.cc
|
|
* src/RequestGroup.cc
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made Option::get(...) return const reference of std::string.
|
|
* src/Option.cc
|
|
* src/Option.h
|
|
|
|
2008-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Replaced std:copy with insert.
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DownloadEngineFactory.cc
|
|
* src/RequestGroup.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included SocketCore.h to fix compiler warning.
|
|
* src/InitiateConnectionCommand.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Put piece selection strategy algorithm to RarestPieceSelector class,
|
|
Added a switch to choose whether randomized selection so that unit
|
|
tests emit same results in, possibly, win32.
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/RarestPieceSelector.cc
|
|
* src/RarestPieceSelector.h
|
|
* test/DefaultPieceStorageTest.cc
|
|
* test/RarestPieceSelectorTest.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Don't pool connection if HTTP proxy is enabled.
|
|
* src/FtpFinishDownloadCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Don't add closed socket to DownloadEngine::addSocketForReadCheck()
|
|
* src/AbstractCommand.cc
|
|
* src/AbstractCommand.h
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
* src/InitiateConnectionCommandFactory.cc
|
|
* src/PeerAbstractCommand.cc
|
|
* src/PeerAbstractCommand.h
|
|
* src/PeerInitiateConnectionCommand.cc
|
|
* src/TrackerWatcherCommand.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Sort RequestSlot in ascending order and manipulate them using
|
|
lower_bound.
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
* src/DefaultBtMessageDispatcher.h
|
|
(getMessageQueue): Added const qualifier.
|
|
(getRequestSlots): Added const qualifier.
|
|
(sendMessages): Use empty() instead of size().
|
|
(doCancelSendingPieceAction): Use HandleEvent object.
|
|
(doAbortOutstandingRequestAction): Rewritten.
|
|
(doChokedAction): Rewritten.
|
|
(checkRequestSlotAndDoNecessaryThing): Rewritten.
|
|
(isOutstandingRequest): Rewritten.
|
|
(getOutstandingRequest): Rewritten.
|
|
(removeOutstandingRequest): Rewritten.
|
|
(addOutstandingRequest): Rewritten.
|
|
* src/RequestSlot.cc
|
|
* src/RequestSlot.h
|
|
(operator=): Rewritten.
|
|
(operator!=): New function.
|
|
(operator<): New function.
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/DefaultBtRequestFactory.cc
|
|
(doChokedAction): Rewritten.
|
|
(removeCompletedPiece): Rewritten.
|
|
(removeTargetPiece): Rewritten.
|
|
(createRequestMessages): Added the debug log.
|
|
(createRequestMessagesOnEndGame: Added the debug log.
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the debug log message.
|
|
* src/BtPieceMessage.cc (doReceivedAction)
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Sorted DHTPeerAnnounceEntry in a ascending order of info hash and
|
|
used lower_bound to process them rather than linear search.
|
|
* src/DHTPeerAnnounceStorage.cc
|
|
|
|
2008-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-05-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed unnecessary sorting
|
|
* src/DefaultPieceStorage (DefaultPieceStorage)
|
|
|
|
2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten the portion of the code that mangaes allowed fast indexes.
|
|
* src/PeerSessionResource.cc
|
|
* src/PeerSessionResource.h
|
|
|
|
2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed the invalid string including '\r' from ru.po and
|
|
did make update-po.
|
|
|
|
2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --log-level and --summary-interval to man page.
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1
|
|
|
|
2008-05-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --log-level option to specify log level. Log messages under
|
|
the specified level are not output. Default value is `debug'.
|
|
* src/HelpItemFactory.cc
|
|
* src/LogFactory.cc
|
|
* src/LogFactory.h
|
|
* src/Logger.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/SimpleLogger.cc
|
|
* src/SimpleLogger.h
|
|
* src/main.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Print download progress summary of all parallel downloads in specified
|
|
interval, default 60 secs. While aria2 could download several files
|
|
in parallel (see -j option), it displayed just first download progress,
|
|
and the other downloads are hidden from the users. This new feature
|
|
prints all downloads currently in-progress to the console so that you
|
|
can check the status of all downloads. The interval can be adjusted
|
|
by --summary-interval option.
|
|
|
|
The progress readout is now cut so that all fits in the one line of
|
|
console.
|
|
* src/ConsoleStatCalc.cc
|
|
* src/ConsoleStatCalc.h
|
|
* src/HelpItemFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
* src/main.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call updateFdSet() to initialize rfdset, wfdset fdmax.
|
|
* src/DownloadEngine.cc (DownloadEngine)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use free() to deallocate memory for _buffer if HAVE_POSIX_MEMALIGN is
|
|
defined.
|
|
* src/SingleFileAllocationIterator.cc (~SingleFileAllocationIterator)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use erase+lower_bound+insert instead of sort.
|
|
* src/DefaultPieceStorage.cc (addPieceStats)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use A2STR::SHARP_C and A2STR::EQUAL_C.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/OptionParser.cc (parse)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined fake filename `[tracker.announce]' as static const std::string.
|
|
* src/TrackerWatcherCommand.cc (createRequestGroup)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined default filename `index.html' as static const std::string
|
|
* src/SingleFileDownloadContext.cc
|
|
* src/SingleFileDownloadContext.h
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined "[MEMORY]" as static const std::string.
|
|
* src/MemoryBufferPreDownloadHandler.cc (execute)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined control file's version number as static const std::string.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultBtProgressInfoFile.h
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use Request::METHOD_GET
|
|
* src/RequestGroup.cc (createNextCommandWithAdj)
|
|
|
|
2008-05-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined "OK", "ERR", "INPR" as static const std::string
|
|
* src/RequestGroupMan.cc (showDownloadResults)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined default client used in extended handshake as static const
|
|
std::string
|
|
* src/DefaultBtInteractive.cc (addHandshakeExtendedMessageToQueue)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined AUTH_HEADER, PROXY_AUTH_HEADER as static const std::string
|
|
* src/HttpConnection.cc (eraseConfidentialInfo)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined default ftp user and password as static const std::string
|
|
* src/AuthConfigFactory.cc
|
|
* src/AuthConfigFactory.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined strings used in netrc as static const std::string
|
|
* src/Netrc.cc
|
|
* src/Netrc.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined HTTP status as static const std::string
|
|
* src/AbstractProxyResponseCommand.cc
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined "\r\n", "A", "I" as static const std::string
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/FtpConnection.cc
|
|
* src/FtpConnection.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added COLON_C(".") and used it in Request::parseUrl()
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/Request.cc (parseUrl)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed the type of padName from `const std::string&' to `const char*'.
|
|
* src/MSEHandshake.cc (verifyPadLength)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined "sha1" as static const std::string.
|
|
* src/MetalinkParserController.cc
|
|
* src/MetalinkParserController.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined message digest algorithm name as static const std::string
|
|
* src/DHTTokenTracker.cc
|
|
* src/DHTUtil.cc
|
|
* src/DefaultBtContext.cc
|
|
* src/MSEHandshake.cc
|
|
* src/MessageDigestHelper.cc
|
|
* src/Peer.cc
|
|
* src/messageDigest.cc
|
|
* src/messageDigest.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literals used in SAX parser static const std::string.
|
|
* src/FileMetalinkParserState.cc
|
|
* src/FileMetalinkParserState.h
|
|
* src/FilesMetalinkParserState.cc
|
|
* src/FilesMetalinkParserState.h
|
|
* src/InitialMetalinkParserState.cc
|
|
* src/InitialMetalinkParserState.h
|
|
* src/MetalinkMetalinkParserState.cc
|
|
* src/MetalinkMetalinkParserState.h
|
|
* src/PiecesMetalinkParserState.cc
|
|
* src/PiecesMetalinkParserState.h
|
|
* src/ResourcesMetalinkParserState.cc
|
|
* src/ResourcesMetalinkParserState.h
|
|
* src/VerificationMetalinkParserState.cc
|
|
* src/VerificationMetalinkParserState.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use A2STR::SLASH_C, A2STR::DOT_C instead of "/", "." respectively.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/File.cc
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Defined static const std::string IP("ip"), PORT("port") and use them
|
|
instead of string literals.
|
|
* src/DefaultPeerListProcessor.cc
|
|
* src/DefaultPeerListProcessor.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literals for torrent file processing static const
|
|
std::string.
|
|
* src/BtContext.cc
|
|
* src/BtContext.h
|
|
* src/DefaultBtContext.cc
|
|
* src/DefaultBtContext.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literal for tracker response static const std::string
|
|
* src/BtAnnounce.cc
|
|
* src/BtAnnounce.h
|
|
* src/DefaultBtAnnounce.cc
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use DHTMessage::T instead of "t".
|
|
* src/DHTMessageTracker.cc (messageArrived)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made keyName static const. Made trimmed charset static const
|
|
std::string.
|
|
* src/Util.cc (getContentDispositionFilename)
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made USER_AGENT const. Made "/" static const std::string.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string listeral to static const std::string:
|
|
"Content-Range", "Content-Length"
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string listeral to static const std::string.
|
|
* src/HttpConnection.cc
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpResponse.cc
|
|
|
|
2008-05-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string listeral to static const std::string.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/SimpleLogger.cc
|
|
* src/SimpleLogger.h
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literal to static const std::string.
|
|
Rewritten CookieParser::setField.
|
|
* src/A2STR.cc
|
|
* src/A2STR.h
|
|
* src/CookieBoxFactory.cc
|
|
* src/CookieBoxFactory.h
|
|
* src/CookieParser.cc
|
|
* src/CookieParser.h
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literal to static const std::string
|
|
* src/DHTAbstractMessage.cc
|
|
* src/DHTAnnouncePeerMessage.cc
|
|
* src/DHTAnnouncePeerMessage.h
|
|
* src/DHTAnnouncePeerReplyMessage.cc
|
|
* src/DHTAnnouncePeerReplyMessage.h
|
|
* src/DHTFindNodeMessage.cc
|
|
* src/DHTFindNodeMessage.h
|
|
* src/DHTFindNodeReplyMessage.cc
|
|
* src/DHTFindNodeReplyMessage.h
|
|
* src/DHTGetPeersMessage.cc
|
|
* src/DHTGetPeersMessage.h
|
|
* src/DHTGetPeersReplyMessage.cc
|
|
* src/DHTGetPeersReplyMessage.h
|
|
* src/DHTMessage.cc
|
|
* src/DHTMessage.h
|
|
* src/DHTMessageFactoryImpl.cc
|
|
* src/DHTMessageReceiver.cc
|
|
* src/DHTPingMessage.cc
|
|
* src/DHTPingMessage.h
|
|
* src/DHTPingReplyMessage.cc
|
|
* src/DHTPingReplyMessage.h
|
|
* src/DHTQueryMessage.cc
|
|
* src/DHTQueryMessage.h
|
|
* src/DHTResponseMessage.cc
|
|
* src/DHTResponseMessage.h
|
|
* src/DHTUnknownMessage.cc
|
|
* src/DHTUnknownMessage.h
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made string literal to static const std::string
|
|
* src/BtChokeMessage.cc (toString)
|
|
* src/BtHaveAllMessage.cc (toString)
|
|
* src/BtHaveNoneMessage.cc (toString)
|
|
* src/BtInterestedMessage.cc (toString)
|
|
* src/BtNotInterestedMessage.cc (toString)
|
|
* src/BtUnchokeMessage.cc (toString)
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Replaced "" with static const variable A2STR::NIL.
|
|
Replaced string comparison against "" with std::string::empty().
|
|
Added PROTO_* to Request class and use them as a protocol string
|
|
constant.
|
|
Made "started", "stopped", "completed" static const variable in
|
|
AnnounceList class.
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated translations. Great thanks to translators.
|
|
* po/ca.po
|
|
* po/de.po
|
|
* po/fr.po
|
|
* po/it.po
|
|
* po/ja.po
|
|
* po/ru.po
|
|
* po/zh_CN.po
|
|
|
|
2008-05-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated man page; categorized options and fixed typo.
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed const ref
|
|
* src/MetalinkEntry.cc (AddProtocolPreference)
|
|
* src/RequestGroup.cc (FindServerHostByHostname)
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten Accept-Features handling.
|
|
* src/HttpRequestCommand.cc (createHttpRequest)
|
|
* src/a2functional.h
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
DHTAbstractNodeLookupTask::toEntries
|
|
* src/DHTAbstractNodeLookupTask.cc
|
|
* src/DHTAbstractNodeLookupTask.h
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
BtContext::computeFastSet, DefaultBtContext::extractUrlList
|
|
* src/BtContext.h
|
|
* src/DefaultBtContext.cc
|
|
* src/DefaultBtContext.h
|
|
* src/DefaultBtInteractive.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/MockBtContext.h
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
MultiFileAllocationIterator::makeDiskWriterEntries
|
|
* src/MultiFileAllocationIterator.cc
|
|
* src/MultiFileAllocationIterator.h
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method sinature:
|
|
MetalinkEntry::toFileEntry,
|
|
MetalinkHelper::query, MetalinkHelper::parseAndQuery,
|
|
Metalinker::queryEntry
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/MetalinkEntry.cc
|
|
* src/MetalinkEntry.h
|
|
* src/MetalinkHelper.cc
|
|
* src/MetalinkHelper.h
|
|
* src/Metalinker.cc
|
|
* src/Metalinker.h
|
|
* src/main.cc
|
|
* test/MetalinkHelperTest.cc
|
|
* test/MetalinkerTest.cc
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method sinature:
|
|
RequestGroup::getURIs
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* test/Metalink2RequestGroupTest.cc
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
PeerListProcessor::extractPeer
|
|
* src/CompactPeerListProcessor.cc
|
|
* src/CompactPeerListProcessor.h
|
|
* src/DefaultBtAnnounce.cc
|
|
* src/DefaultPeerListProcessor.cc
|
|
* src/DefaultPeerListProcessor.h
|
|
* src/DelegatingPeerListProcessor.cc
|
|
* src/DelegatingPeerListProcessor.h
|
|
* src/PeerListProcessor.h
|
|
* src/UTPexExtensionMessage.cc
|
|
* test/DefaultPeerListProcessorTest.cc
|
|
|
|
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
BtRequestFactory::createRequestMessages,
|
|
BtRequestFactory::createRequestMessagesOnEndGame
|
|
* src/BtRequestFactory.h
|
|
* src/DefaultBtInteractive.cc
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/DefaultBtRequestFactory.h
|
|
* test/DefaultBtRequestFactoryTest.cc
|
|
* test/MockBtRequestFactory.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
PieceStorage::getInFlightPieces
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/PieceStorage.h
|
|
* src/UnknownLengthPieceStorage.cc
|
|
* src/UnknownLengthPieceStorage.h
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* test/MockPieceStorage.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
PostDownloadHandler::getNextRequestGroups
|
|
Metalink2RequestGroup::generate
|
|
RequestGroup::postDownloadProcessing
|
|
* src/BtPostDownloadHandler.cc
|
|
* src/BtPostDownloadHandler.h
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/Metalink2RequestGroup.h
|
|
* src/MetalinkPostDownloadHandler.cc
|
|
* src/MetalinkPostDownloadHandler.h
|
|
* src/PostDownloadHandler.h
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* src/RequestGroupMan.cc
|
|
* src/main.cc
|
|
* test/BtPostDownloadHandlerTest.cc
|
|
* test/Metalink2RequestGroupTest.cc
|
|
* test/MetalinkPostDownloadHandlerTest.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten AccRequestGroup
|
|
* src/main.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten.
|
|
* src/TaggedItem.cc (toTagString)
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten Accept-Features handling.
|
|
* src/HttpRequestCommand.cc (createHttpRequest)
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten accept types handling.
|
|
* HttpRequest.cc (createRequest)
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten
|
|
* src/FeatureConfig.cc (featureSummary)
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
PeerStorage::getActivePeers
|
|
* src/DHTPeerAnnounceEntry.cc
|
|
* src/DefaultPeerStorage.cc
|
|
* src/DefaultPeerStorage.h
|
|
* src/PeerStorage.h
|
|
* test/DefaultPeerStorageTest.cc
|
|
* test/MockPeerStorage.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
DHTPeerAnnounceStorage::getPeers,
|
|
DHTPeerAnnounceEntry::getPeers
|
|
* src/DHTGetPeersMessage.cc
|
|
* src/DHTPeerAnnounceEntry.cc
|
|
* src/DHTPeerAnnounceEntry.h
|
|
* src/DHTPeerAnnounceStorage.cc
|
|
* src/DHTPeerAnnounceStorage.h
|
|
* test/DHTAnnouncePeerMessageTest.cc
|
|
* test/DHTPeerAnnounceEntryTest.cc
|
|
* test/DHTPeerAnnounceStorageTest.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
NameResolver::resolve
|
|
* src/DHTEntryPointNameResolveCommand.cc
|
|
* src/InitiateConnectionCommand.cc
|
|
* src/NameResolver.cc
|
|
* src/NameResolver.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
PieceStorage::getAdvertisedPieceIndexes
|
|
* src/DefaultBtInteractive.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/PieceStorage.h
|
|
* src/UnknownLengthPieceStorage.h
|
|
* test/MockPieceStorage.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
SegmentMan::getInFlightSegment
|
|
* src/AbstractCommand.cc
|
|
* src/SegmentMan.cc
|
|
* src/SegmentMan.h
|
|
* test/SegmentManTest.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
DHTAbstractNodeLookupTask::getNodesFromMessage
|
|
* src/DHTAbstractNodeLookupTask.cc
|
|
* src/DHTAbstractNodeLookupTask.h
|
|
* src/DHTNodeLookupTask.cc
|
|
* src/DHTNodeLookupTask.h
|
|
* src/DHTPeerLookupTask.cc
|
|
* src/DHTPeerLookupTask.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Pass std::deque<Command*> by reference to avoid unnecessary coping.
|
|
* src/AbstractCommand.cc
|
|
* src/BtCheckIntegrityEntry.cc
|
|
* src/BtCheckIntegrityEntry.h
|
|
* src/BtFileAllocationEntry.cc
|
|
* src/BtFileAllocationEntry.h
|
|
* src/BtSetup.cc
|
|
* src/BtSetup.h
|
|
* src/CheckIntegrityCommand.cc
|
|
* src/CheckIntegrityEntry.h
|
|
* src/ChecksumCheckIntegrityEntry.cc
|
|
* src/ChecksumCheckIntegrityEntry.h
|
|
* src/DHTSetup.cc
|
|
* src/DHTSetup.h
|
|
* src/DownloadEngine.cc
|
|
* src/FileAllocationCommand.cc
|
|
* src/FileAllocationEntry.h
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
* src/StreamCheckIntegrityEntry.cc
|
|
* src/StreamCheckIntegrityEntry.h
|
|
* src/StreamFileAllocationEntry.cc
|
|
* src/StreamFileAllocationEntry.h
|
|
* src/TrackerWatcherCommand.cc
|
|
* src/a2functional.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed method signature:
|
|
BNode::findClosestKNodes, BNode:: enumerateBucket,
|
|
DHTBucket::getGoodNodes,
|
|
DHTRoutingTable::getClosestKNodes, DHTRoutingTable::getBuckets
|
|
* src/BNode.cc
|
|
* src/BNode.h
|
|
* src/DHTAbstractNodeLookupTask.cc
|
|
* src/DHTAutoSaveCommand.cc
|
|
* src/DHTBucket.cc
|
|
* src/DHTBucket.h
|
|
* src/DHTBucketRefreshTask.cc
|
|
* src/DHTFindNodeMessage.cc
|
|
* src/DHTGetPeersMessage.cc
|
|
* src/DHTRoutingTable.cc
|
|
* src/DHTRoutingTable.h
|
|
* test/BNodeTest.cc
|
|
* test/DHTBucketTest.cc
|
|
* test/DHTRoutingTableTest.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
In piece selection functions, Pass std::deque<...> by reference rather
|
|
than returning it.
|
|
* src/BitfieldMan.cc
|
|
* src/BitfieldMan.h
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/Piece.cc
|
|
* src/Piece.h
|
|
* test/BitfieldManTest.cc
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented rarest piece first piece selection strategy.
|
|
* src/AbstractBtMessage.cc
|
|
* src/AbstractBtMessage.h
|
|
* src/BitfieldMan.cc
|
|
* src/BitfieldMan.h
|
|
* src/BtBitfieldMessage.cc
|
|
* src/BtHaveAllMessage.cc
|
|
* src/BtHaveMessage.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultPieceStorage.h
|
|
* src/PeerInteractionCommand.cc
|
|
* src/PieceStorage.h
|
|
* src/UnknownLengthPieceStorage.h
|
|
|
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten readData and writeData.
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/MultiDiskAdaptor.h
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Move \n out of the message "Usage: ...".
|
|
* src/version_usage.cc
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.2b.
|
|
* configure.ac
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added const qualifier to argument Exception& e.
|
|
* src/Logger.h
|
|
* src/SimpleLogger.cc
|
|
* src/SimpleLogger.h
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Pool connection when CWD, SIZE command fails.
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Renamed HttpNullDownloadCommand as HttpSkipResponseCommand
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.cc
|
|
* src/HttpSkipResponseCommand.h
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Pool connection when a server returns 4xx, 5xx responses.
|
|
* src/HttpNullDownloadCommand.cc
|
|
* src/HttpNullDownloadCommand.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponse.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponseCommand.h
|
|
* test/HttpResponseTest.cc
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Print usage when no URL is specifed or bad command-line option is
|
|
specified.
|
|
* src/HelpItemFactory.cc
|
|
* src/help_tags.h
|
|
* src/option_processing.cc
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed duplicate log message.
|
|
* src/AbstractCommand.cc (asyncResolveHostname)
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated man page: --async-dns and --ftp-reuse-connection were added.
|
|
Changed -j option's default value from 5 to 1.
|
|
Added new examples using protocol auto detection feature.
|
|
Removed -T, -M usage where it can be omitted.
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated command-line usage text, so that it tells users that they
|
|
can specify any number of torrent files and metalink files in
|
|
command-line.
|
|
* src/version_usage.cc
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed the default value of -j option to 1.
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to reuse connection in FTP and it is enabled by
|
|
default. It can be disabled by --ftp-reuse-connection=false option.
|
|
* src/Command.cc
|
|
* src/DownloadCommand.cc
|
|
* src/FtpDownloadCommand.cc
|
|
* src/FtpDownloadCommand.h
|
|
* src/FtpFinishDownloadCommand.cc
|
|
* src/FtpFinishDownloadCommand.h
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/FtpNegotiationCommand.h
|
|
* src/HelpItemFactory.cc
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call Command::transitStatus() before calling Command::execute(),
|
|
so that the status change made in execute() is not cleared.
|
|
* src/DownloadEngine.cc
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed forward declaration of SocketCore class.
|
|
* src/HttpDownloadCommand.h
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set Request::setKeepAliveHint() and Request::setPipeliningHint()
|
|
in InitiateConnectionCommandFactory. They should be set only when
|
|
the protocol is HTTP or HTTPS.
|
|
* src/InitiateConnectionCommandFactory.cc
|
|
* src/RequestGroup.cc
|
|
|
|
2008-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed infinite loop in checksum checking.
|
|
* src/IteratableChecksumValidator.cc
|
|
|
|
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set _supportsPersistentConnection to true by default.
|
|
* src/Request.cc
|
|
* src/RequestGroup.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added timeout to socket pool. The default timeout is 15 seconds,
|
|
which is the same value Apache uses.
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
|
|
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed misuse of multimap::find()
|
|
* src/HttpHeader.cc
|
|
* test/HttpHeaderTest.cc
|
|
|
|
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten name resolver. Now async DNS can be disabled by --async-dns
|
|
option.
|
|
The asynchronous DNS is not capable of IPv6 yet.
|
|
By disabling asynchronous DNS, aria2 is IPv6 enabled application, at
|
|
least for HTTP download.
|
|
* src/AbstractCommand.cc
|
|
* src/AbstractCommand.h
|
|
* src/AsyncNameResolver.cc
|
|
* src/AsyncNameResolver.h
|
|
* src/DHTEntryPointNameResolveCommand.cc
|
|
* src/DHTEntryPointNameResolveCommand.h
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
* src/FtpInitiateConnectionCommand.h
|
|
* src/HelpItemFactory.cc
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
* src/HttpInitiateConnectionCommand.h
|
|
* src/InitiateConnectionCommand.cc
|
|
* src/InitiateConnectionCommand.h
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
* src/NameResolver.cc
|
|
* src/NameResolver.h
|
|
* src/OptionHandlerFactory.cc
|
|
* src/SocketCore.cc
|
|
* src/SocketCore.h
|
|
* src/Util.cc
|
|
* src/Util.h
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated man page: --quiet, --header were added.
|
|
--metalink-servers and --enable-http-keep-alive option were updated.
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.html
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Enable HTTP keep-alive by default.
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
|
|
2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Disable http keep-alive if the remote server is not HTTP/1.1.
|
|
* src/HttpConnection.cc
|
|
|
|
2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Receive content body of 302 response so that the connection can be
|
|
reused later when http keep-alive is enabled.
|
|
* src/HttpNullDownloadCommand.cc
|
|
* src/HttpNullDownloadCommand.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponseCommand.h
|
|
|
|
2008-05-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
const SharedHandle<Request> -> const SharedHandle<Request>&
|
|
* src/FtpDowndloadCommand.cc
|
|
* src/FtpDowndloadCommand.h
|
|
* src/HttpDownloadCommand.cc
|
|
* src/HttpDownloadCommand.h
|
|
|
|
2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that the control file(.aria2 file) is not renamed
|
|
according to tryAutoFileRenaming().
|
|
tryAutoFileRenaming() was rewritten so that if both renamed file and
|
|
its control file exist, use them and continue download.
|
|
The old implementation didn't take into account of control file's
|
|
existence, so basically you couldn't continue download of renamed file.
|
|
* src/BtProgressInfoFile.h
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultBtProgressInfoFile.h
|
|
* src/NullProgressInfoFile.h
|
|
* src/RequestGroup.cc
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* test/MockBtProgressInfoFile.h
|
|
|
|
2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Change the default value of --metalink-servers option from `5' to `1'.
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
|
|
2008-05-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reimplemented transparent metalink using Accept request header.
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
* src/HttpRequestCommand.cc
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroup.h
|
|
* test/HttpRequestTest.cc
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.2a
|
|
* configure.ac
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated configure.ac using the result of autoscan.
|
|
* configure.ac
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error without gcrypt/openssl.
|
|
* src/DownloadCommand.cc
|
|
* src/DownloadCommand.h
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reorganized version information so that it can be displayed in a
|
|
standard terminal screen without scrolling.
|
|
Removed http, ftp from Configuration section, because they are always
|
|
enabled.
|
|
* src/FeatureConfig.cc
|
|
* src/FeatureConfig.h
|
|
* src/main.cc
|
|
* src/messageDigest.cc
|
|
* src/messageDigest.h
|
|
* src/version_usage.cc
|
|
* test/FeatureConfigTest.cc
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Masked user ID in log.
|
|
* src/FtpConnection.cc (sendUser)
|
|
|
|
2008-04-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed query part from filename in HTTP download. The query part means
|
|
the substring after "?" in URL. Firefox seems do the same thing.
|
|
A query part is sometimes very long and not suitable to filename,
|
|
so I think it is better to remove it from filename.
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h
|
|
* src/Request.cc
|
|
* src/Request.h
|
|
* test/HttpRequestTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
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.
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now auto protocol detection is enabled without -Z option.
|
|
But there is a important difference between with/without -Z optoin.
|
|
|
|
For example, if you type:
|
|
aria2c http://host/file file1.torrent file2.metalink http://mirror/file
|
|
then, aria2 interprets there are 3 request groups:
|
|
(1) http://host/file, http://mirror/file <-- multi-source download
|
|
(2) file1.torrent
|
|
(3) file2.metalink
|
|
|
|
On the other hand, if you invoke above command with -Z option, it is
|
|
interpreted as 4 request groups:
|
|
(1) http://host/file
|
|
(2) file1.torrent
|
|
(3) file2.metalink
|
|
(4) http://mirror/file
|
|
|
|
I think usually user don't mix multi-source URLs and torrent files, so
|
|
there is no big problem here.
|
|
* src/main.cc
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that causes segmentaion fault when reading XML containing
|
|
unescapsed character like '&'.
|
|
Also a modification was made which avoids adding unnecessary
|
|
characters stack and appending unused string.
|
|
* src/ExpatMetalinkProcessor.cc
|
|
* src/FileMetalinkParserState.h
|
|
* src/FilesMetalinkParserState.h
|
|
* src/FinMetalinkParserState.h
|
|
* src/HashMetalinkParserState.h
|
|
* src/InitialMetalinkParserState.h
|
|
* src/LanguageMetalinkParserState.h
|
|
* src/MetalinkMetalinkParserState.h
|
|
* src/MetalinkParserState.h
|
|
* src/MetalinkParserStateMachine.cc
|
|
* src/MetalinkParserStateMachine.h
|
|
* src/OSMetalinkParserState.h
|
|
* src/PieceHashMetalinkParserState.h
|
|
* src/PiecesMetalinkParserState.h
|
|
* src/ResourcesMetalinkParserState.h
|
|
* src/SizeMetalinkParserState.h
|
|
* src/SkipTagMetalinkParserState.h
|
|
* src/URLMetalinkParserState.h
|
|
* src/VerificationMetalinkParserState.h
|
|
* src/VersionMetalinkParserState.h
|
|
* src/XML2SAXMetalinkProcessor.cc
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added StringFormat class, which internally calls vasprintf.
|
|
operator<< is defined for this class, so it can be used with iostream
|
|
classes nicely. SimpleLogger and following functions are rewritten
|
|
using StringFormat class.
|
|
Besides, now Logger class's methods are non-const, many classes
|
|
that has a const Logger* as a member variable are modified to remove
|
|
const qualifier from the variable declaration.
|
|
* src/HelpItemFactory.cc
|
|
* src/Request.cc
|
|
* src/SimpleLogger.cc
|
|
* src/StringFormat.cc
|
|
* src/StringFormat.h
|
|
* src/Util.cc
|
|
* src/option_processing.cc
|
|
* src/version_usage.cc
|
|
* test/StringFormatTest.cc
|
|
* src/*.h: The classes that has const Logger* as a member variable.
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Log error in AccRequestGroup when reading BitTorrent/Metalink file is
|
|
failed. Also fixed memory link when exception is thrown there.
|
|
* src/main.cc (AccRequestGroup)
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added build-in "Accept-Features" support. For now only "metalink" is
|
|
used in this header field.
|
|
This "metalink" value is removed from the list when connecting URLs
|
|
fed by metalink file to avoid loop in "transparent" metlaink.
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequest.h: Renamed _userHeaders as _headers. Accept-Features
|
|
header is also held in this variable. Also renamed setUserHeaders as
|
|
addHeader and it was rewritten to add header not just to clear the old
|
|
value.
|
|
* src/HttpRequestCommand.cc
|
|
* src/Metalink2RequestGroup.cc: Added the code to remove "metalink"
|
|
from "Accept-Features" list.
|
|
* src/RequestGroup.cc: Added "metalink" to "Accept-Features" by
|
|
default.
|
|
* src/RequestGroup.h
|
|
* src/TaggedItem.cc: Moved Concat class to a2functional.h.
|
|
* src/a2functional.h: Included <string> because Concat class depends on
|
|
it.
|
|
* test/HttpRequestTest.cc
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added comment
|
|
* src/RequestGroup.cc (createNextCommand)
|
|
|
|
2008-04-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Capitalized METHOD_GET and METHOD_HEAD
|
|
* src/Request.cc
|
|
|
|
2008-04-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added getDownloadResults() method
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroupMan.h
|
|
|
|
2008-04-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that aria2 exits when commands is empty() but
|
|
_routineCommands are not.
|
|
* src/DownloadEngine.cc
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use the default value pulled from Option object in HelpItemFactory.
|
|
except options whose defualt value is embedded in a usage text.
|
|
* src/HelpItemFactory.cc
|
|
* src/HelpItemFactory.h
|
|
* src/option_processing.cc
|
|
* src/version_usage.cc
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --quiet option to make aria2 quiet (no console output).
|
|
--quiet option is tagged with ADVANCED.
|
|
* src/HelpItemFactory.cc
|
|
* src/LogFactory.cc
|
|
* src/LogFactory.h
|
|
* src/MultiUrlRequestInfo.cc
|
|
* src/MultiUrlRequestInfo.h
|
|
* src/NullStatCalc.h: New class. This class prints nothing.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/main.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Add HTTP tag to --header option. Removed ADVANCED tag instead.
|
|
* src/HelpItemFactory.cc (createHelpItems):
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error in ExpatMetalinkProcessor.cc
|
|
* src/ExpatMetalinkProcessor.cc
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reuse socket if the origin server supports HTTP keep-alive and
|
|
--enable-http-keep-alive or --enable-http-pipelining is given.
|
|
The current implementation doesn't reuse the connections established
|
|
against proxy server.
|
|
|
|
* src/AbstractCommand.cc
|
|
* src/DownloadEngine.cc
|
|
* src/DownloadEngine.h
|
|
* src/HttpDownloadCommand.cc
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
* src/HttpResponseCommand.cc
|
|
|
|
2008-04-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten HTTP keep-alive and pipelining routine.
|
|
* src/AbstractCommand.cc
|
|
* src/HttpConnection.cc
|
|
* src/HttpDownloadCommand.cc
|
|
* src/HttpRequest.cc
|
|
* src/HttpRequestCommand.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/Request.cc
|
|
* src/Request.h
|
|
* src/RequestGroup.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added missing setUserHeaders call
|
|
* src/HttpRequestCommand.cc
|
|
|
|
2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Call FileAllocationMan::nextFileAllocationEntryExists() first.
|
|
Calling FileAllocationMan::isFileAllocationBeingExecuted() is somwhat
|
|
waste of time because it is more likey false.
|
|
* src/FileAllocationDispatcherCommand.cc (execute)
|
|
|
|
2008-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now HTTP status and version are a member variable of HttpHeader.
|
|
HTTP status is processed as a string, not integer.
|
|
* src/AbstractProxyResponseCommand.cc
|
|
* src/HttpConnection.cc
|
|
* src/HttpHeader.cc
|
|
* src/HttpHeader.h
|
|
* src/HttpHeaderProcessor.cc
|
|
* src/HttpHeaderProcessor.h
|
|
* src/HttpResponse.cc
|
|
* src/HttpResponse.h
|
|
* test/HttpHeaderProcessorTest.cc
|
|
* test/HttpResponseTest.cc
|
|
|
|
2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --header option. You can specify any number of additional HTTP headers
|
|
like:
|
|
aria2 --header="X-A: 300" --header="X-B: 900" http://host/file
|
|
Unlike other commad-line option, you can use --header option multiple times.
|
|
* src/HelpItemFactory.cc
|
|
* src/HttpRequest.{cc, h}
|
|
* src/HttpRequestCommand.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/OptionHandlerImpl.h
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
* test/HttpRequestTest.cc (testUserHeaders)
|
|
|
|
2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Eliminates the time lag between sequential downloads and commands in
|
|
the same RequestGroup.
|
|
In old implementation, aria2 occasionally waits 1 seconds before
|
|
executing next command or RequestGroup.
|
|
This is really a waste of time, and new implementation eliminates
|
|
this unnecessary time lag.
|
|
* src/AbstractCommand.cc
|
|
* src/AutoSaveCommand.cc
|
|
* src/CheckIntegrityCommand.cc
|
|
* src/Command.{cc, h}
|
|
* src/DownloadEngine.{cc, h}
|
|
* src/DownloadEngineFactory.cc
|
|
* src/FileAllocationCommand.cc
|
|
* src/FileAllocationDispatcherCommand.cc
|
|
* src/FillRequestGroupCommand.cc
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
* src/HaveEraseCommand.cc
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/RealtimeCommand.cc
|
|
* src/RequestGroup.cc
|
|
* src/RequestGroupMan.cc
|
|
* src/StreamFileAllocationEntry.cc
|
|
* src/TimeBasedCommand.{cc, h}
|
|
* src/TimedHaltCommand.cc
|
|
|
|
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
|
|
|
|
2008-04-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed type in man page.
|
|
* doc/aria2c.1.txt
|
|
|
|
2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Ross's 0.13.1+1 Cygwin compile fix patch.
|
|
* src/SimpleLogger.{cc, h}
|
|
|
|
2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented auto protocol detection.
|
|
Now you can do:
|
|
aria2c -Z http://host/file file1.torrent file2.metalink
|
|
(Note: -Z option is required for auto protcol detection.)
|
|
Then aria2c downloads 3 files simultaneously:
|
|
1. http://host/file
|
|
2. file1.torrent <-- read local torrent file
|
|
3. file2.metalink <-- read local Metalink file.
|
|
|
|
Same thing goes with -i option. Assume your uris.txt contans:
|
|
http://host/file
|
|
file1.torrent
|
|
file2.metalink
|
|
Then you can do: aria2c -i uris.txt
|
|
(Note: -Z option is not needed if -i option is given.)
|
|
|
|
* src/main.cc
|
|
* src/ProtocolDetector.{cc, h}
|
|
* test/ProtocolDetectorTest.cc
|
|
|
|
2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error without gnutls/libgcrypt/libgpg-error and openSSL
|
|
installed
|
|
* src/ARC4Encryptor.h
|
|
* src/ARC4Decryptor.h
|
|
|
|
2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Renamed argument from 'errno' to 'err', since errno is confused with
|
|
errno defined in errno.h.
|
|
* src/LibgcryptARC4Decryptor.h
|
|
* src/LibgcryptARC4Context.h
|
|
* src/LibgcryptDHKeyExchange.h
|
|
* src/LibgcryptARC4Encryptor.h
|
|
|
|
2008-04-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-04-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error on x84-64 platform.
|
|
* src/AuthConfig.cc: Included ostream.
|
|
|
|
2008-03-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten getBasename() and getDirname(), without standard library
|
|
basename(), dirname().
|
|
* src/File.cc
|
|
* test/FileTest.cc
|
|
|
|
2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Simplified Chinese translation. Also updated the following
|
|
translations: Polish, Dutch, German. Great thanks to all translators.
|
|
|
|
2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Suppress content-range error when 'Content-Range' response header
|
|
doesn't contains bytes-unit specifier 'bytes'
|
|
* src/HttpHeader.cc (getRange)
|
|
* test/HttpHeaderTest.cc
|
|
|
|
2008-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error with g++-4.3
|
|
|
|
2008-03-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added missing include files for MinGW
|
|
* test/HttpHeaderProcessorTest.cc
|
|
* test/DHTRoutingTableSerializerTest.cc
|
|
* test/DHTRoutingTableDeserializerTest.cc
|
|
* test/UriListParserTest.cc
|
|
|
|
2008-03-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now download line is printed nicely with no garbage at the end of
|
|
line. I use ioctl to get the columns of terminal.
|
|
If stdout is redirected to another device, instead of carriage return,
|
|
end of line '\n' character is used. This is feature request#1909659
|
|
* src/ConsoleStatCalc.cc (calculateStat)
|
|
|
|
2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included a2time.h
|
|
* src/DHTMessageDispatcher.h
|
|
* src/DHTMessageEntry.h
|
|
* src/DHTReplaceNodeTask.h
|
|
* src/DHTMessageTracker.h
|
|
* src/Util.h
|
|
* src/CookieBox.h
|
|
* src/SocketCore.h
|
|
* src/DefaultBtMessageDispatcher.h
|
|
* src/SocketCore.cc
|
|
* src/Util.cc
|
|
* src/DHTPingTask.h
|
|
|
|
2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed high memory footprint when DHT is enabled.
|
|
This is not a memory leak, but DHTReplaceNodeTask is more frequently
|
|
queued than it is processed and the queue is getting longer. As a
|
|
consequence, momory usage is increased.
|
|
As for a fix, instead of issuing DHTReplaceNodeTask, I've implemented
|
|
replacement cache in DHTBucket which is described in Kademlia paper.
|
|
* src/DHTRoutingTable.cc (addNode): Removed the issuing of
|
|
DHTReplaceNodeTask.
|
|
* src/DHTBucket.{h, cc}
|
|
(cacheNode): New function.
|
|
(getCachedNodes): New function.
|
|
(dropNode): Push back cached node to _nodes.
|
|
* test/DHTBucketTest.cc
|
|
(testCacheNode): New test
|
|
(testDropNode): New test
|
|
|
|
2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Allocate memory for peekBuf in initiateSecureConnection() to avoid
|
|
the unused 4KB memory when ssl is not used.
|
|
* src/SocketCore.cc
|
|
|
|
2008-03-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added summary log for peer announce storage.
|
|
* src/DHTPeerAnnounceStorage.cc (handleTimeout)
|
|
|
|
Removed cast
|
|
* src/DefaultPeerStorage.cc (addPeer)
|
|
|
|
Log exception message
|
|
* src/DHTMessageTracker.cc (handleTimeout)
|
|
|
|
Fixed casting
|
|
* test/HttpRequestTest.cc
|
|
* test/MetalinkProcessorTest.cc
|
|
* test/PieceTest.cc
|
|
* test/MetalinkEntryTest.cc
|
|
* test/SequenceTest.cc
|
|
|
|
2008-03-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/ParameterizedStringParser.cc (createLoop):
|
|
Removed unused variable sstep.
|
|
|
|
* src/AlphaNumberDecorator.h (decode): Rewritten.
|
|
|
|
2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Util.{h, cc}
|
|
(parseUInt): New function.
|
|
(alphaToNum): Now returns unsigned int and 0 when overflow detected.
|
|
The actual range is uint32_t.
|
|
* test/UtilTest.cc
|
|
|
|
* src/ParameterizedStringParser.cc:
|
|
Use Util::parseUInt() for loop variables.
|
|
* test/ParameterizedStringParserTest.cc
|
|
|
|
* src/PStringNumLoop.h: Make _startValue and _endValue unsigned int.
|
|
|
|
2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten the functions for binding port.
|
|
* src/DHTConnectionImpl.{h, cc}
|
|
* src/PeerListenCommand.{h, cc}
|
|
* src/DHTSetup.cc
|
|
* src/BtSetup.cc
|
|
* test/DHTConnectionImplTest.cc
|
|
|
|
2008-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
type cleanup for allmost all remaining files.
|
|
|
|
2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Type clarification
|
|
* src/DefaultPeerStorage.{h, cc}
|
|
* test/DefaultPeerStorageTest.cc
|
|
|
|
2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Type clarification: size_t for length or size, uint64_t for file
|
|
length, off_t for file offset.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/DefaultBtContext.{h, cc}
|
|
* src/DefaultBtInteractive.cc
|
|
* src/DownloadCommand.{h, cc}
|
|
* src/IteratableChunkChecksumValidator.{h, cc}
|
|
* src/SegmentMan.{h, cc}
|
|
* src/SingleFileDownloadContext.{h, cc}
|
|
* src/IteratableChecksumValidator.{h, cc}
|
|
* src/BtContext.h
|
|
* src/IteratableValidator.h
|
|
* src/DownloadContext.h
|
|
* test/SingleFileDownloadContextTest.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/MockBtContext.h
|
|
* test/Metalink2RequestGroupTest.cc
|
|
|
|
2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Type clarification: size_t for length or size, uint64_t for file
|
|
length, off_t for file offset.
|
|
|
|
* src/PiecedSegment.cc
|
|
* src/GrowSegment.h
|
|
* src/DefaultBtRequestFactory.h
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/UnknownLengthPieceStorage.h
|
|
* src/DefaultPieceStorage.cc
|
|
* src/UnknownLengthPieceStorage.cc
|
|
* src/DefaultBtInteractive.cc
|
|
* src/GrowSegment.cc
|
|
* src/BitfieldMan.h
|
|
* src/DownloadCommand.cc
|
|
* src/BtRequestFactory.h
|
|
* src/PiecedSegment.h
|
|
* src/DefaultPieceStorage.h
|
|
* src/Piece.cc
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/PieceStorage.h
|
|
* src/Segment.h
|
|
* src/Piece.h
|
|
* src/BitfieldMan.cc
|
|
* src/Util.cc
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* test/DefaultPieceStorageTest.cc
|
|
* test/MockPieceStorage.h
|
|
* test/BtRequestMessageTest.cc
|
|
* test/DefaultBtMessageDispatcherTest.cc
|
|
* test/BitfieldManTest.cc
|
|
* test/GrowSegmentTest.cc
|
|
* test/PieceTest.cc
|
|
* test/SegmentTest.cc
|
|
* test/SegmentManTest.cc
|
|
* test/DefaultBtRequestFactoryTest.cc
|
|
* test/MockBtRequestFactory.h
|
|
|
|
2008-03-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error with --disable-nls
|
|
It seems that defining gettext(Msgid) to ((const char *) (Msgid))
|
|
in gettext.h causes the problem.
|
|
* src/common.h
|
|
|
|
2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed subPiece related functions.
|
|
* src/Piece.{h, cc} : Also rewritten getCompletedLength().
|
|
* src/DefaultPieceStorage.{h, cc}
|
|
* test/PieceTest.cc
|
|
* test/DefaultPieceStorageTest.cc
|
|
|
|
2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use unsigned char for data store.
|
|
|
|
2008-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.0+1
|
|
* configure.ac
|
|
|
|
* Release 0.13.0+1
|
|
|
|
2008-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed inactive connection timeout to 120.
|
|
To accept more mulually interested peers, disconnect peer when there
|
|
is no interest between us after certain time passed.
|
|
* src/DefaultBtInteractive.cc (checkActiveInteraction)
|
|
|
|
2008-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that aria2 only uses first dns server in resolv.conf
|
|
when compiled with async DNS support.
|
|
* src/DownloadEngine.cc
|
|
* src/option_processing.cc: Lengthened DNS timeout to 30. I think old
|
|
value '10' will be a little bit short when some DNS servers are
|
|
offline and several DNS servers are tried. It should be configured
|
|
by command-line option.
|
|
|
|
2008-03-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Ross's mingw patch.
|
|
* src/DHTRoutingTableDeserializer.cc
|
|
* src/DHTRoutingTableSerializer.cc
|
|
* src/Platform.{h, cc}
|
|
* src/timegm.h
|
|
* src/gettimeofday.h
|
|
* src/getaddrinfo.h
|
|
* src/SocketCore.h
|
|
* src/common.h
|
|
* src/inet_aton.h
|
|
* src/DownloadEngine.h
|
|
* src/gai_strerror.h
|
|
* src/a2netcompat.h
|
|
* configure.ac
|
|
* configure
|
|
* aclocal.m4
|
|
|
|
2008-03-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included missing iostream.
|
|
* test/AllTest.cc
|
|
* test/BtDependencyTest.cc
|
|
* test/BtExtendedMessageTest.cc
|
|
* test/DHTConnectionImplTest.cc
|
|
* test/DHTMessageFactoryImplTest.cc
|
|
* test/DHTMessageTrackerEntryTest.cc
|
|
* test/DHTNodeTest.cc
|
|
* test/DHTRoutingTableSerializerTest.cc
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/DefaultBtMessageFactoryTest.cc
|
|
* test/DefaultExtensionMessageFactoryTest.cc
|
|
* test/HandshakeExtensionMessageTest.cc
|
|
* test/HttpResponseTest.cc
|
|
* test/MetalinkProcessorTest.cc
|
|
* test/MultiFileAllocationIteratorTest.cc
|
|
* test/SocketCoreTest.cc
|
|
* test/UTPexExtensionMessageTest.cc
|
|
|
|
2008-03-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reorganized includes.
|
|
* src/NameResolver.cc
|
|
|
|
2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error without ares/c-ares
|
|
* src/NameResolver.h:
|
|
|
|
2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added a test for large file.
|
|
* test/MetalinkProcessorTest.cc (testLargeFileSize):
|
|
|
|
2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that file size is ignored if size > INT32_MAX
|
|
* src/SizeMetalinkParserState.cc (endElement):
|
|
|
|
2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.0
|
|
* configure.ac
|
|
|
|
* Release 0.13.0
|
|
|
|
2008-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Create MessageDigestHelper::staticSHA1DigestInit() which uses
|
|
statically declared sha1 MessageDigestContext.
|
|
* src/BtPieceMessage.cc: Use staticSHA1DigestInit() to avoid
|
|
initialization of short-lived MessageDigestContext.
|
|
* src/MessageDigestHelper.{h, cc}
|
|
* src/main.cc
|
|
|
|
Now DownloadCommand has a reference to MessageDigestContext to avoid
|
|
the initialization of MessageDigestContext every time in validating
|
|
chunk checksum.
|
|
* src/DownloadCommand.{h, cc}
|
|
|
|
2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Add a file descriptor which connected to fast peer(latency<1500) to
|
|
select(). This change reduced CPU load.
|
|
* src/PeerInteractionCommand.cc
|
|
* src/DefaultBtInteractive.{h, cc}
|
|
* src/BtInteractive.h
|
|
|
|
2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the previous insufficient fix for possible busy loop.
|
|
* src/MSEHandshake.cc (identifyHandshakeType)
|
|
|
|
Removed unused functions.
|
|
* src/MSEHandshake.{h, cc} (readDataAndDecrypt)
|
|
|
|
2008-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed possible busy loop if first 20 bytes are not received for a few
|
|
minutes.
|
|
* src/MSEHandshake.{h, cc} (identifyHandshakeType)
|
|
* src/ReceiverMSEHandshakeCommand.cc
|
|
|
|
2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compilation error
|
|
* src/ExpatMetalinkProcessor.cc
|
|
|
|
2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error on Mac OS X, on 64Bit OS maybe.
|
|
* src/DHTBucket.cc
|
|
|
|
Removed unnecessary cast.
|
|
* src/HandshakeExtensionMessage.cc
|
|
|
|
2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that option handler for PREF_METALINK_ENABLE_UNIQUE_PROTOCOL.
|
|
is missing.
|
|
* src/OptionHandlerFactory.cc
|
|
|
|
2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that HAVE message is not sent for a piece they are
|
|
downloaded fom http/ftp server before any BitTorrent handshake is done
|
|
with peers.
|
|
* src/DefaultBtInteractive.cc
|
|
|
|
2008-02-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed RequestInfo.h and FileAllocator.h since they have been removed.
|
|
* src/Makefile.am
|
|
* src/Makefile.in
|
|
|
|
2008-02-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated README. Added html version of README and man page.
|
|
* README
|
|
* README.html
|
|
* readme2html: Shell script to generate README.html from README using
|
|
asciidoc.
|
|
* doc/aria2c.1.html
|
|
* doc/makeman: Added the line to generate aria2c.1.html
|
|
|
|
2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed offset calculation.
|
|
* src/LibgcryptDHKeyExchange.h (computeSecret)
|
|
|
|
2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten itos and uitos using template. llitos and ullitos are
|
|
replaced with itos and uitos respectively.
|
|
* src/Util.{h, cc}
|
|
* test/UtilTest.cc
|
|
|
|
2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that DH key exchange sometimes fails due to bad handling
|
|
of the number of bytes required for storing public key and shared
|
|
secret.
|
|
* src/LibgcryptDHKeyExchange.h
|
|
* src/LibsslDHKeyExchange.h: Also added function name to handleError.
|
|
* src/MSEHandshake.cc
|
|
* test/DHKeyExchangeTest.cc
|
|
|
|
2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed since they are not used.
|
|
* src/Xml2MetalinkProcessor.{h, cc}
|
|
* src/Socket.cc
|
|
* src/SegmentSplitter.{h, cc}
|
|
* test/Xml2MetalinkProcessorTest.cc
|
|
|
|
2008-02-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prevents aria2 from stopping other than by pressing
|
|
Ctrl-C in BitTorrent download. It is reproducible using --seed-time
|
|
option. aria2 doesn't stop even after --seed-time is satisfied and
|
|
continues to output blank lines in the console.
|
|
* src/ReceiverMSEHandshakeCommand.cc
|
|
* src/PeerReceiveHandshakeCommand.cc
|
|
* src/PeerListenCommand.cc
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump up version number to 0.13.0rc
|
|
* configure.ac
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated man page and some usage text.
|
|
* doc/aria2c.1.txt
|
|
* src/usage_text.h
|
|
* po/*.{po, gmo}
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated translations. Added Finnish and Hebrew translations.
|
|
Great thanks to all translators!
|
|
* po/*.{po, gmo}
|
|
* po/LINGUAS
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Log more detailed information about each message.
|
|
* src/DHTQueryMessage.{h, cc}
|
|
* src/DHTGetPeersMessage.{h, cc}
|
|
* src/DHTFindNodeReplyMessage.{h, cc}
|
|
* src/DHTGetPeersReplyMessage.{h, cc}
|
|
* src/DHTAnnouncePeerMessage.{h, cc}
|
|
* src/DHTResponseMessage.{h, cc}
|
|
* src/DHTFindNodeMessage.{h, cc}
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use constants defined in prefs.h
|
|
* src/option_processing.cc
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* test/AllTest.cc: Added OpenSSL, GNUTLS initialization code.
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Make room for future enchancements for IPv6 addresses.
|
|
Bump up version number of dht.dat file format to 2.
|
|
Not compatible with previous version.
|
|
* src/DHTRoutingTableSerializer.cc
|
|
* src/DHTRoutingTableDeserializer.cc
|
|
* test/DHTRoutingTableSerializerTest.cc
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added handling for the return values from
|
|
PeerMessageUtil::createcompact().
|
|
* src/DefaultBtContext.cc (computeFastSet):
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed abort when peer's ip address is IPv4-mapped address.
|
|
* src/DefaultBtContext.cc (computeFastSet)
|
|
|
|
Removed number-and-dots criteria, since Util::isNumberAndDotsNotation()
|
|
cannot handle IPv4-mapped addresses.
|
|
* src/DefaultBtInteractive.cc (addPeerExchangeMessage)
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Proper return value handling for OpenSSL functions.
|
|
* src/LibsslDHKeyExchange.h
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Random bytes generation using libgcrypt and OpenSSL.
|
|
* src/DHTUtil.{h, cc}
|
|
* test/DHTUtilTest.cc
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed segmentation fault when a DHT message which doesn't have 'y' key
|
|
received.
|
|
* src/DHTMessageReceiver.cc (receiveMessage)
|
|
|
|
2008-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that a return code is always 0. BUG#1897704
|
|
If error occurred during the download or there exist unfinished
|
|
downloads, aria2 returns with code 1.
|
|
* src/RequestGroupMan.{h, cc}
|
|
* src/MultiUrlRequestInfo.{h, cc}
|
|
* src/main.cc
|
|
|
|
2008-02-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
IPv6 support for SocketCore class.
|
|
TODO: In SocketCore::establishConnection(), this is insufficient to
|
|
determin the failure of connect() here because the socket is
|
|
non-blocking state. The next addresses should be tried after select().
|
|
TODO: NameResolver still uses c-ares(<= 1.4) ares_gethostbyname().
|
|
If c-ares 1.5 or newer is installed, ares_getaddrinfo() should be used
|
|
instead which address family independent.
|
|
TODO: DHTRoutingTable{Deserializer,Serializer} currently saves peer
|
|
information in a compact peer format which is for IPv4 only.
|
|
|
|
Some BitTorrent functions in PeerMessageUtil still depends on IPv4 but
|
|
this is a spec of BitTorrent protocol.
|
|
* src/SocketCore.{h, cc}
|
|
* src/PeerMessageUtil.cc
|
|
* test/SocketCoreTest.cc
|
|
* test/PeerMessageUtilTest.cc
|
|
* test/DHTConnectionImplTest.cc
|
|
|
|
Handle IPv4-mapped addresses.
|
|
* src/DHTNode.cc: Now identity is determined by node id.
|
|
* src/DHTMessageTrackerEntry.cc
|
|
|
|
Because now PeerMessageUtil::unpackcompact() could fail, the caller
|
|
should handle it.
|
|
* src/DHTRoutingTableDeserializer.cc
|
|
* src/DHTMessageFactoryImpl.cc
|
|
|
|
2008-02-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Change the unit of --stop option from a minute to a second.
|
|
* src/usage_text.h
|
|
* src/DownloadEngineFactory.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/message.h
|
|
* src/TimedHaltCommand.cc
|
|
|
|
2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Make listening socket non-block mode.
|
|
* src/FtpConnection.cc
|
|
* src/FtpNegotiationCommand.{h, cc}
|
|
* src/PeerListenCommand.cc
|
|
|
|
Fixed the bug that cause slow ftp negotiation.
|
|
* src/FtpNegotiationCommand.{h, cc}
|
|
|
|
2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added basic tag to --enable-dht, --dht-listen-port option.
|
|
* src/HelpItemFactory.cc (createHelpItems)
|
|
|
|
2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated text.
|
|
* src/usage_text.h
|
|
|
|
2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/MSEHandshake.cc (encryptAndSendData): Use std::min().
|
|
|
|
2008-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Determin _threadtholdSpeed in each constructor for
|
|
ActivePeerConnectionCommand and PeerReceiveHandshakeCommand.
|
|
* src/ActivePeerConnectionCommand.{h, cc}
|
|
* src/PeerReceiveHandshakeCommand.{h, cc}
|
|
* src/BtSetup.cc
|
|
* src/BtConstants.h
|
|
|
|
2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --bt-min-crypto-level and --bt-require-crypto options.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/MSEHandshake.cc
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/ReceiverMSEHandshakeCommand.cc
|
|
* src/prefs.h
|
|
* src/DefaultBtAnnounce.cc
|
|
* src/InitiatorMSEHandshakeCommand.cc
|
|
* src/usage_text.h
|
|
* test/MSEHandshakeTest.cc
|
|
|
|
2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Bump version number to 0.13.0b
|
|
* configure.ac
|
|
|
|
2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated doc.
|
|
* src/MessageDigestHelper.h:
|
|
|
|
2008-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use raw message digest as a token instead of its hexadecimal
|
|
representation.
|
|
* src/DHTTokenTracker.cc (generateToken)
|
|
|
|
2008-02-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Message Stream Encryption(MSE) support.
|
|
Currently, aria2 accepts incoming connections with Obfuscation Header
|
|
and legacy BitTorrent Header and establishes connections with
|
|
Obfuscation Header first and if failed then retry with legacy
|
|
BitTorrent header. If plain text and ARC4 is provided, aria2 always
|
|
choose ARC4. The new option to change the default behavior is planned.
|
|
For tracker extension, "supportcrypto=1" is added statically.
|
|
* src/PeerInitiateConnectionCommand.{h, cc}
|
|
* src/PeerConnection.{h, cc}
|
|
* src/HandleRegistry.h
|
|
* src/SocketCore.h
|
|
* src/PeerReceiveHandshakeCommand.{h, cc}
|
|
* src/BtRegistry.{h, cc}
|
|
* src/PeerListenCommand.cc
|
|
* src/InitiatorMSEHandshakeCommand.{h, cc}
|
|
* src/ReceiverMSEHandshakeCommand.{h, cc}
|
|
* src/MSEHandshake.{h, cc}
|
|
* src/ARC4Encryptor.h
|
|
* src/ARC4Decryptor.h
|
|
* src/LibgcryptARC4Encryptor.h
|
|
* src/LibgcryptARC4Decryptor.h
|
|
* src/LibgcryptARC4Context.h
|
|
* src/LibsslARC4Encryptor.h
|
|
* src/LibsslARC4Decryptor.h
|
|
* src/LibsslARC4Context.h
|
|
* src/DHKeyExchange.h
|
|
* src/LibgcryptDHKeyExchange.h
|
|
* src/LibsslDHKeyExchange.h
|
|
* src/DefaultBtAnnounce.cc: Just added "supportcrypto=1" parameter.
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* test/ARC4Test.cc
|
|
* test/DHKeyExchangeTest.cc
|
|
|
|
Removed prepareForRetry() because it is not used.
|
|
* src/PeerAbstractCommand.{h, cc}
|
|
* src/PeerInteractionCommand.{h, cc}
|
|
* src/PeerInitiateConnectionCommand.{h, cc}
|
|
|
|
2008-02-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to load nodes from torrent file. These nodes are
|
|
added to the routing table when downloading that torrent.
|
|
* src/BtContext.h
|
|
* src/DefaultBtContext.{h, cc}
|
|
* src/DHTSetup.cc
|
|
* src/DHTEntryPointNameResolveCommand.{h, cc}: Now accepts list of
|
|
hostname and port pair, and resolves all of them.
|
|
* src/NameResolver.{h, cc}: Added reset().
|
|
* src/RequestGroup.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/MockBtContext.h
|
|
|
|
Removed assert() from DefaultBtContext and throw exception instead.
|
|
* src/DefaultBtContext.cc
|
|
|
|
2008-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed segmentation fault bug when exiting if dht is disabled.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed typo in log message and define the message in message.h
|
|
* src/TimedHaltCommand.cc
|
|
* src/message.h
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Included RecoverableException.h to fix compilation error.
|
|
* test/DHTMessageFactoryImplTest.cc
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added test 'testDoReceivedAction' for DHTQueryMessage subclasses.
|
|
* test/DHTPingMessageTest.cc
|
|
* test/DHTGetPeersMessageTest.cc
|
|
* test/DHTFindNodeMessageTest.cc
|
|
* test/DHTAnnouncePeerMessageTest.cc
|
|
* test/MockDHTMessage.h
|
|
* test/MockDHTMessageFactory.h
|
|
* test/MockDHTMessageDispatcher.h: New class.
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added DHTMessageDispatcherImpl. Now DHTMessageDispatcher is pure
|
|
virtual.
|
|
* src/DHTMessageDispatcher.h
|
|
* src/DHTMessageDispatcherImpl.{h, cc}
|
|
* src/DHTSetup.cc
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Adding handling of DHT error message. Just log error message and
|
|
throw exception.
|
|
* src/DHTMessageFactoryImpl.cc
|
|
* test/DHTMessageFactoryImplTest.cc
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added handling of dynamic cast failure.
|
|
* src/DHTNodeLookupTask.cc
|
|
* src/DHTPeerLookupTask.cc
|
|
|
|
2008-02-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to stop aria2 itself when given time has passed
|
|
from start. Use --stop option to specify time in minutes.
|
|
When 0 is given, this feature is disabled.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/TimeBasedCommand.h: Make _interval protected scope.
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/FillRequestGroupCommand.cc: Evaluate _e->isHaltRequested()
|
|
before calling RequestGroupMan::fillRequestGroupFromReserver().
|
|
Without this modification, the result list shows "ERR" when aria2 is
|
|
stopped by --stop option. It should be "INPR".
|
|
* src/DownloadEngine.{h, cc}
|
|
* src/DownloadEngineFactory.cc
|
|
* src/usage_text.h
|
|
* src/TimedHaltCommand.{h, cc}: New class.
|
|
|
|
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
|
|
|
|
2008-02-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added std namespace to copy, remove_copy, back_inserter,
|
|
front_inserter.
|
|
* src/RequestGroupMan.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/StreamFileAllocationEntry.cc
|
|
* src/BtFileAllocationEntry.cc
|
|
* src/RequestGroup.cc
|
|
* src/MetalinkEntry.cc
|
|
* src/DelegatingPeerListProcessor.cc
|
|
* src/DefaultBtRequestFactory.cc
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
* src/version_usage.cc: Included <algorithm>
|
|
* src/main.cc
|
|
* src/MetalinkParserController.cc
|
|
* src/DefaultBtContext.cc
|
|
* src/DownloadEngineFactory.cc
|
|
* src/a2algo.h
|
|
|
|
Removed.
|
|
* test/StreamUriListParserTest.cc
|
|
|
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use PREF_MAX_DOWNLOAD_LIMIT as a threshold for
|
|
ActivePeerConnectionCommand when it is given and
|
|
PREF_MAX_DOWNLOAD_LIMIT < default threshold.
|
|
* src/ActivePeerConnectionCommand.{h, cc}
|
|
* src/BtSetup.cc
|
|
|
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Only add socket to DownloadEngine's select routine when peer or
|
|
localhost is unchoked and interested. This lowers CPU usage a
|
|
little bit.
|
|
* src/PeerInteractionCommand.cc
|
|
* src/PeerAbstractCommand.{h, cc}
|
|
* src/BtInteractive.h
|
|
* src/DefaultBtInteractive.{h, cc}
|
|
|
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Revert previous change because get_peers message is needed for
|
|
announce_peer anyway.
|
|
* src/DHTGetPeersCommand.cc
|
|
|
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Request peers thought DHT only when download hasn't finished.
|
|
* src/DHTGetPeersCommand.cc
|
|
|
|
2008-02-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Force refresh bucket when startup if certain time has passed(currently 15 minutes).
|
|
* src/DHTBucketRefreshTask.{h, cc}
|
|
* src/DHTSetup.cc
|
|
|
|
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.
|
|
Added namespace aria2.
|
|
|
|
2008-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Create directory before saving DHT routing table.
|
|
Now ios::failure is now handled properly.
|
|
* src/DHTAutoSaveCommand.cc
|
|
|
|
2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed unnecessary cerr.
|
|
* src/DownloadEngine.cc
|
|
|
|
2008-02-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Catch exception inside DHTMessageReceiver::receiveMessage().
|
|
Log unknown message.
|
|
* src/DHTMessageReceiver.{h, cc}
|
|
* src/DHTMessageFactory.h
|
|
* src/DHTMessageFactoryImpl.{h, cc}
|
|
* src/DHTMessageTracker.cc (handleTimeout): Catch and handle exception.
|
|
* src/DHTInteractionCommand.cc
|
|
* src/DHTUnknownMessage.{h, cc}
|
|
* test/DHTUnknownMessageTest.cc
|
|
* test/MockDHTMessageFactory.h
|
|
|
|
2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Commented out ip address comparison because a host can have multiple
|
|
ip addresses and it is hard to predict the hostname is resolved into
|
|
which one.
|
|
* test/SocketCoreTest.cc (testWriteAndReadDatagram)
|
|
|
|
2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* po/Makefile.in: Removed since this is generated by configure.
|
|
|
|
2008-02-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compiler warning about redefinition of SIZE_MAX.
|
|
Use common.h instead of config.h directly here.
|
|
* src/Platform.{h, cc}
|
|
|
|
The check of ENABLE_NLS is made in gettext.h, so it is not required
|
|
here.
|
|
* common.h
|
|
|
|
2008-02-02 gettextize <bug-gnu-gettext@gnu.org>
|
|
|
|
Updated gettext related files.
|
|
* configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
|
|
* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.17.
|
|
|
|
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}
|
|
|
|
2008-01-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that log file is not written when configuration file doesn't exist.
|
|
This is caused by using Logger class before LogFactory is not configured.
|
|
BUG #1875079
|
|
* src/option_processing.cc
|
|
|
|
Warning message "configuration doesn't exist" is only printed when --conf is
|
|
given.
|
|
* src/option_processing.cc
|
|
|
|
2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use BencodeVisitor and MessageDigestHelper instead of ShaVisitor.
|
|
ShaVisitor is now deprecated and slated to be removed.
|
|
* src/DefaultBtContext.cc
|
|
|
|
2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Externalize message to message.h
|
|
* src/Platform.cc
|
|
* src/message.h
|
|
|
|
2008-01-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set default domain and default path to cookie.
|
|
* src/HttpResponse.cc
|
|
* src/CookieBox.{h, cc}
|
|
* src/CookieParser.{h, cc}
|
|
* test/CookieParserTest.cc
|
|
|
|
2008-01-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --no-conf and --conf-path command-line option.
|
|
--no-conf option disables loading aria2.conf file.
|
|
--conf-path option changes the configuration file path. The default
|
|
file path is $HOME/.aria2/aria2.conf
|
|
Added a warning message when the configuration file is not found.
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/usage_text.h
|
|
|
|
2008-01-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the message to inform users that other help categories are
|
|
available in -h option.
|
|
* src/version_usage.cc
|
|
* src/TagContainer.{h, cc}
|
|
* test/TagContainerTest.cc
|
|
* src/TaggedItem.{h, cc}
|
|
* test/TaggedItemTest.cc
|
|
* src/HelpItem.h
|
|
|
|
2008-01-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added Piece::getFirstMissingBlockIndexWithoutLock() and it is called
|
|
from PiecedSegment's ctor.
|
|
Previously Piece::getAllMissingBlockIndexes() is called from
|
|
PiecedSegment() but it is rather expensive since only first element is
|
|
used.
|
|
* src/PiecedSegment.cc
|
|
* src/Piece.{h, cc}
|
|
|
|
2008-01-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten get*Missing*Index functions. Now no need to allocate memory
|
|
each time these functions are called.
|
|
* src/BitfieldMan.{h, cc}
|
|
* test/BitfieldManTest.cc
|
|
* src/array_fun.h
|
|
* test/array_funTest.cc
|
|
|
|
Now BitfieldMan::countBlock() returns BitfieldMan::blocks.
|
|
Added new BitfieldMan::countFilteredBlock() to get the number of blocks
|
|
filtered. Removed unnecessary cast to int32_t.
|
|
* src/BitfieldMan.{h, cc}
|
|
|
|
2008-01-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that EX_TOO_LONG_PAYLOAD exception is thrown if just
|
|
payload length(4bytes) are received. This happens because lenbufLength
|
|
is not updated in this particular case and successive call of
|
|
receiveMessage() overwrites payload length with bytes recieved which
|
|
are payload body.
|
|
* src/PeerConnection.{h, cc}
|
|
* src/message.h
|
|
|
|
2008-01-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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
|
|
|
|
2008-01-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed a call to isPowerOf() because it is no longer necessary here
|
|
and a request block is not always power of 2.
|
|
BUG#1866924
|
|
* src/PeerMessageUtil.cc (checkLength)
|
|
|
|
2008-01-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that always first found Segment is removed from
|
|
usedSegmentEntries. Removed unused functions.
|
|
* src/SegmentMan.{h, cc}
|
|
* test/SegmentManTest.cc
|
|
|
|
Fixed the bug that ServerHost is not removed.
|
|
* src/RequestGroup.cc
|
|
|
|
2008-01-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that SegmentMan::completeSegment() is not called
|
|
even if Segment is complete when --lowest-speed-limit is enabled.
|
|
BUG#1864525
|
|
* src/DownloadCommand.{h, cc}
|
|
|
|
2008-01-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed: hash algorithm 'sha1' is always used.
|
|
* src/DownloadCommand.cc (validatePieceHash)
|
|
|
|
2008-01-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --enable-peer-exchange command-line option.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/HelpItemFactory.cc
|
|
* src/option_processing.cc
|
|
* src/usage_text.h
|
|
|
|
2008-01-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Move extension from BtRuntime to ExtensionMessageFactory, because
|
|
extension can be specified per peer, not per torrent.
|
|
* src/DefaultBtInteractive.cc
|
|
* src/BtRuntime.h
|
|
* src/ExtendedMessagingAware.h
|
|
* src/ExtensionMessageFactory.h
|
|
* src/DefaultExtensionMessageFactory.cc
|
|
* test/DefaultExtensionMessageFactoryTest.cc
|
|
|
|
2008-01-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added categorized option help. Specify category using --help option.
|
|
Also added the ability to search options in forward match.
|
|
* src/HelpItem.{h, cc}
|
|
* test/HelpItemTest.cc
|
|
* src/HelpItemFactory.{h, cc}
|
|
* src/TagContainer.{h, cc}
|
|
* test/TagContainerTest.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/TaggedItem.{h, cc}
|
|
* test/TaggedItemTest.cc
|
|
* src/version_usage.cc
|
|
* src/help_tags.h
|
|
* src/usage_text.h
|
|
|
|
2008-01-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed segmentation fault when bad torrent metainfo is parsed.
|
|
Added dynamic_cast properly to detect the misconfiguration of metainfo
|
|
and then throw exception or skip it.
|
|
* src/DefaultBtContext.{h, cc}
|
|
* test/DefaultBtContextTest.cc
|
|
* src/AnnounceList.cc
|
|
* src/CompactPeerListProcessor.cc
|
|
* src/message.h
|
|
* src/DefaultBtAnnounce.{h, cc}
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* src/BencodeVisitor.cc
|
|
|
|
2007-12-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added missing "B"(=Byte). So now the message looks like this:
|
|
Your share ratio was 1.0, uploaded/downloaded=12MiB/12MiB
|
|
* src/message.h (MSG_SHARE_RATIO_REPORT)
|
|
|
|
2007-12-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Show the seed ratio after torrent downloads.
|
|
For example, after torrent download completed and --seed-time and
|
|
--seed-ratio conditions are fulfilled, following message is printed
|
|
right after "Download complete: .....":
|
|
Your share ratio was 1.0, uploaded/downloaded=12M/12M
|
|
* src/RequestGroupMan.cc
|
|
* src/RequestGroup.{h, cc}
|
|
* src/message.h
|
|
|
|
2007-12-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Remove a defunct control file. A defunct control file means that while
|
|
it exists, but the corresponding download file is missing.
|
|
After its removal, a download restarts from the beginning.
|
|
* src/RequestGroup.cc
|
|
* src/message.h
|
|
|
|
2007-12-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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>
|
|
|
|
Changed the default value of PREF_PEER_CONNECTION_TIMEOUT and
|
|
lowestSpeedLimit in ActivePeerConnectionCommand. TODO: Make them
|
|
command-line options.
|
|
* src/option_processing.cc
|
|
* src/ActivePeerConnectionCommand.cc
|
|
|
|
2007-12-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Send have message to peer if it already has the piece.
|
|
* src/BtHaveMessage.{h, cc}
|
|
|
|
2007-12-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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
|
|
* src/PeerReceiveHandshakeCommand.cc
|
|
|
|
2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --metalink-enable-unique-protocol option.
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/version_usage.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Allow a peer in incomingPeer to be added peers.
|
|
* src/DefaultPeerStorage.cc
|
|
* test/DefaultPeerStorageTest.cc
|
|
|
|
2007-12-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that causes aria2 not to finish download. BUG#1855875.
|
|
I could reproduce this bug in following procedure:
|
|
1. Stop the download at the very beginning(1% or 100KB downloaded).
|
|
2. Restart aria2.
|
|
3. You see the download stopped around 99%.
|
|
* src/HttpResponseCommand.cc (handleDefaultEncoding)
|
|
* src/StreamFileAllocationEntry.cc: Removed the timeout handling.
|
|
If timeout is reached, then _nextCommand is unused and it may contains
|
|
segments and they won't be canceled. Actually, timeout is not needed
|
|
here because if the server dropped connection, then retry is made.
|
|
|
|
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
|
|
|
|
2007-12-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added "Status Legend" label to the explanation text of 'stat' in
|
|
download result and moved it to the last. BUG#1848214
|
|
* src/RequestGroupMan.cc
|
|
|
|
2007-12-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that -lexpat is always added to aria2c_LDADD.
|
|
* src/Makefie.am
|
|
* test/Makefile.am
|
|
|
|
2007-12-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prevents aria2 from loading cookie file when expire
|
|
value is greater than 2^31-1. BUG#1851066
|
|
* src/CookieBoxFactory.cc
|
|
* test/CookieBoxFactoryTest.cc
|
|
|
|
2007-12-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed possible memory leak when an exception is thrown.
|
|
* src/XML2SAXMetalinkProcessor.cc
|
|
|
|
Added Expat support. If both libxml2 and Expat are installed, then
|
|
libxml2 is used by default.
|
|
MetalinkProcessorFactory chooses from XML2SAXMetalinkProcessor and
|
|
ExpatMetalinkProcessor according to the configuration.
|
|
* src/ExpatMetalinkProcessor.{h, cc}
|
|
* src/main.cc: Removed libxml2 specific header and init/free function.
|
|
* src/MetalinkProcessorFactory.{h, cc}
|
|
* src/MetalinkHelper.cc
|
|
* src/Metalinker.h: Removed unnecessary libxml2 header.
|
|
* src/MetalinkProcessor.h
|
|
* test/XML2SAXMetalinkProcessorTest.cc: Removed because
|
|
MetalinkProcessorTest is used instead.
|
|
* test/MetalinkProcessorTest.cc: Added. It is actually the same with
|
|
XML2SAXMetalinkProcessor, replaced XML2SAXMetalinkProcessor with
|
|
MetalinkProcessorFactory::newInstance().
|
|
* m4/libexpat.m4
|
|
* configure.ac: Added configuration options for libexpat.
|
|
|
|
2007-12-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Disabled -s option in metalink download.
|
|
* src/Metalink2RequestGroup.cc
|
|
|
|
2007-12-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
If several protocols are available for a mirror in metalink file,
|
|
aria2 now use one of them. --metalink-preferred-protocol option was
|
|
added to specify the preference of protocol.
|
|
* src/AbstractCommand.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/ServerHost.{h, cc}
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/RequestGroup.{h, cc}
|
|
* test/RequestGroupTest.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/MetalinkResource.{h, cc}
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/MetalinkEntry.{h, cc}
|
|
* src/MetalinkEntryTest.cc
|
|
|
|
2007-12-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Code cleanup and added debug log.
|
|
* src/PeerConnection.cc
|
|
|
|
2007-12-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Compiler error fix: applied the patch by Tiziano Mueller
|
|
* src/RequestGroup.cc
|
|
|
|
2007-12-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug: only first announce URL is tried in AnnounceTier,
|
|
in stopped and completed event.
|
|
* src/AnnounceList.{h, cc}
|
|
* test/AnnounceListTest.cc
|
|
* src/DefaultBtAnnounce.cc
|
|
* test/DefaultBtAnnounceTest.cc
|
|
|
|
Sorted URLs.
|
|
* test/Metalink2RequestGroupTest.cc
|
|
|
|
2007-12-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed unnecessary string copy. Updated doc and corrected indentation.
|
|
* src/Base64.cc
|
|
|
|
Fixed compilation warnings
|
|
* test/DataTest.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/MetaFileUtilTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
* Release 0.12.0
|
|
|
|
2007-12-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated translations
|
|
* po/{de,fr,ja,nl,ru}.po
|
|
|
|
Added Brazilian Portuguese, Catalan, Italian, Spanish, Swedish
|
|
translations. Many thanks to translators.
|
|
* po/{ca,es,it,pt_BR,sv}.po
|
|
* po/LINGUAS
|
|
|
|
2007-12-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added a notice about URL
|
|
* src/version_usage.cc
|
|
|
|
2007-12-07 Tatsuhiro Tsujikawa <tujikawa at rednoah com>
|
|
|
|
Fixed the bug#1845750; CTRL+C does not stop torrent.
|
|
aria2 repeatedly sends stopped request when tracker returns error code.
|
|
* src/AnnounceList.cc
|
|
* test/AnnounceListTest.cc
|
|
* src/AnnounceTier.h
|
|
|
|
Added a message when ctrl-c is hit.
|
|
Now second ctrl-c is also handled in signal handler.
|
|
* src/RequestGroupMan.{h, cc}
|
|
* src/RequestGroup.{h, cc}
|
|
* src/MultiUrlRequestInfo.cc
|
|
* src/DownloadEngine.cc
|
|
* src/TrackerWatcherCommand.cc
|
|
|
|
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Code cleanup
|
|
* src/Base64.cc (encode)
|
|
|
|
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed Direct/IO enable/disable procesure in file allocation routine.
|
|
* src/SingleFileAllocationIterator.cc
|
|
(SingleFileAllocationIterator):
|
|
Disable directIO if offset is not multiple of 512.
|
|
(~SingleFileAllocationIterator): Removed a call to disableDirectIO.
|
|
* src/MultiFileAllocationIterator.cc (allocateChunk):
|
|
Enable created SingleFileAllocationIterator's directIO.
|
|
* src/FileAllocationEntry.cc
|
|
(FileAllocationEntry): Enable directIO here.
|
|
(~FileAllocationEntry): Disable directIO here.
|
|
|
|
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug: aria2 doesn't utilize fast set index offered by peer.
|
|
* src/Peer.{h, cc}
|
|
* src/DefaultPieceStorage.cc
|
|
* test/DefaultPieceStorageTest.cc
|
|
|
|
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten direct I/O support routine
|
|
* src/SingleFileAllocationIterator.cc
|
|
* src/MultiDiskAdaptor.{h, cc}
|
|
* src/ByteArrayDiskWriter.h
|
|
* src/AbstractSingleDiskAdaptor.h
|
|
* src/AbstractDiskWriter.cc
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DiskWriter.h
|
|
* src/BinaryStream.h
|
|
* src/IteratableChunkChecksumValidator.cc
|
|
* src/IteratableChecksumValidator.cc
|
|
* src/CheckIntegrityEntry.cc
|
|
* src/FileAllocationEntry.cc
|
|
|
|
2007-12-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed typo
|
|
* src/version_usage.cc
|
|
|
|
Updated doc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
2007-12-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed compile error without message digest support.
|
|
* src/FileMetalinkParserState.cc
|
|
* src/MetalinkParserController.{h, cc}
|
|
* test/XML2SAXMetalinkProcessorTest.cc
|
|
* test/MetalinkParserControllerTest.cc
|
|
|
|
2007-12-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Enable direct I/O support in checksum checking.
|
|
* src/IteratableChunkChecksumValidator.{h, cc}
|
|
* test/IteratableChunkChecksumValidatorTest.cc
|
|
* src/CheckIntegrityEntry.cc
|
|
* src/PieceHashCheckIntegrityEntry.cc
|
|
* src/IteratableChecksumValidator.{h, cc}
|
|
* src/BtCheckIntegrityEntry.cc: Added doc.
|
|
|
|
2007-12-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added --allow-piece-length-change option.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/version_usage.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Fixed: duplicated result entry appears when exception is thrown in
|
|
RequestGroup::createInitiateConnectionCommand().
|
|
* src/RequestGroupMan.cc (fillRequestGroupFromReserver):
|
|
Add RequestGroup to _requestGroup after RequetGroup::
|
|
createInitiateConnectionCommand() succeeds.
|
|
|
|
Externalized message
|
|
* src/XML2SAXMetalinkProcessor.cc
|
|
* src/message.h
|
|
|
|
2007-12-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Forced download abort when received negative response from http/ftp
|
|
server.
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HttpResponse.cc
|
|
* src/FtpConnection.cc
|
|
|
|
2007-12-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added XML2SAXMetalinkProcessor class, which is a lot faster than
|
|
the predecessor, Xml2MetalinkParser class.
|
|
I tested them against 94KB metalink file with 1234 chunk checksums.
|
|
The new one parsed it in 22msec, while it took 6000msec with old one.
|
|
* src/XML2SAXMetalinkProcessor.{h, cc}
|
|
* test/XML2SAXMetalinkProcessorTest.cc
|
|
* src/MetalinkParserController.{h, cc}
|
|
* test/MetalinkParserControllerTest.cc
|
|
* src/MetalinkParserState.h: Also added 16 subclasses.
|
|
* src/main.cc
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/MetalinkHelper.cc
|
|
* src/MetalinkEntry.cc
|
|
* src/ChunkChecksum.h
|
|
|
|
Rewritten Base64 class for better performance.
|
|
* src/Base64.{h, cc}
|
|
* test/Base64Test.cc
|
|
* src/HttpRequest.cc
|
|
|
|
2007-12-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug#1841757: aria2 will connect to server to only get
|
|
file size.
|
|
* src/StreamFileAllocationEntry.cc
|
|
* src/option_processing.cc
|
|
* src/HttpResponseCommand.cc: Now reuse connection in segmented
|
|
downloads.
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
Suppressed wrong message when finding PreDownloadHandler
|
|
* src/RequestGroup.cc
|
|
|
|
2007-11-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated usage
|
|
* src/version_usage.cc
|
|
|
|
Updated man page
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Updated po files
|
|
* po/aria2c.pot
|
|
* po/*.po
|
|
* po/*.gmo
|
|
|
|
2007-11-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Eliminated g++-4.2 warning
|
|
* src/DownloadHandlerConstants.{h, cc}
|
|
* src/Util.cc
|
|
* test/MetaFileUtilTest.cc
|
|
* test/PStringBuildVisitorTest.cc
|
|
|
|
Fixed bug: --check-integrity doesn't work for multi file torrent.
|
|
* src/RequestGroup.cc
|
|
* src/BtCheckIntegrityEntry.cc
|
|
|
|
2007-11-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed a2io.h
|
|
* src/a2io.h
|
|
|
|
2007-11-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added direct I/O support. The current implementation uses O_DIRECT,
|
|
which is not posix standard and is tested on linux 2.6.21.
|
|
Currently only file allocation uses direct I/O.
|
|
* src/SingleFileAllocationIterator.{h, cc}
|
|
* test/SingleFileAllocationIteratorTest.cc
|
|
* src/MultiFileAllocationIterator.{h, cc}
|
|
* test/MultiFileAllocationIteratorTest.cc
|
|
* src/BinaryStream.h
|
|
* src/DiskWriter.h
|
|
* src/AbstractDiskWriter.{h, cc}
|
|
* src/ByteArrayDiskWriter.h
|
|
* src/DiskAdaptor.h
|
|
* src/AbstractSingleDiskAdaptor.{h, cc}
|
|
* src/MultiDiskAdaptor.{h, cc}
|
|
* src/FileAllocationEntry.cc
|
|
* src/Util.{h, cc}
|
|
* src/OptionHandlerFactory.cc
|
|
* src/prefs.h
|
|
* src/version_usage.cc
|
|
* src/option_processing.cc
|
|
|
|
Moved FileAllocationMan::markCurrentFileAllocationEntryDone() to
|
|
handleException.
|
|
* src/MultiFileAllocationIterator.cc
|
|
|
|
Added EINTR handling
|
|
* src/SocketCore.cc
|
|
|
|
2007-11-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated usage
|
|
* src/version_usage.cc
|
|
|
|
2007-11-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Applied Ross's patch for MinGW port.
|
|
* src/DownloadEngine.h
|
|
|
|
2007-11-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set Content-Type to SingleFileDownloadContext when http response is
|
|
received.
|
|
* src/HttpResponseCommand.cc
|
|
* src/HttpResponse.{h, cc}
|
|
* test/HttpResponseTest.cc
|
|
|
|
2007-11-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Rewritten to add content-type support.
|
|
* src/DownloadHandler.{h, cc}
|
|
* src/BtPostDownloadHandler.{h, cc}
|
|
* test/BtPostDownloadHandlerTest.cc
|
|
* src/MetalinkPostDownloadHandler.{h, cc}
|
|
* test/MetalinkPostDownloadHandlerTest.cc
|
|
* src/PostDownloadHandler.{h, cc}
|
|
* src/DownloadHandlerConstants.{h, cc}
|
|
* src/RequestGroup.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/SingleFileDownloadContext.{h, cc}
|
|
* src/RequestGroup.h
|
|
* src/RequestGroupCriteria.h
|
|
* src/ContentTypeRequestGroupCriteria.h
|
|
|
|
Added 'mem' option value for --follow-metalink, --follow-torrent.
|
|
If it is give, metalink/torrent file is not written to the disk, but
|
|
just is kept in memory. Parsing is occurred on memory.
|
|
* src/MetalinkHelper.{h, cc}
|
|
* src/MetalinkProcessor.h
|
|
* src/Xml2MetalinkProcessor.{h, cc}
|
|
* test/Xml2MetalinkProcessorTest.cc
|
|
* src/DownloadHandlerFactory.{h, cc}
|
|
* test/DownloadHandlerFactoryTest.cc
|
|
* src/PreDownloadHandler.{h, cc}
|
|
* src/OptionHandlerFactory.cc
|
|
* src/DefaultBtContext.{h, cc}
|
|
* test/DefaultBtContextTest.cc
|
|
* src/version_usage.cc
|
|
* src/Metalink2RequestGroup.{h, cc}
|
|
* src/RequestGroup.{h, cc}
|
|
* src/a2functional.h
|
|
* test/a2functionalTest.cc
|
|
* src/MemoryBufferPreDownloadHandler.{h, cc}
|
|
* src/OptionHandlerImpl.h
|
|
* src/prefs.h
|
|
* src/Util.{h, cc}
|
|
* test/UtilTest.cc
|
|
|
|
Keep DownloadResult rather than RequestGroup after downloads to reduce
|
|
memory usage.
|
|
* src/RequestGroupMan.{h, cc}
|
|
* src/DownloadEngine.cc
|
|
* src/BtDependency.{h, cc}: Changed the type of dependee from
|
|
WeakHandle to SharedHandle because WeakHandle could be null.
|
|
* src/RequestGroup.{h, cc}
|
|
* src/DownloadEngineFactory.cc
|
|
* src/DownloadResult.h
|
|
|
|
Set totalLength after download finished
|
|
* src/UnknownLengthPieceStorage.{h, cc}
|
|
|
|
Keep torrent file specified in metalink in memory.
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/BtDependency.cc
|
|
* src/TrueRequestGroupCriteria.h
|
|
|
|
Fixed the bug: seekg is used where seekp should be used.
|
|
* src/ByteArrayDiskWriter.cc
|
|
* test/ByteArraydiskWriterTest.cc
|
|
|
|
2007-11-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed syntax error
|
|
* test/SequenceTest.cc
|
|
|
|
2007-11-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Return false if RequestGroup::isPreLocalFileCheckEnabled() == true
|
|
* src/RequestGroupMan.cc (isSameFileBeingDownloaded)
|
|
|
|
Return false if RequestGroup::isPreLocalFileCheckEnabled() == true
|
|
* src/RequestGroup.cc (downloadFinishedByFileLength)
|
|
|
|
2007-11-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the check to see whether ares_host_callback accepts timeouts
|
|
with c-ares; only c-ares 1.5.0 or newer accepts it.
|
|
* src/NameResolver.{h, cc}
|
|
* m4/libcares.m4
|
|
* configure.ac: Set C++ for language choice.
|
|
|
|
2007-11-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed: compilation fails without c-ares/ares
|
|
* src/DownloadEngine.cc (addCommand): Moved outside #ifdef
|
|
|
|
Generate http/ftp commands only when download is incomplete.
|
|
* src/BtFileAllocationEntry.cc (prepareForNextAction)
|
|
|
|
2007-11-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Corrected typo. Examples are removed since they are available in man
|
|
page.
|
|
* src/version_usage.cc
|
|
|
|
Updated man page.
|
|
* doc/aria2c.1
|
|
* doc/aria2c.1.txt
|
|
* doc/makeman: Commented out sed command.
|
|
|
|
2007-11-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Throw DlAbortEx when a remote file is not found.
|
|
* src/HttpResponse.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/message.h
|
|
|
|
Overwrite an existing file if --allow-overwrite=true is given.
|
|
* src/RequestGroup.cc
|
|
|
|
Removed unused functions
|
|
* src/AbstractCommand.h
|
|
|
|
2007-11-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed 'extern' from 'extern typedef ...' in src/*.h
|
|
|
|
2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated usage
|
|
* src/version_usage.cc
|
|
|
|
2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Trim announce URL
|
|
* src/DefaultBtContext.cc
|
|
* test/ShaVisitorTest.cc
|
|
|
|
Trim argument s. Give trimed s to exception constructor.
|
|
* src/Util.cc (parseInt)(parseLLInt)
|
|
* test/UtilTest.cc
|
|
|
|
2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set precision back to 1.
|
|
* src/ConsoleStatCalc.cc (calculateStat)
|
|
|
|
2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Replaced strtol with Util::parseInt
|
|
* src/ChunkedEncoding.cc
|
|
* src/HttpConnection.cc
|
|
* src/CookieBoxFactory.cc
|
|
* src/ParameterizedStringParser.cc
|
|
* src/Util.cc
|
|
* test/UtilTest.cc
|
|
* test/OptionHandlerTest.cc
|
|
* src/Request.cc
|
|
|
|
Throw exception when empty string is given. The message for exception
|
|
changed.
|
|
* src/Util.cc (parseInt)(parseLLInt)
|
|
* src/message.h
|
|
|
|
2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Set precision to 2 because share ratio is rounded into 1.0 if precision
|
|
set to 1.
|
|
* src/ConsoleStatCalc.cc (calculateStat)
|
|
|
|
2007-11-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Preallocate non-requested file which is adjacent forward to requested
|
|
file('requested' files means the files given in --select-file option)
|
|
if they share a same piece.
|
|
This fixes long pause in the file system which doesn't support sparse
|
|
files like FAT32 while downloading.
|
|
* src/MultiFileAllocationIterator.{h, cc}
|
|
* test/MultiFileAllocationIteratorTest.cc
|
|
* src/FileEntry.{h, cc}
|
|
|
|
Removed unused _option.
|
|
* src/MultiDiskAdaptor.h
|
|
* test/MultiDiskAdaptorTest.cc
|
|
* src/DefaultPieceStorage.cc
|
|
|
|
Set the default value of --seed-ratio to 1.0.
|
|
If 0.0 is given, then seeding continues regardless of share ratio.
|
|
* src/version_usage.cc
|
|
* src/option_processing.cc
|
|
* src/BtSetup.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Fixed: Selective download is not working in BitTorrent
|
|
* src/RequestGroup.cc
|
|
|
|
Introduced Sequence class. Use this instead of Util::unfoldRange()
|
|
* src/PieceStorage.h
|
|
* test/MockPieceStorage.h
|
|
* src/UnknownLengthPieceStorage.h
|
|
* src/DefaultPieceStorage.{h, cc}
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/RequestGroup.cc
|
|
* src/Sequence.h
|
|
* test/SequenceTest.cc
|
|
* src/IntSequence.h
|
|
* src/message.h
|
|
* src/Util.{h, cc}
|
|
* test/UtilTest.cc
|
|
|
|
Added new function 'parse' to catch exception thrown by subclass's
|
|
parseArg
|
|
* src/OptionHandler.h
|
|
* src/OptionParser.cc
|
|
* src/NameMatchOptionHandler.h
|
|
* src/OptionHandlerImpl.h
|
|
* test/OptionHandlerTest.cc
|
|
|
|
Added IntegerRangeOptionHandler. Used for --listen-port and
|
|
--select-file. Now --listen-port accepts range of port.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/version_usage.cc
|
|
* src/OptionHandlerImpl.h
|
|
* src/option_processing.cc
|
|
* src/BtSetup.cc
|
|
* src/PeerListenCommand.{h, cc}
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Implemented operator< for Exception class to provide easy way to print
|
|
exception stack trace.
|
|
* src/Exception.{h, cc}
|
|
* src/main.cc
|
|
* src/option_processing.cc
|
|
|
|
2007-11-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/version_usage.cc
|
|
(showVersion): Reworked.
|
|
(showUsage): Added examples.
|
|
|
|
Removed Hint for total length and file name.
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/RequestGroup.{h, cc}
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
Now --follow-torrent and --follow-metalink option work properly.
|
|
* src/RequestGroup.cc
|
|
|
|
Updated man page
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
2007-11-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Removed.
|
|
* src/PiecedSegment.{h, cc} (operator==)(operator!=)
|
|
|
|
Use Segment::operator==()
|
|
* src/HttpConnection.cc
|
|
* src/Segment.h
|
|
|
|
Updated usage
|
|
* src/version_usage.cc
|
|
|
|
Added EINTR treatment.
|
|
* src/SocketCore.cc
|
|
* src/AbstractDiskWriter.cc
|
|
|
|
Rewritten.
|
|
* src/Util.cc (rangedFileCopy)
|
|
|
|
2007-11-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed typo.
|
|
* src/version_usage.cc
|
|
|
|
2007-11-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented. Now -c option works fine.
|
|
* src/DefaultPieceStorage.cc (markPiecesDone)
|
|
* test/DefaultPieceStorageTest.cc
|
|
|
|
Removed.
|
|
* src/SegmentMan.{h, cc}
|
|
(markAllPiecesDone)
|
|
(markPieceDone)
|
|
|
|
Synchronized po files with
|
|
https://translations.launchpad.net/aria2/trunk/+pots/aria2c
|
|
* src/fr.po
|
|
* src/ru.po
|
|
* src/de.po
|
|
* src/ja.po
|
|
|
|
2007-11-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now --metalink-location accepts a comma-deliminated list of locations.
|
|
* src/MetalinkEntry.{h, cc}
|
|
* test/MetalinkEntryTest.cc
|
|
* src/version_usage.cc
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/Xml2MetalinkProcessor.cc
|
|
* test/Xml2MetalinkProcessorTest.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
* src/Util.cc (toUpper)(toLower): Rewritten.
|
|
|
|
2007-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to detect duplicate download entry which is about to
|
|
download the same file other RequestGroup is downloading.
|
|
* src/RequestGroup.cc
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
2007-11-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Recalculates download progress when loading a control file,
|
|
if the piece length of DownloadContext is different from the one saved
|
|
in the control file. Currently in-flight pieces are ignored.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
* src/Util.{h, cc}
|
|
* test/UtilTest.cc
|
|
|
|
2007-11-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Do not rotate tiers in announce-list.
|
|
* src/DefaultBtAnnounce.{h, cc}: Removed trackerNumTry.
|
|
AnnounceList::allTiersFailed() used instead to detect whether all
|
|
tiers are tried and failed.
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* src/AnnounceList.{h, cc}: If all tiers are tried and failed then
|
|
allTiersFailed() returns true. To reset tier pointer, call resetTier();
|
|
* test/AnnounceListTest.cc
|
|
* src/TrackerWatcherCommand.cc (execute): Removed DlAbortEx catch
|
|
clause. Catch RecoverableException instead of DlRetryEx instead.
|
|
|
|
2007-11-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Implemented checksum validation feature(1 checksum for each file)
|
|
The validation takes place after the download.
|
|
* src/PieceHashCheckIntegrityEntry.{h, cc}: New class.
|
|
* src/IteratableChecksumValidator.{h, cc}: Rewritten.
|
|
* src/CheckIntegrityCommand.cc: Changed log message.
|
|
* src/Metalink2RequestGroup.cc: Set checksum to
|
|
SingleFileDownloadContext.
|
|
* src/StreamCheckIntegrityEntry.{h, cc}: Now derived from
|
|
PieceHashCheckIntegrity class.
|
|
* src/BtCheckIntegrityEntry.{h, cc}: Now derived from
|
|
PieceHashCheckIntegrity class.
|
|
* src/ChecksumCheckIntegrityEntry.{h, cc}: New class.
|
|
* src/IteratableValidator.h: New class.
|
|
* src/message.h
|
|
* src/CheckIntegrityEntry.{h, cc}
|
|
* src/IteratableChunkChecksumValidator.{h, cc}
|
|
* src/SingleFileDownloadContext.h
|
|
* src/DownloadCommand.cc
|
|
|
|
--allow-overwrite=true is no longer needed to check file integrity
|
|
before download in BitTorrent download.
|
|
* src/RequestGroup.cc (getInitialCommand)
|
|
|
|
Removed RequestGroup from queue when RequestGroup::getInitialCommand()
|
|
throws exception.
|
|
* src/RequestGroupMan.cc (getInitialCommands)
|
|
|
|
2007-11-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
urlencode the given url inside Request::parseUrl(...)
|
|
* src/Request.{h, cc}
|
|
* src/Util.{h, cc}
|
|
* test/RequestTest.cc
|
|
|
|
Removed #!metalink3! notation support because it is deleted from
|
|
the metalink specification.
|
|
* src/Request.{h, cc}
|
|
* test/RequestTest.cc
|
|
|
|
2007-11-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Don't connect server before checking file integrity at startup, if
|
|
filesize and output file path are known.
|
|
* src/AbstractCommand.cc
|
|
* src/StreamFileAllocationEntry.cc
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/RequestGroup.{h, cc}
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiationCommand.cc
|
|
|
|
Added DownloadFailureException. If it is thrown, RequestGroup should
|
|
halt.
|
|
* src/AbstractCommand.cc
|
|
* src/DownloadFailureException.h
|
|
* src/RequestGroup.cc
|
|
|
|
Catch RecoverableException, instead of DlAbortEx.
|
|
* src/RequestGroupMan.cc
|
|
* src/FillRequestGroupCommand.cc
|
|
* src/MetaFileUtil.cc
|
|
* src/IteratableChunkChecksumValidator.cc
|
|
|
|
Now first parameter of MSG_DOWNLOAD_ABORTED is gid(RequestGroup::
|
|
getGID())
|
|
* src/CheckIntegrityCommand.cc
|
|
* src/message.h
|
|
|
|
Print gid instead of idx.
|
|
* src/RequestGroupMan.cc
|
|
|
|
Removed exception throwers declaration.
|
|
* src/DirectDiskAdaptor.{h, cc}
|
|
* src/SocketCore.{h, cc}
|
|
* src/MultiDiskAdaptor.{h, cc}
|
|
* src/HttpConnection.{h, cc}
|
|
* src/HttpResponse.{h, cc}
|
|
* src/DiskAdaptor.{h, cc}
|
|
* src/CopyDiskAdaptor.{h, cc}
|
|
* src/MultiDiskAdaptor.{h, cc}
|
|
* src/HttpHeaderProcessor.{h, cc}
|
|
* src/AbstractSingleDiskAdaptor.{h, cc}
|
|
* src/Util.{h, cc}
|
|
* test/UtilTest.cc
|
|
* src/DefaultDiskWriter.{h, cc}
|
|
* src/FtpConnection.{h, cc}
|
|
* src/AbstractDiskWriter.{h, cc}
|
|
|
|
Removed duplicate code.
|
|
* src/StreamCheckIntegrityEntry.cc
|
|
|
|
Removed unnecessary include.
|
|
* src/DiskWriter.h
|
|
|
|
Included Exception.h
|
|
* src/option_processing.cc
|
|
|
|
Included 2 files and added doc
|
|
* src/TrackerWatcherCommand.cc
|
|
|
|
* src/SocketCore.cc (writeData): Fixed send error with GnuTLS.
|
|
|
|
2007-11-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed CheckIntegrityEntry interface so that it can define
|
|
the action when all the chunk checksums are valid.
|
|
* src/CheckIntegrityEntry.h
|
|
* src/StreamCheckIntegrityEntry.{h, cc}
|
|
* src/BtCheckIntegrityEntry.{h, cc}: Currently,when all the checksums
|
|
are valid, then aira2 goes to seeding mode. Sometimes it is better
|
|
to exit rather than doing seeding. So, it would be good to toggle this
|
|
behavior.
|
|
* src/CheckIntegrityCommand.cc
|
|
* src/AbstractCommand.cc
|
|
* src/RequestGroup.cc
|
|
|
|
2007-11-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reflect the download length of in-flight pieces.
|
|
It makes the download length readout more precise.
|
|
* src/DefaultPieceStorage.{h, cc}
|
|
* test/DefaultPieceStorageTest.cc
|
|
* src/a2functional.h
|
|
* test/a2functionalTest.cc
|
|
|
|
Lower CPU load when --max-download-limit is used.
|
|
There is up and down in speed indicator when enabling
|
|
http-pipelining but a download goes well. I think the problem is that
|
|
because http-pipelining is enabled, DownloadCommand is created for
|
|
each segment and in its constructor, PeerStat::downloadStart() is
|
|
called. In PeerStat::downloadStart(), speed calculation object is
|
|
reseted, which makes download speed zero.
|
|
* src/DownloadCommand.cc
|
|
|
|
Rewritten using accumulate.
|
|
* src/RequestGroupMan.cc (calculateStat)
|
|
|
|
Code clearnup.
|
|
* src/FtpNegotiationCommand.cc
|
|
* src/HttpResponseCommand.cc
|
|
|
|
2007-11-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed: Can not resume: aria2 reports download already finished.
|
|
* src/AbstractCommand.{h, cc}
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiateCommand.cc
|
|
|
|
2007-11-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now a file is stored in the directory specified in .metalnk file
|
|
(file[@name]).
|
|
* src/Metalink2RequestGroup.cc
|
|
|
|
Create the directory structure when opening the file if it doesn't
|
|
exist.
|
|
* src/AbstractDiskWriter.cc
|
|
* src/Util.{h, cc}
|
|
* src/File.h
|
|
* test/UtilTest.cc
|
|
|
|
Removed file name comparison
|
|
* src/Metalink2RequestGroup.cc
|
|
* src/HttpResponseCommand.cc
|
|
|
|
Rewritten using Util::mkdirs()
|
|
* src/FileEntry.cc (setupDir)
|
|
* test/FileEntryTest.cc
|
|
|
|
Updated doc
|
|
* src/SingleFileDownloadContext.h
|
|
|
|
2007-11-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now SleepCommand dispatches nextCommand when halt is requested.
|
|
It avoids a possible long wait after hitting CTRL-C.
|
|
* src/SleepCommand.{h, cc}
|
|
* src/RequestGroupAware.{h, cc}
|
|
|
|
2007-11-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed: the listen port sent to the tracker is wrong. If aria2 fails
|
|
to open listen port, then remove the port number from the tracker
|
|
request.
|
|
* src/DefaultBtAnnounce.cc
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* test/MockPieceStorage.h
|
|
|
|
Inject randomizer to DefaultBtAnnounce and DefaultBtContext to make
|
|
them more testable.
|
|
* src/DefaultBtAnnounce.{h, cc}
|
|
* src/DefaultBtContext.{h, cc}
|
|
* src/Util.{h, cc}
|
|
* test/DefaultBtAnnounceTest.cc
|
|
* test/DefaultBtContextTest.cc
|
|
* test/UtilTest.cc
|
|
|
|
Added 'B' to upload bytes readout.
|
|
* src/ConsoleStatCalc.cc
|
|
|
|
Now the listen port for BitTorrent download is opened when it is
|
|
needed.
|
|
* src/DownloadEngineFactory.cc
|
|
* src/BtSetup.{h, cc}
|
|
* src/PeerListenCommand.{h, cc}
|
|
|
|
Now an exception thrown while parsing tracker response is now logged.
|
|
If DlAbortEx is catched, then btAnnounce->resetAnnounce() immediately
|
|
called, which means no retry is made in this case, assuming a tracker
|
|
has a problem.
|
|
* src/TrackerWatcherCommand.cc
|
|
|
|
Fixed: downloading a file whose length is unkown fails.
|
|
* src/DownloadCommand.cc
|
|
|
|
Simplified prepareForNextSegment()
|
|
* src/DownloadCommand.cc
|
|
|
|
Updated
|
|
* po/POTFILES.in
|
|
|
|
2007-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Re-implemented a file listing for Metalink, which was dropped while
|
|
http/ftp/torrent integration was being implemented.
|
|
* src/MetalinkHelper.{h, cc}: New class.
|
|
* test/MetalinkHelperTest.cc
|
|
* src/main.cc
|
|
* src/Metalink2RequestGroup.cc
|
|
|
|
2007-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to display the detailed torrent file information.
|
|
Now -S option gives not only a file listing, but also total download
|
|
length, info hash, announce URI, piece length, the number of pieces,
|
|
and mode(single or multi-torrent).
|
|
* src/DefaultBtContext.{h, cc} (operator<<): New function.
|
|
* src/Util.cc (toStream): Show file length in a abbreviated form(like
|
|
KiB)
|
|
* test/UtilTest.cc
|
|
* src/main.cc
|
|
|
|
2007-10-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added ftp://USER:PASSWD@Servername automatic parsing.
|
|
* src/Request.{h, cc}: Removed AuthResolvers. Added _username and
|
|
_password. Recognize username and password in URI.
|
|
* src/main.cc: Use AuthConfigFactory instead of RequestFactory.
|
|
* src/RequestGroup.cc: Use AuthConfigFactory instead of RequestFactory.
|
|
* src/RequestFactory.{h, cc}: Removed.
|
|
* src/AuthConfigFactory.{h, cc}: New class.
|
|
* src/FtpConnection.cc: Use AuthConfigFactory.
|
|
* src/HttpRequest.cc: Use AuthConfigFactory.
|
|
* test/HttpRequestTest.cc: Updated.
|
|
* test/RequestTest.cc: Updated.
|
|
* test/AuthConfigFactoryTest.cc: New class.
|
|
* test/RequestFactoryTest.cc: Removed.
|
|
|
|
2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use RequestGroup::allDownloadFinished() to decide whether the control
|
|
file should be removed or saved.
|
|
* src/RequestGroup.{h, cc} (allDownloadFinished): New function.
|
|
* src/RequestGroupMan.cc (removeStoppedGroup) (save)
|
|
|
|
2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use File::renameTo()
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
|
|
Added --no-file-allocation-limit command-line option.
|
|
* src/version_usage.cc
|
|
* src/option_processing.cc
|
|
* src/OptionHandlerFactory.cc
|
|
* src/RequestGroup.{h, cc}
|
|
* src/BtCheckIntegrityEntry.cc
|
|
* src/StreamCheckIntegrityEntry.cc
|
|
* src/prefs.h
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Now prealloc is the default value for --file-allocation option.
|
|
* src/version_usage.cc
|
|
* src/option_processing.cc
|
|
* doc/aria2c.1.txt
|
|
* doc/aria2c.1
|
|
|
|
Don't URL-encode user-agent.
|
|
* src/HttpRequest.cc
|
|
|
|
Updated translations
|
|
* po/LINGUAS: Added nl for Dutch translation.
|
|
* po/nl.po: Added Dutch translation, thanks to A. Bram Neijt.
|
|
* po/de.po: Updated German translation, thanks to Patrick Ruckstuhl.
|
|
* po/POTFILES.in: Updated.
|
|
|
|
2007-10-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to recognize url-list in a torrent file.
|
|
The retrieved URLs are attached to the corresponding FileEntry.
|
|
* src/DefaultBtContext.{h, cc}
|
|
* src/FileEntry.{h, cc}
|
|
* test/DefaultBtContextTest.cc
|
|
|
|
2007-10-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/ConsoleStatCalc.cc: Let the user know that aria2 is now seeding
|
|
after the download finishes.
|
|
|
|
2007-10-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Piece.{h, cc}: Added SubPiece infrastructure to track down
|
|
the data smaller than block length.
|
|
A block length can be specified by constructor's argument.
|
|
* src/DefaultPieceStorage.{h, cc} (getMissingPiece):
|
|
Get a missing piece in the range of given FileEntry. This function is
|
|
not used in the program yet.
|
|
* src/Util.h: Added some macros.
|
|
|
|
2007-10-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added HTTP/1.1 keep alive and pipelining support.
|
|
See --enable-http-keep-alive and --enable-http-pipelining option.
|
|
* src/AbstractCommand.{h, cc}: Now it has one-to-many relation to
|
|
Segment.
|
|
* src/HttpDownloadCommand.{h, cc}
|
|
* src/OptionHandlerFactory.cc
|
|
* src/HttpConnection.{h, cc}
|
|
* src/version_usage.cc
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
* src/Segment.h
|
|
* src/HttpRequestCommand.{h, cc}
|
|
* src/option_processing.cc
|
|
* src/prefs.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/SegmentMan.{h, cc}
|
|
* src/FtpNegotiateCommand.cc
|
|
* src/HttpProxyResponseCommand.cc
|
|
* src/Request.cc
|
|
* src/HttpRequest.cc
|
|
* src/DownloadCommand.cc
|
|
* test/HttpRequestTest.cc
|
|
* test/RequestTest.cc
|
|
|
|
2007-10-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/ConsoleCalc.cc (calculateStat): Hide SPD after the download
|
|
finished.
|
|
|
|
2007-10-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Metalink2RequestGroup.cc (generate): Throw exception instead of
|
|
catching it inside the method.
|
|
When no file entry is found in a metalink without querying user
|
|
preferences, throw the exception with the error message that suggests
|
|
metalink file is probably broken.
|
|
* src/RequestGroup.cc (postDownloadProcessing): Catch exception here.
|
|
|
|
2007-10-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prevents remote Metalink/Torrent file from begin
|
|
processed.
|
|
* src/RequestGroupMan.cc (removeStoppedGroup)
|
|
|
|
Added debug message.
|
|
* src/BtPostDownloadHandler.cc
|
|
* src/MetalinkPostDownloadHandler.cc
|
|
* src/PostDownloadHandler.{h, cc}
|
|
* src/RequestGroup.cc
|
|
|
|
2007-10-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Request.cc (parseUrl): Removed unnecessary slashes around dir.
|
|
|
|
2007-10-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/MultiUrlRequestInfo.h: Updated the message shown when program
|
|
stops and there are any unfinished or in-progress downloads.
|
|
Added the legend of "stat".
|
|
|
|
2007-10-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Throw exception when chunck checksum verification fails.
|
|
* src/DownloadCommand.cc (validatePieceHash): New function.
|
|
* src/PiecedSegment.{h, cc} (clear): New function.
|
|
* src/GrowSegment.{h, cc} (clear): New function.
|
|
* src/Segment.h (clear): New function.
|
|
* src/SegmentMan.{h, cc} (validatePieceHash): Removed.
|
|
* test/SegmentTest.cc
|
|
* test/GrowSegmentTest.cc
|
|
|
|
2007-10-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Do not send referer when redirected.
|
|
* src/Request.cc (redirectUrl)
|
|
* test/RequestTest.cc
|
|
* test/HttpRequestTest.cc
|
|
|
|
2007-10-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
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.
|
|
|
|
2007-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the compilation error on 64bit platform.
|
|
* test/HttpHeaderProcessorTest.cc
|
|
|
|
2007-09-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Ross's patch that fixes compilation problem in MinGW
|
|
* test/DefaultBtProgressInfoFileTest.cc
|
|
|
|
2007-09-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Updated fr.po by sebone
|
|
* po/fr.po
|
|
|
|
Updated man page.
|
|
* doc/aria2c.1.txt
|
|
|
|
* Release 0.11.3
|
|
|
|
2007-09-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/MetalinkRequestInfo.cc (execute): Fixed BitTorrent download
|
|
failure in Metalink.
|
|
|
|
2007-09-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Automatically save *.aria2 control file of http/ftp download in every
|
|
60 seconds.
|
|
* src/AutoSaveCommand.{h, cc}: New class.
|
|
* src/TimeBasedCommand.{h, cc}: New class.
|
|
* src/DownloadEngineFactory.cc (newConsoleEngine)
|
|
|
|
Disable parameterized URI support by default. Added -P option to
|
|
enable the feature.
|
|
* src/prefs.h: Added PREF_PARAMETERIZED_URI
|
|
* src/OptionHandlerFactory.cc
|
|
* src/main.cc: Also updated usages for -Z and --auto-file-renaming
|
|
|
|
Updated Japanese translation.
|
|
* po/ja.po
|
|
|
|
Updated man page.
|
|
* doc/aria2c.1.txt
|
|
|
|
* Release 0.11.3-rc
|
|
|
|
2007-09-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Now *.aria2 contorol file is first saved to *.aria2__temp and if
|
|
it is successful, then renamed to *.aria2.
|
|
This prevents *.aria2 file from being truncated or corrupted when
|
|
file system becomes out of space.
|
|
* src/DefaultBtProgressInfoFile.cc (save)
|
|
* src/SegmentMan.cc (save)
|
|
* test/DefaultBtProgressInfoFileTest.cc (testSave): Implemented.
|
|
|
|
2007-09-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reduced the fragmentation of bitfield in http/ftp download.
|
|
* src/BitfieldMan.cc (getSparseMissingUnusedIndex)
|
|
* test/BitfieldManTest.cc
|
|
|
|
2007-08-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the ability to disable segmented download in .metalink.
|
|
aria2 can now recognize 'maxconnections' attribute in 'resources' and
|
|
'url' tag.
|
|
* src/MetalinkEntry.{h, cc}
|
|
* src/RequestResource.{h, cc}
|
|
* src/MetalinkRequestInfo.cc
|
|
* src/Xml2MetalinkProcessor.cc
|
|
* test/Xml2MetalinkProcessorTest.cc
|
|
|
|
2007-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added parameterized URI support.
|
|
* src/main.cc: -Z option added.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/prefs.h: Added PREF_FORCE_SEQUENTIAL.
|
|
* src/PStringDatum.h: New class.
|
|
* src/PStringSegment.{h,cc}: New class.
|
|
* src/PStringNumLoop.h: New class.
|
|
* src/PStringSelect.h: New class.
|
|
* src/NumberDecorator.h: New class.
|
|
* src/FixedWidthNumberDecorator.h: New class.
|
|
* src/AlphaNumberDecorator.h: New class.
|
|
* src/PStringVisitor.h: New class.
|
|
* src/PStringBuildVisitor.{h,cc}: New class.
|
|
* src/ParameterizedStringParser.{h,cc}: New class.
|
|
* src/Util.{h,cc}
|
|
(isNumber): New function.
|
|
(isLowercase): New function.
|
|
(isUppercase): New function.
|
|
(alphaToNum): New function.
|
|
* test/ParameterizedStringParserTest.cc: New class.
|
|
* test/AlphaNumberDecoratorTest.cc: New class.
|
|
* test/PStringBuildVisitorTest.cc: New class.
|
|
* test/UtilTest.cc
|
|
(testIsNumber): New function.
|
|
(testIsLowercase): New function.
|
|
(testIsUppercase): New function.
|
|
(testAlphaToNum): New function.
|
|
|
|
Added '\n' after the error message
|
|
* src/RequestInfo.h (printDownloadAbortMessage)
|
|
|
|
Added auto file renaming feature in http(s)/ftp download.
|
|
* src/main.cc: Added --auto-file-renaming command-line option.
|
|
* src/OptionHandlerFactory.cc
|
|
* src/prefs.h: Added PREF_AUTO_FILE_RENAMING
|
|
* src/RequestGroup.{h, cc}
|
|
(shouldCancelDownloadForSafety): Rewritten
|
|
(tryAutoFileRenaming): New function.
|
|
* src/SegmentMan.{h, cc} (shouldCancelDownloadForSafety): Removed.
|
|
* src/HttpResponseCommand.cc
|
|
(executeInternal): Removed the call to RequestGroupMan::
|
|
isSameFileBeingDownloaded()
|
|
* src/FtpNegotiateCommand.cc
|
|
(recvSize): Removed the call to RequestGroupMan::
|
|
isSameFileBeingDownloaded()
|
|
* test/RequestGroupTest.cc: New class.
|
|
|
|
2007-08-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Ross's patch: Removed setmode(). Use _CRT_fmode to enable binary
|
|
IO.
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
* src/MetaFileUtil.cc
|
|
* src/SimpleLogger.cc
|
|
* src/SegmentMan.cc
|
|
* src/Util.cc
|
|
* src/Platform.cc
|
|
|
|
2007-08-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Xml2MetalinkProcessor.cc (getPieceHash): Added missing .c_str().
|
|
|
|
2007-08-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Avoid sparse files if possible, because VFAT32 doesn't support it.
|
|
* src/DefaultDiskWriter.cc (initAndOpenFile)
|
|
|
|
Fixed the bug that prevents file allocation is not done when
|
|
dowloading multi-torrent file.
|
|
* src/AbstractDiskWriter.cc (openFile)
|
|
|
|
Increase the maximum number of -j option from 15 to 45.
|
|
* src/OptionHandlerFactory.cc (createOptionHandlers)
|
|
|
|
Added fr.po, thanks to Charles Landemaine.
|
|
* po/fr.po
|
|
* po/LINGUAS
|
|
|
|
|
|
2007-08-10 Ross Smith II <aria2spam at smithii dot com>
|
|
|
|
gcc 3.4.4 support:
|
|
* src/DefaultBtContext.cc: int32_t -> int
|
|
* src/main.cc: int -> int32_t, int32_t -> int
|
|
* src/messageDigest.h: uint32_t -> unsigned int
|
|
* src/NameResolver.h: int32_t -> int
|
|
* src/PeerConnection.cc: int -> int32_t
|
|
* src/SpeedCalc.cc: int32_t -> int
|
|
* src/TrackerUpdateCommand.h: int -> int32_t
|
|
* src/Util.cc: int32_t -> int
|
|
* src/Util.h: int32_t -> int
|
|
* src/Xml2MetalinkProcessor.cc: int -> uint32_t, int64_t -> uint64_t
|
|
* test/AnnounceListTest.cc: int -> int32_t
|
|
* test/ChunkedEncodingTest.cc: int -> int32_t
|
|
* test/DataTest.cc: int -> int32_t
|
|
* test/DefaultBtRequestFactoryTest.cc: int -> int32_t
|
|
* test/DefaultPeerListProcessorTest.cc: int -> int32_t
|
|
* test/DefaultPieceStorageTest.cc: int -> int32_t
|
|
* test/FeatureConfigTest.cc: int -> int32_t
|
|
* test/MetalinkEntryTest.cc: int -> int32_t
|
|
* test/MockBtRequestFactory.h: int -> int32_t
|
|
* test/MockPieceStorage.h: int -> int32_t
|
|
* test/OptionTest.cc: int -> int32_t
|
|
* test/RequestTest.cc: int -> int32_t
|
|
* test/SegmentManTest.cc: int -> int32_t
|
|
* test/Xml2MetalinkProcessorTest.cc: int -> int32_t
|
|
|
|
2007-08-10 Ross Smith II <aria2spam at smithii dot com>
|
|
|
|
Move sleep functions to Util class:
|
|
* src/Util.cc
|
|
(sleep): New function.
|
|
(usleep): New function.
|
|
* src/DownloadCommand.cc: sleep -> Util::sleep
|
|
* test/TimeSeedCriteriaTest.cc: sleep -> Util::sleep
|
|
|
|
MinGW build enhancements. The following files are added:
|
|
* src/timegm.{c,h}
|
|
|
|
Changes to support the above new files:
|
|
* configure.ac
|
|
* src/Makefile.am
|
|
* src/a2time.h
|
|
* src/Util.cc:
|
|
* src/strptime.c: Added support for %Z option.
|
|
|
|
Fixed MinGW non-blocking bug.
|
|
* src/SocketCore.cc
|
|
* src/HttpRequestCommand.cc
|
|
|
|
Miscellenous build fixes/enhancements.
|
|
* configure.ac: Added summary report.
|
|
* src/Platform.h: Tweaked #include's.
|
|
* src/a2netcompat.h: Tweaked #include's.
|
|
* src/strptime.h: Tweaked #include's.
|
|
* src/gai_strerror.c: Tweaked #include's.
|
|
* src/gai_strerror.h: _D_GETADDRINFO_H -> _D_GAI_STRERROR_H
|
|
* src/getaddrinfo.h: Moved #ifndef __MINGW32__
|
|
* src/gettimeofday.h: Added HAVE_CONFIG_H
|
|
|
|
2007-08-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Increased the initial connection size in BitTorrent download to 40.
|
|
* src/BtRuntime.h
|
|
|
|
Added the usage message of --peer-id-prefix option.
|
|
* src/main.cc
|
|
|
|
* Release 0.11.2
|
|
|
|
2007-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
MessageDigestHelper is introduced in order to simplify the use
|
|
of message digest. Removed repeated code.
|
|
The message digest algorithm is now specified by string, like "sha1",
|
|
"md5".
|
|
* src/messageDigest.{h, cc}
|
|
* src/MessageDigestHelper.{h, cc}: New class.
|
|
* src/DefaultPieceStorage.cc
|
|
* src/DefaultBtContext.{h, cc}
|
|
(computeFastSet): New function.
|
|
(setInfoHash): Added for unit testing.
|
|
(setNumPieces): Added for unit testing.
|
|
* src/DefaultBtInteractive.cc
|
|
* src/BtPieceMessage.cc
|
|
* src/Peer.cc
|
|
* src/Checksum.h
|
|
* src/message.h
|
|
* src/IteratableChecksumValidator.h
|
|
* src/ChunkChecksumValidator.{h, cc}: Use IteratableChecksumValidator
|
|
inside it.
|
|
* src/SegmentMan.{h, cc}
|
|
(checkIntegrity): Removed.
|
|
* src/IteratableChunkChecksumValidator.{h, cc}
|
|
* src/Util.h
|
|
(sha1Sum): Removed.
|
|
(simpleMessageDigest): Removed.
|
|
(fileChecksum): Removed.
|
|
(computeFastSet): Removed.
|
|
* src/ShaVisitor.cc
|
|
* src/ChunkChecksum.h
|
|
* src/DownloadCommand.cc
|
|
|
|
Removed messageDigest virtual functions.
|
|
* src/MultiDiskAdaptor.{h, cc}
|
|
* src/DiskAdaptor.h
|
|
* src/ByteArrayDiskWriter.h
|
|
* src/DiskWriter.h
|
|
* src/DiskAdaptorWriter.h
|
|
* src/AbstractSingleDiskAdaptor.{h, cc}
|
|
* src/AbstractDiskWriter.{h, cc}
|
|
|
|
Fixed comilation error when message digest is disabled.
|
|
* src/MetalinkEntry.{h, cc}
|
|
* src/MetalinkRequestInfo.cc
|
|
|
|
Removed srandom and random.
|
|
* src/SimpleRandomizer.h
|
|
|
|
Added size() virtual function to DiskAdaptor
|
|
* src/MultiDiskAdaptor.h
|
|
|
|
Fixed the bug that causes that files are not opened correctly in
|
|
multi-file torrent.
|
|
* src/TorrentRequestInfo.cc
|
|
* src/MultiDiskAdaptor.cc
|
|
|
|
Added SHA256 support
|
|
* src/messageDigest.cc
|
|
* src/Xml2MetalinkProcessor.cc
|
|
|
|
Show supported message digest algorithms
|
|
* src/main.cc
|
|
|
|
Updated contact info.
|
|
* src/main.cc
|
|
|
|
Applied Ross's patch
|
|
* src/a2netcompat.h
|
|
* src/main.cc
|
|
|
|
Fixed the bug that prevents a remote metalink from not being processed
|
|
even if '-o foo.metalink' is specified.
|
|
* src/MetalinkRequestInfo.cc
|
|
|
|
2007-08-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Dan's patch:
|
|
* src/ByteArrayDiskWriter.cc: ios_base -> ios
|
|
|
|
Use va_copy to avoid core dump on amd64:
|
|
* src/SimpleLogger.cc
|
|
|
|
Updated contact info.
|
|
* src/main.cc
|
|
|
|
Added #ifdef ENABLE_MESSAGE_DIGEST to fix test errors when message
|
|
digest is not available.
|
|
* src/MetalinkEntry.h
|
|
|
|
2007-08-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Make a2netcompat.h include a2io.h to fix compilation error:
|
|
* src/a2netcompat.h
|
|
* src/SocketCore.cc: Removed include of a2io.h
|
|
* src/Util.cc: Removed include of a2io.h
|
|
|
|
Gather time related functions to a2time.h:
|
|
* src/a2time.h: New file.
|
|
* src/DefaultPeerStorage.cc
|
|
* src/SimpleLogger.cc
|
|
* src/Util.{h, cc}
|
|
* src/SimpleRandomizer.h
|
|
* src/TimeA2.{h,cc}
|
|
* src/DownloadCommand.cc
|
|
* src/main.cc
|
|
|
|
Removed #ifdef __MINGW32__ since gai_strerror is included in
|
|
a2netcompat.h:
|
|
* src/NameResolver.cc
|
|
|
|
Fixed compilation error without openssl:
|
|
* src/SocketCore.{h,cc}: Moved include of openssl/err.h to SocketCore.h
|
|
|
|
Added default block to suppress compiler warnings:
|
|
* src/MetalinkRequestInfo.cc (AccumulateNonP2PUrl::operator())
|
|
|
|
2007-07-26 Ross Smith II <aria2spam at smithii dot com>
|
|
|
|
MinGW build enhancements. The following files are added:
|
|
* src/gai_strerror.{c,h}
|
|
* src/gettimeofday.{c,h}
|
|
|
|
Changes to support the above new files:
|
|
* configure.ac
|
|
* src/Makefile.am
|
|
* src/a2netcompat.h
|
|
* src/TimeA2.cc
|
|
* src/DefaultPeerStorage.cc
|
|
* src/NameResolver.cc: removed mingw_strerror() function.
|
|
* src/SocketCore.cc: removed mingw_strerror() function.
|
|
|
|
Miscellaneous MinGW build fixes.
|
|
* src/a2io.h: Use _lseeki64() instead of lseek()
|
|
* src/common.h
|
|
* src/DefaultFileAllocator.cc
|
|
* src/GlowFileAllocator.cc
|
|
* src/main.cc: Moved #include "prefs.h" to quiet compile error.
|
|
* src/NameResolver.cc
|
|
(callback): Changed int32_t to int.
|
|
(resolve): Changed int32_t to int.
|
|
* src/Platform.cc
|
|
* src/Platform.h
|
|
* test/MultiDiskWriterTest.cc
|
|
* test/PeerMessageUtilTest.cc
|
|
* src/localtime_r.c: Add DeleteCriticalSection() and at exit().
|
|
|
|
Other enhancements and fixes.
|
|
* src/HttpRequestCommand.cc
|
|
(executeInternal) Use non-blocking socket for HTTPS (MinGW only).
|
|
* src/SocketCore.cc:
|
|
(error): New function to abstract errno/WSAGetLastError().
|
|
(errorMsg): New function to abstract errno/WSAGetLastError().
|
|
(initiateSecureConnection): Added more detailed error reporting.
|
|
* src/SocketCore.h: Added private variable blocking, to allow
|
|
proper handling of OpenSSL psuedo-errors.
|
|
* src/message.h
|
|
(EX_SSL_INIT_FAILURE)
|
|
(EX_SSL_IO_ERROR)
|
|
(EX_SSL_PROTOCOL_ERROR)
|
|
(EX_SSL_UNKNOWN_ERROR)
|
|
(EX_SSL_CONNECT_ERROR)
|
|
(EX_SOCKET_BLOCKING)
|
|
(EX_SOCKET_NONBLOCKING)
|
|
(EX_SOCKET_UNKNOWN_ERROR)
|
|
* src/Util.cc
|
|
(setGlobalSignalHandler): Renamed signal to sig as signal is a
|
|
reserved name.
|
|
(httpGMT): Fixed typo.
|
|
|
|
2007-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Merged Ross's win32 patch(manually)
|
|
In the course of merging, following files are added.
|
|
* src/strptime.{h,c}
|
|
* src/libgen.{h,c}
|
|
* src/inet_aton.{h,c}
|
|
* src/Platform.{h,cc}
|
|
* src/localtime_r.{h,c}
|
|
* src/getaddrinfo.{h,c}
|
|
I've gethered network related things, and put them to following file:
|
|
* src/a2netcompat.h
|
|
Also io related things are put to following file:
|
|
* src/a2io.h
|
|
|
|
Changed %lld to %s because mingw32 doesn't recognize %lld.
|
|
* src/message.h
|
|
(MSG_ALLOCATION_COMPLETED)
|
|
(EX_TOO_LARGE_FILE)
|
|
(EX_SIZE_MISMATCH)
|
|
(EX_FILE_OFFSET_OUT_OF_RANGE)
|
|
(EX_INVALID_CHUNK_CHECKSUM)
|
|
(EX_INVALID_RANGE_HEADER)
|
|
* src/FileAllocationCommand.cc
|
|
* src/HttpResponse.cc
|
|
* src/RequestGroup.cc
|
|
* src/MultiDiskAdaptor.cc
|
|
* src/OptionHandlerImpl.h
|
|
* src/HttpResponseCommand.cc
|
|
* src/FtpNegotiateCommand.cc
|
|
* src/IteratableChecksumValidator.cc
|
|
* src/SegmentMan.cc
|
|
* src/ChunkChecksumValidator.cc
|
|
|
|
Added Randomizer::getRandomNumber(long int)
|
|
* src/Randomizer.h (getRandomNumber)
|
|
* src/SimpleRandomizer.h (getRandomNumber)
|
|
* src/BitfieldMan.cc (getMissingIndexRandomly): Use this new function.
|
|
* src/Util.cc (randomAlpha): Use this new function.
|
|
|
|
2007-07-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Converted int's to in32_t. long long int's are also converted to
|
|
int64_t
|
|
|
|
2007-07-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prevents cookies from being sent to the server
|
|
if the domain of cookie is FQDN and starts with ".".
|
|
* src/Cookie.cc (match)
|
|
|
|
To add the ability to change peer id.
|
|
* src/DefaultBtContext.h
|
|
(_peerIdPrefix): New variable
|
|
(setPeerIdPrefix): New function.
|
|
* src/torrentRequestInfo.cc
|
|
(execute): Set the option value of PREF_PEER_ID_PREFIX to
|
|
DefaultBtContext.
|
|
* src/main.cc (main): Added peer-id-prefix command-line option.
|
|
The usage message is not added yet.
|
|
* src/DefaultBtContext.cc
|
|
(generatePeerId): Use _peerIdPrefix.
|
|
* src/prefs.h (PREF_PEER_ID_PREFIX): New definition.
|
|
|
|
2007-07-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that prevents filename in content-disposition from
|
|
being retrieved when filename is not quoted.
|
|
* src/Util.cc (getContentDispositionFilename)
|
|
|
|
Fixed the bug that causes infinate loop and memory leak when file open
|
|
operation failed.
|
|
* src/HttpResponseCommand.cc (handleDefaultEncoding)
|
|
|
|
2007-07-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fixed the bug that causes segfault when all URIs specified are
|
|
unsupported.
|
|
* src/RequestGroupMan.cc (getInitialCommands)
|
|
Check if RequestGroup::createNextCommand() returns empty list of
|
|
commands.
|
|
* src/RequestGroup.cc (createNextCommand)
|
|
Change log level from info to error so that users can notice that
|
|
an error occurred.
|
|
|
|
Fixed the bug that causes segfault when a zero-sized file is
|
|
downloaded.
|
|
* src/BitfieldMan.cc (isAllBitSet)
|
|
Return true if bitfieldLength is 0.
|
|
|
|
2007-07-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/main.cc
|
|
(showUsage): Added 3 usage examples for metalink download.
|
|
|
|
Replace MetalinkChunkChecksum with ChunkChecksum.
|
|
* src/MetalinkChunkChecksum.h: Removed.
|
|
* src/MetalinkEntry.h: MetalinkChunkChecksum -> ChunkChecksum.
|
|
* src/Xml2MetalinkProcessor.h: MetalinkChunkChecksum -> ChunkChecksum.
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(getPieceHash): Use ChunkChecksum instead of MetalinkChunkChecksum.
|
|
* src/MetalinkRequestInfo.cc (execute)
|
|
|
|
* Release 0.11.1
|
|
|
|
2007-07-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reads URIs from stdin when "-i -" is specified.
|
|
* src/UriFileListParser.h, src/UriFileListParser.cc: Removed.
|
|
* src/UriListParser.h, src/UriListParser.cc: New class.
|
|
* src/StreamUriListParser.h: New class.
|
|
* src/FileUriListParser.h: New class.
|
|
* src/main.cc (main): Use StreamUriListParser and FileUriListParser
|
|
instead of UriFileListParser.
|
|
|
|
2007-07-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made console readout more readable.
|
|
* src/ConsoleDownloadEngine.cc (sendStatistics)
|
|
|
|
2007-07-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Fix the bug that causes -s option not to work.
|
|
* src/main.cc (main)
|
|
* src/a2algo.h: New file.
|
|
|
|
2007-07-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Create directory structure specified in metalink file.
|
|
* src/RequestGroup.h, src/RequestGroup.cc
|
|
(initAndOpenFile): Create a directory to store files if it does not
|
|
exist.
|
|
(getDir): New function.
|
|
|
|
Added ETA and download speed for an individual file to readout.
|
|
* src/ConsoleDownloadEngine.cc (sendStatistics)
|
|
* src/RequestGroup.h
|
|
(calculateDownloadSpeed): New function.
|
|
|
|
2007-06-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Made -S option work with metalink file and provided selective download
|
|
to metalink.
|
|
* src/MetalinkEntry.h, src/MetalinkEntry.cc
|
|
(filename): Removed.
|
|
(file): New variable.
|
|
(size): Removed.
|
|
(operator=): Updated.
|
|
(getPath): New function.
|
|
(getLength): New function.
|
|
(toFileEntry): New function.
|
|
* src/TorrentRequestInfo.h, src/TorrentRequestInfo.cc
|
|
(execute): Use toStream.
|
|
(showFileEntry): Removed.
|
|
* src/MetalinkRequestInfo.h
|
|
(targetFiles): New variable.
|
|
(setTargetFiles): New variable.
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Added the ability to print file information included in
|
|
a metalink file.
|
|
Added selective download mode to metalink.
|
|
* src/main.cc
|
|
(showUsage): Updated to denote that -S and --select-file options are
|
|
applicable to metalink.
|
|
* src/FileEntry.h
|
|
(operator=): New function.
|
|
(getBasename): New function.
|
|
(getDirname): New function.
|
|
* src/Util.h, src/Util.cc
|
|
(toStream): New function.
|
|
* src/Xml2MetalinkProcessor.cc: Updated.
|
|
|
|
Made aria2 work with metalink with directory structure.
|
|
* src/File.h, src/File.cc
|
|
(getBasename): New function.
|
|
(getDirname): New function.
|
|
* src/RequestGroup.h, src/RequestGroup.cc
|
|
(_topDir): New variable.
|
|
(setTopDir): New function.
|
|
(initSegmentMan): A directory structure is added to _segmentMan->dir.
|
|
|
|
Rewrote HTTP header parsing with stringstream.
|
|
* src/HttpConnection.h, src/HttpConnection.cc
|
|
(HttpRequestEntry): New class.
|
|
(headerBuf): Removed.
|
|
(headerBufLength): Removed.
|
|
(outstandingHttpRequests): Now its element type is
|
|
HttpRequestEntryHandle.
|
|
(findEndOfHeader): Removed.
|
|
(receiveResponse): Rewritten.
|
|
* src/HttpHeaderProcessor.h, src/HttpHeaderProcessor.cc: New class.
|
|
|
|
Updated doc for -j option to notice that it should be used with -i
|
|
option.
|
|
* src/main.cc (showUsage)
|
|
|
|
Removed unused classes.
|
|
* src/RequestInfo.h
|
|
(FileInfo): Removed.
|
|
(checksum): Removed.
|
|
(fileInfo): Removed.
|
|
(setChecksum): Removed.
|
|
(getChecksum): Removed.
|
|
(getFileInfo): Removed.
|
|
|
|
Use ISO units.
|
|
* src/ConsoleDownloadEngine.cc
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
* src/Util.cc (abbrevSize)
|
|
|
|
2007-06-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added the default listening ports to the help message.
|
|
* src/main.cc (showUsage)
|
|
|
|
2007-06-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Reduce the number of calls to gettimeofday to lower CPU load.
|
|
* src/TimeA2.h, src/TimeA2.cc (differenceInMillis): New function.
|
|
* src/SpeedCalc.h, src/SpeedCalc.cc (calculateSpeed): New function.
|
|
* src/Peer.h (calculateUploadSpeed): New function.
|
|
(calculateDownloadSpeed): New function.
|
|
* src/DefaultPeerStorage.cc
|
|
(CalculateStat): Added _now variable.
|
|
In operator(), call Peer::calculateDownloadSpeed(const struct timeval&)
|
|
and Peer::calculateUploadSpeed(const struct timeval&)
|
|
|
|
Drop connection if no request or piece message is exchanged in
|
|
a certain interval.
|
|
* src/DefaultBtInteractive.h
|
|
(btRuntime): New variable.
|
|
(inactiveCheckPoint): New variable.
|
|
(checkActiveInteraction): New function.
|
|
* src/DefaultBtInteractive.cc (receiveMessages): Reset timer when
|
|
request or piece message is received.
|
|
(checkActiveInteraction): New function.
|
|
(doInteractionProcessing): Call checkActiveInteraction.
|
|
|
|
Fixed the bug that causes remote Metalink and Torrent files are not
|
|
processed.
|
|
* src/MultiUrlRequestInfo.cc (createNextRequestInfo): Fixed the bug.
|
|
|
|
2007-06-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Changed format of log file.
|
|
* src/SimpleLogger.cc
|
|
|
|
* Release 0.11.0
|
|
|
|
2007-06-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/AbstractCommand.cc
|
|
(execute): Changed log level of MSG_RESTARTING_DOWNLOAD and
|
|
MSG_MAX_TRY from error to info.
|
|
Added MSG_DOWNLOAD_ABORTED after MSG_MAX_TRY.
|
|
|
|
* src/message.h
|
|
(MSG_TORRENT_DOWNLOAD_ABORTED): New definition.
|
|
(MSG_DOWNLOAD_ABORTED): Added %s.
|
|
(MSG_RESTARTING_DOWNLOAD): Added %s.
|
|
(MSG_DOWNLOAD_ALREADY_COMPLETED): Updated.
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(execute): MSG_DOWNLOAD_ABORTED -> MSG_TORRENT_DOWNLOAD_ABORTED
|
|
|
|
* src/Request.h
|
|
(cookieBox): Made ShardHandle.
|
|
|
|
* src/RequestGroup.h, src/RequestGroup.cc
|
|
(createNextCommandWithAdj): New function.
|
|
* src/FileAllocationCommand.cc
|
|
(executeInternal): Use createNextCommandWithAdj().
|
|
* src/CheckIntegrityCommand.cc
|
|
(executeInternal): Use createNextCommandWithAdj().
|
|
|
|
Added --load-cookies command-option.
|
|
* src/OptionHandlerFactory.cc
|
|
(createOptionHandlers): Added PREF_LOAD_COOKIES.
|
|
* src/CookieBox.h, src/CookieBox.cc: Rwritten using CookieParser.
|
|
Now aria2 can handle cookie's expiration date.
|
|
* src/Cookie.h (expires): Changed its type to time_t.
|
|
* src/main.cc: Added --load-cookies command-line option.
|
|
* src/prefs.h (PREF_LOAD_COOKIES): New definition.
|
|
* src/Util.h, src/Util.cc (httpGMT): New function.
|
|
* src/Request.cc (Request): Initialize cookieBox using
|
|
CookieBoxFactory.
|
|
* src/CookieBoxFactory.h, src/CookieBoxFactory.cc: New class.
|
|
* src/CookieParser.h, src/CookieParser.cc: New class.
|
|
|
|
* src/main.cc: Chagned the default value of --metalink-servers to 5.
|
|
|
|
* src/HttpResponseCommand.cc
|
|
(handleOtherEncoding): Call RequestGroup::shouldCancelDownloadForSafety
|
|
|
|
* src/MetalinkRequestInfo.cc: Now -s option is ignored in Metalink
|
|
download.
|
|
|
|
2007-06-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added -j command-line option.
|
|
* src/OptionHandlerFactory.cc (createOptionHandlers)
|
|
* src/main.cc
|
|
|
|
* src/ByteArrayDiskWriter.h, src/ByteArrayDiskWriter.cc
|
|
Rewritten using stringstream.
|
|
* src/TrackerUpdateCommand.h, src/TrackerUpdateCommand.cc
|
|
Rewritten using stringstream.
|
|
|
|
2007-06-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Make download size shown in MB, KB.
|
|
* src/ConsoleDownloadEngine.h (sendStatistics)
|
|
* src/Util.h, srcUtil.cc (abbrevSize): New function.
|
|
|
|
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.
|
|
|
|
Disable PREF_OUT in multiple concurrent download:
|
|
* src/RequestGroup.h, src/RequestGroup.cc
|
|
(setUserDefinedFilename): New function.
|
|
* src/DownloadEngineFactory.cc
|
|
(newConsoleEngine): Do not set PREF_OUT to requestGroup in multiple
|
|
concurrent download.
|
|
* src/DefaultSegmentManFactory.cc
|
|
(createNewInstance): Comment out the line: segmentMan->ufilename = ...
|
|
|
|
2007-06-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
RequestGroup::getNextCommand() was renamed to createNextCommand().
|
|
Added its overloaded method.
|
|
* src/RequestGroup.h
|
|
(_numConcurrentCommand): New variable.
|
|
(setNumConcurrentCommand): New function.
|
|
* src/RequestGroup.cc
|
|
|
|
Abort download if same file is being downloaded concurrently.
|
|
* src/RequestGroup.h, src/RequestGroupMan.cc
|
|
(isSameFileBeingDownloaded): New function.
|
|
* src/HttpResponseCommand.cc (executeInternal)
|
|
* src/FtpNegotiateCommand.cc (recvSize)
|
|
* src/message.h (EX_DUPLICATE_FILE_DOWNLOAD): New definition.
|
|
|
|
* main.cc: Added help message for -i option.
|
|
|
|
2007-06-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/FileAllocationCommand.cc: Derived from RealtimeCommand.
|
|
* src/CheckIntegrityCommand.cc: Derived from RealtimeCommand.
|
|
|
|
* src/MetalinkEntry.h
|
|
(checksum): Changed to ChecksumHandle
|
|
* src/MetalinkRequestInfo.cc
|
|
(checksum): Changed to ChecksumHandle
|
|
|
|
* src/File.cc
|
|
(mkdirs): OPEN_MODE -> DIR_OPEN_MODE
|
|
* src/common.h
|
|
(DIR_OPEN_MODE): New definition
|
|
|
|
* src/RequestGroup.cc
|
|
(prepareForNextAction): Added an argument.
|
|
|
|
* src/message.h
|
|
(MSG_GOOD_CHECKSUM): New definition
|
|
(MSG_BAD_CHECKSUM): New definition
|
|
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): Continue download sequence in new
|
|
non-segmented download.
|
|
|
|
* src/FileAllocationEntry.h
|
|
(_nextDownloadCommand): New variable.
|
|
|
|
* src/DownloadCommand.cc
|
|
(prepareForNextSegment): Create ChecksumCommand if checksum is
|
|
available.
|
|
|
|
* src/RealtimeCommand.h, src/RealtimeCommand.cc: New class.
|
|
|
|
* src/IteratableChecksumValidator.h,
|
|
src/IteratableChecksumValidator.cc: New class.
|
|
|
|
* src/ChecksumCommand.h, src/ChecksumCommand.cc: New class.
|
|
|
|
2007-05-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Change file mode to 666:
|
|
* src/common.h (OPEN_MODE): New definition.
|
|
* src/File.cc
|
|
* src/Util.cc
|
|
* src/Directry.cc
|
|
* src/AbstractDiskWriter.cc
|
|
|
|
Change the level of log message "download aborted" to debug:
|
|
* src/PeerAbstractCommand.cc (execute)
|
|
|
|
* src/RequestGroup.h (RequestGroup): Initialized _hintTotalLength to 0.
|
|
|
|
* src/TrackerWatcherCommand.cc
|
|
(createCommand): Sleep some seconds after request failed.
|
|
If tracker request fails more than value of PREF_TRACKER_MAX_TRIES,
|
|
then abort tracker request.
|
|
|
|
2007-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Added the simultaneous download feature.
|
|
* src/main.cc: Print "Exception caught: " when exception is caught.
|
|
|
|
Use CUIDCounter instead of BtRuntime::getNewCuid():
|
|
* src/ActivePeerConnectionCommand.cc
|
|
* src/PeerInteractionCommand.cc
|
|
* src/BtRuntime.h
|
|
(cuidCounter): Removed.
|
|
(getNewCuid): Removed.
|
|
* src/DownloadEngineFactory.cc
|
|
* src/PeerListenCommand.cc
|
|
* src/TrackerUpdateCommand.cc
|
|
* src/PeerInitiateConnectionCommand.cc
|
|
|
|
2007-04-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(onAbort): Call PeerStorage::returnPeer()
|
|
* src/DefaultPeerStorage.h, src/DefaultPeerStorage.cc
|
|
(incomingPeers): New variable.
|
|
(addIncomingPeer): New function.
|
|
(returnPeer): New function.
|
|
(onErasingPeer): New function.
|
|
(addPeer): push_back -> push_front
|
|
(getActivePeers): Rewritten.
|
|
(calculateStat): Rewritten.
|
|
* src/PeerStorage.h
|
|
(TransferStat::copy): New function.
|
|
(TransferStat::TransferStat): New function.
|
|
(TransferStat::operator=): New function.
|
|
(addIncomingPeer): New function.
|
|
(returnPeer): New function.
|
|
* src/PeerListenCommand.cc
|
|
(execute): Use PeerStorage::addIncomingPeer() instead of
|
|
Peer::addPeer().
|
|
|
|
2007-04-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Connect to a peer actively when download speed is lower than specified
|
|
speed in torrent download:
|
|
* src/ActivePeerConnectionCommand.h: New class.
|
|
|
|
2007-03-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/HttpRequest.cc (createRequest): url-encode user-agent
|
|
|
|
* src/main.cc: Fixed the bug that prevents download if .netrc
|
|
doesn't exist.
|
|
|
|
2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To cache resolved hostname:
|
|
* src/AbstractCommand.h, src/AbstractCommand.cc
|
|
(resolveHostname): Put outside #ifdef ENABLE_ASYNC_DNS clause.
|
|
Added dns cache.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS.
|
|
* src/NameResolver.h, src/NameResolver.cc: Added synchronized
|
|
NameResolver working without ares.
|
|
* src/TorrentRequestInfo.cc
|
|
(execute): Don't cache dns in torrent download.
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
(executeInternal): Removed #ifdef ENABLE_ASYNC_DNS
|
|
* src/DNSCache.h: New class.
|
|
* src/UrlRequestInfo.cc
|
|
(execute): Use dns cache.
|
|
|
|
In http request, suppress port number in http request header if port
|
|
is 80 or 443:
|
|
* src/HttpRequest.cc (getHostText): Suppress port number in http
|
|
request header if port is 80 or 443.
|
|
(createProxyRequest): Allways send port number.
|
|
|
|
2007-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add the command-line option which disables netrc support:
|
|
* src/OptionHandlerFactory.cc
|
|
(createOptionHandlers): Added PREF_NO_NETRC.
|
|
* src/main.cc: Added -n option.
|
|
* src/prefs.h (PREF_NO_NETRC): New definition.
|
|
* src/RequestFactory.cc: Do not use netrc in ftp if PREF_NO_NETRC is
|
|
V_TRUE.
|
|
Note that netrc is not used in http, http proxy even if PREF_NO_NETRC
|
|
is V_FALSE. This may get configurable in the future release.
|
|
|
|
To clear peer's error status by time basis:
|
|
* src/PeerAbstractCommand.cc
|
|
(onAbort): Call Peer::startBadCondition().
|
|
* src/Peer.h, src/Peer.cc
|
|
(error): Removed.
|
|
(_badConditionStartTime): New variable.
|
|
(_badConditionInterval): New variable. Initialized to 10 seconds.
|
|
(startBadCondition): New function.
|
|
(isGood): New function.
|
|
* src/DefaultPeerStorage.cc
|
|
(addPeer): Use Peer::isGood().
|
|
(FindFinePeer): Use Peer::isGood().
|
|
|
|
Always include port number in http request header:
|
|
* src/HttpRequest.cc (getHostText): Always include port number in
|
|
http request header.
|
|
|
|
2007-03-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To the ability to read options from a config file:
|
|
* src/main.cc: Command-line parameter validation is delegated to
|
|
OptionHandler class.
|
|
* src/OptionHandlerFactory.h, src/OptionHandlerFactory.cc: New class.
|
|
* src/Option.h, src/Option.cc (clear): New function.
|
|
* src/OptionParser.h, src/OptionParser.cc: New class.
|
|
* src/OptionHandler.h: New class.
|
|
* src/NameMatchOptionHandler.h: New class.
|
|
* src/OptionHandlerImpl.h: New classes.
|
|
* src/prefs.h: '_' -> '-'
|
|
(FTP_PASV_ENABLED): Renamed to FTP_PASV.
|
|
(FTP_PASV): New definition.
|
|
* src/Util.h, src/Util.cc (getRealSize): New function.
|
|
|
|
To disable netrc support if .netrc file does not have correct
|
|
permissions:
|
|
* src/File.h, src/File.cc (mode): New function.
|
|
|
|
To prevent confidential information to be logged:
|
|
* src/HttpConnection.h, src/HttpConnection.cc
|
|
(eraseConfidentialInfo): New function.
|
|
(sendRequest): Call eraseConfidentialInfo().
|
|
(sendProxyRequest): Call eraseConfidentialInfo().
|
|
* src/main.cc: Validate permissions of .netrc file.
|
|
|
|
To add --user-agent command-line option:
|
|
* src/main.cc: Added new command line option: --user-agent
|
|
* src/prefs.h (PREF_USER_AGENT): New definition.
|
|
* src/HttpRequestCommand.cc (executeInternal): Set user-agent option
|
|
parameter to HttpRequest object.
|
|
* src/AbstractProxyRequestCommand.cc
|
|
(executeInternal): Set user-agent option parameter to HttpRequest
|
|
object.
|
|
|
|
Marged the patches from Dan Fandrich.
|
|
|
|
2007-03-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Use filename and size from Metalink file instead of sending HEAD
|
|
request:
|
|
* src/UrlRequestInfo.h
|
|
(_filename): New variable.
|
|
(_totalLength): New variable.
|
|
(setTotalLength): New variable.
|
|
(setFilename): New variable.
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Set filename and size to UrlRequestInfo
|
|
* src/UrlRequestInfo.cc
|
|
(execute): Use filename and size from Metalink instead of seding
|
|
HEAD request to servers.
|
|
|
|
2007-03-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add the ability to resume downloading a partially downloaded file
|
|
which is downloaded from the beginning:
|
|
* src/FileAllocator.h: Made abstract class. New DefaultFileAllocator
|
|
takes this role.
|
|
* src/main.cc: Added -c option.
|
|
* src/BitfieldMan.h, src/BitfieldMan.cc (setBitRange): New function.
|
|
* src/DiskWriter.h (openExistingFile): Added totalLength argument.
|
|
* src/prefs.h (PREF_CONTINUE): New definition.
|
|
* src/SegmentMan.h, src/SegmentMan.cc (markPieceDone): New function.
|
|
* src/DefaultDiskWriter.cc
|
|
(createNewDiskWriter): Add GlowFileAllocator to the new object.
|
|
* src/AbstractDiskWriter.h
|
|
(glowFileAllocator): New variable.
|
|
* src/AbstractDiskWriter.cc
|
|
(openExistingFile): Now preallocate file space from the end of the
|
|
existing file if totalLength argument is specified and grater than 0.
|
|
* src/UrlRequestInfo.cc: If -c option is specified and the file
|
|
to download exists in local, continue the download of the file.
|
|
--allow-overwrite=true is assumed in this context.
|
|
* src/DefaultFileAllocator.h, src/DefaultFileAllocator.cc: New class.
|
|
* src/GlowFileAllocator.h, src/GlowFileAllocator.cc: New class.
|
|
|
|
Throw exception if --check-integrity=true is specified but chunk
|
|
checksums are not provided:
|
|
* src/UrlRequestInfo.cc
|
|
|
|
Do not print URLs to stdout:
|
|
* src/UrlRequestInfo.cc
|
|
|
|
2007-03-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Request.h: Use AuthResolver to get authentication information.
|
|
* src/main.cc: Made RequestFactory a singleton object. Netrc is now
|
|
set to RequestFactory object.
|
|
* src/AuthConfigItem.h, src/AuthConfigItem.cc: Removed.
|
|
* src/AuthConfig.h, src/AuthConfig.cc: Rewritten.
|
|
* src/TrackerWatcherComand.cc: Use RequestFactorySingletonHolder to
|
|
create Request object.
|
|
|
|
2007-03-19 Tatsuhiro Tsujikawa <tujikawa at valkyrie dot rednoah com>
|
|
|
|
To integrate Netrc into exsiting classes:
|
|
* src/Request.h
|
|
(_userDefinedAuthConfig): New variable.
|
|
(findNetrcAuthenticator): New function.
|
|
(segment): Removed.
|
|
(setUserDefinedAuthConfig): New function.
|
|
(resolveHttpAuthConfigItem): New function.
|
|
(resolveFtpAuthConfigItem): New function.
|
|
(resolveHttpProxyAuthConfigItem): New function.
|
|
* src/HttpRequest.h
|
|
(authConfig): Removed.
|
|
(proxyAuthConfig): Removed.
|
|
(setAuthConfig): Removed.
|
|
(setProxyAuthConfig): Removed.
|
|
* src/UrlRequest.h
|
|
(getHeadResult): Added a parameter: authConfigHandle
|
|
* src/common.h
|
|
(SingletonHolder.h): New include.
|
|
* src/main.cc
|
|
(Netrc.h): New include.
|
|
(main): Removed initial values of PREF_FTP_USER, PREF_FTP_PASSWD.
|
|
Added initial value of PREF_NETRC_PATH.
|
|
Added the initialization of netrc.
|
|
* src/AuthConfig.h: New class.
|
|
* src/prefs.h
|
|
(PREF_NETRC_PATH): New definition.
|
|
* src/HttpAuthConfig.h: Removed.
|
|
* src/Netrc.cc
|
|
(getRequiredNextToken): New function.
|
|
(skipMacdef): New function.
|
|
(parse): Rewritten.
|
|
* src/Netrc.h
|
|
(getRequiredNextToken): New function.
|
|
(skipMacdef): New function.
|
|
* src/Util.h, src/Util.cc
|
|
(getHomeDir): New function.
|
|
* src/TrackerWatcherComand.cc
|
|
(createRequestCommand): Use AuthConfig.
|
|
* src/FtpConnection.cc
|
|
(sendUser): Use Request::resolveFtpAuthConfigItem().
|
|
(sendPass): Use Request::resolveFtpAuthConfigItem().
|
|
* src/Request.cc
|
|
(findNetrcAuthenticator): New function.
|
|
(resolveHttpAuthConfigItem): New function.
|
|
(resolveFtpAuthConfigItem): New function.
|
|
(resolveHttpProxyAuthConfigItem): New function.
|
|
* src/UrlRequestInfo.cc: Use AuthConfig.
|
|
* src/HttpRequest.cc
|
|
(createRequest): Use authConfig.
|
|
(getProxyAuthString): Use authConfig.
|
|
(configure): Removed PREF_HTTP_USER, PREF_HTTP_PASSWD,
|
|
PREF_HTTP_PROXY_USER, PREF_HTTP_PROXY_PASSWD.
|
|
|
|
2007-03-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To reduce overhead to find commands whose socket is either
|
|
readable or writable in the download engine loop:
|
|
* src/Command.h, src/Command.cc
|
|
(STATUS): New enum.
|
|
(status): New variable.
|
|
(statusMatch): New function.
|
|
(setStatusActive): New function.
|
|
(setStatusInactive): New function.
|
|
* src/DownloadEngine.h, src/DownloadEngine.cc
|
|
(executeCommand): New function.
|
|
(run): Simplified.
|
|
(waitData): Call Command::setStatusActive() when command's socket is
|
|
readable or writable.
|
|
|
|
2007-03-15 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To handle Segment as SegmentHandle:
|
|
* src/AbstractCommand.cc (execute): Rewritten.
|
|
* src/SegmentMan.h: Segment -> SegmentHandle
|
|
|
|
Introducded HttpResponse class, HttpRequest class to improve code
|
|
extensiveness and make it clear:
|
|
* src/HttpDownloadCommand.cc: transfer encoders are now managed by
|
|
HttpResponse class.
|
|
* src/HttpRequest.h, src/HttpRequest.cc: New class.
|
|
* src/HttpResponse.h, src/HttpResponse.cc: New class.
|
|
* src/HttpConnection.cc: Contruction of http request were moved to
|
|
HttpRequest class.
|
|
* src/HttpResponseCommand.h, src/HttpResponseCommand.cc: Refactored.
|
|
* src/HttpRequestCommand.cc (executeInternal): Rewritten.
|
|
* src/HttpAuthConfig.h: New class.
|
|
* src/Range.h: New class.
|
|
|
|
To make FtpTunnel{Request, Response}Command and
|
|
HttpProxy{Request, Response}Command derived from
|
|
AbstractProxy{Request, Response}Command:
|
|
* src/FtpTunnelResponseCommand.h, src/FtpTunnelResponseCommand.cc:
|
|
Derived from AbstractProxyRequestCommand class.
|
|
* src/FtpTunnelRequestCommand.h, src/FtpTunnelRequestCommand.cc:
|
|
Derived from AbstractProxyResponseCommand class.
|
|
* src/HttpProxyRequestCommand.h, src/HttpProxyRequestCommand.cc:
|
|
Derived from AbstractProxyRequestCommand class.
|
|
* src/HttpProxyResponseCommand.h, src/HttpProxyResponseCommand.cc:
|
|
Derived from AbstractProxyResponseCommand class.
|
|
* src/AbstractProxyRequestCommand.h, src/AbstractProxyRequestCommand.cc
|
|
: New class.
|
|
* src/AbstractProxyResponseCommand.h,
|
|
src/AbstractProxyResponseCommand.cc: New class.
|
|
|
|
To add netrc support:
|
|
* src/Netrc.h, src/Netrc.cc: New class.
|
|
* src/Util.h, src/Util.cc (split): New function.
|
|
|
|
* src/HttpHeader.cc (getRange): Fixed so that it inspects
|
|
"Content-Range" header instead of "Range" header.
|
|
* src/HttpHeader.h
|
|
(getStatus): Removed.
|
|
(setStatus): Removed.
|
|
|
|
* src/Segment.h
|
|
(getPositionToWrite): New function.
|
|
|
|
2007-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/HttpHeader.h
|
|
(Range.h): New include.
|
|
(status): New variable.
|
|
(HttpHeader): Initialized status with 0.
|
|
(getStatus): New function.
|
|
(setStatus): New function.
|
|
(getRange): New function.
|
|
(HttpHeaderHandle): New function.
|
|
* src/HttpHeader.cc
|
|
(getRange): New function.
|
|
|
|
* src/Request.h
|
|
(RequestWeakHandle): New definition.
|
|
|
|
* src/HttpConnection.h
|
|
(HttpConnectionHandle): New type definition.
|
|
* src/HttpConnection.cc
|
|
(receiveResponse): Set HTTP status to headers.
|
|
|
|
* src/main.cc
|
|
(showUsage): Fixed typo.
|
|
|
|
* src/Segment.h
|
|
(SegmentHandle): New type definition.
|
|
|
|
* src/BitfieldMan.h
|
|
(getMissingUnusedLength): New function.
|
|
* src/BitfieldMan.cc
|
|
(getMissingUnusedLength): New function.
|
|
|
|
2007-02-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix static initialization order problem:
|
|
|
|
* src/BitfieldManFactory.h
|
|
(defaultRandomizer): Removed.
|
|
(factory): New variable.
|
|
(getNewFactory): Removed.
|
|
(getFactoryInstance): New function.
|
|
(setDefaultRandomizer): Rewritten.
|
|
(getDefaultRandomizer): Rewritten.
|
|
* src/BitfieldManFactory.cc
|
|
(defaultRandomizer): Removed.
|
|
(factory): Initialized to 0.
|
|
(BitfieldManFactory): Initialized randomizer to 0.
|
|
* src/DefaultPieceStorage.cc
|
|
(DefaultPieceStorage): getNewFactory() -> getFactoryInstance()
|
|
* src/Peer.cc
|
|
(Peer): getNewFactory() -> getFactoryInstance()
|
|
* src/SegmentMan.cc
|
|
(initBitfield): getNewFactory() -> getFactoryInstance()
|
|
* src/Piece.cc
|
|
(Piece): getNewFactory() -> getFactoryInstance()
|
|
|
|
2007-02-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix the bug that causes crash on Max OS X:
|
|
|
|
* src/SimpleRandomizer.h
|
|
(getInstance): Create new instance if the static variable is null.
|
|
* src/SimpleRandomizer.cc
|
|
(randomizer): Initialized to 0.
|
|
* src/BitfieldManFactory.h
|
|
(getNewFactory): Removed the call to setRandomizer().
|
|
|
|
To fix the miscalculation of the range of checksum:
|
|
|
|
* src/BitfieldMan.h
|
|
(isBitSetOffsetRange): New function.
|
|
* src/BitfieldMan.cc
|
|
(isBitSetOffsetRange): New function.
|
|
* src/SegmentMan.cc
|
|
(tryChunkChecksumValidation): Use BitfieldMan::isBitSetOffsetRange().
|
|
Use bitfield->getBlockLength() instead of segment.segmentLength.
|
|
|
|
* Release 0.10.1
|
|
|
|
2007-02-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To lower CPU usage in BitTorrent download when --max-upload-limit
|
|
command-line option specified:
|
|
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
(sendMessages): Calculate uploading speed only when current message
|
|
is uploading data and is not sent yet.
|
|
|
|
* src/DefaultPeerStorage.h
|
|
(MAX_PEER_LIST_SIZE): 100 -> 60, because 60 is well enough.
|
|
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): Added the cast to int32_t to itos.
|
|
This fixes compile error in Soralis 10.
|
|
|
|
2007-01-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix segfault in Metalink download:
|
|
|
|
* src/UrlRequestInfo.h
|
|
(filename): Removed.
|
|
(totalLength): Removed.
|
|
(setTotalLength): Removed.
|
|
(setFilename): Removed.
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Do not set filename and totalLength to reqInfo.
|
|
Set chunk checksum to reqInfo if it is not null.
|
|
|
|
* src/HttpResponseCommand.cc
|
|
(executeInternal): Fixed filename in log.
|
|
(handleDefaultEncoding): Removed the call to initBitfield() and
|
|
markAllPiecesDone().
|
|
(handleOtherEncoding): Added HEAD method handling.
|
|
|
|
* src/FtpNegotiateCommand.cc
|
|
(executeInternal): Added SEQ_HEAD_OK handling.
|
|
(recvSize): In HEAD handling, set sequence to SEQ_HEAD_OK and
|
|
return false.
|
|
|
|
* src/FtpNegotiateCommand.h
|
|
(SEQ_HEAD_OK): New definition.
|
|
|
|
* src/SegmentMan.cc
|
|
(initBitfield): Delete bitfield.
|
|
(isChunkChecksumValidationReady): Fixed the condition.
|
|
|
|
* src/UrlRequestInfo.cc: Fixed so that Metalink and Torrent download
|
|
works fine.
|
|
|
|
2007-01-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Xml2MetalinkProcessor.h
|
|
(xpathExists): New function.
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(xpathExists): New function.
|
|
|
|
Not to send HEAD request if filename and size are available in Metalink
|
|
file:
|
|
* src/UrlRequestInfo.h
|
|
(filename): New variable.
|
|
(totalLength): New variable.
|
|
(setTotalLength): New function.
|
|
(setFilename): New function.
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Set filename and size to UrlRequestInfo.
|
|
* src/MetalinkEntry.cc
|
|
(MetalinkEntry): Initialize size with 0.
|
|
* src/UrlRequestInfo.cc
|
|
(execute): Set filename and size to SegmentMan.
|
|
|
|
Not to download rest of the files after selected files are downloaded
|
|
in BitTorrent:
|
|
* src/PieceStorage.h
|
|
(allDownloadFinished): New function.
|
|
* src/DefaultBtAnnounce.cc
|
|
(isCompleteAnnounceReady): Use allDownloadFinished instead of
|
|
downloadFinished.
|
|
(getAnnounceUrl): Use allDownloadFinished instead of downloadFinished.
|
|
* src/DefaultPieceStorage.cc
|
|
(completePiece): Use allDownloadFinished instead of downloadFinished.
|
|
Commented out the call to finishSelectiveDownloadingMode().
|
|
(downloadFinished): Call isFilteredAllBitSet() instead of
|
|
isAllBitSet().
|
|
(allDownloadFinished): New function.
|
|
* src/DefaultBtInteractive.cc
|
|
(addBitfieldMessageToQueue): Call allDownloadFinished() instead of
|
|
downloadFinished().
|
|
(checkHave): Call allDownloadFinished() instead of downloadFinished().
|
|
* src/TorrentDownloadEngine.cc
|
|
(onEndOfRun): Call allDownloadFinished() instead of downloadFinished().
|
|
* src/BitfieldMan.h
|
|
(isFilteredAllBitSet): New function.
|
|
* src/ShareRatioSeedCriteria.h
|
|
(PieceStorage.h): New include.
|
|
(pieceStorage): New variable.
|
|
(evaluate):
|
|
btContext->getTotalLength() -> pieceStorage->getCompletedLength()
|
|
* src/BitfieldMan.cc
|
|
(isFilteredAllBitSet): New function.
|
|
(isAllBitSet): Filter is not took into account.
|
|
|
|
Rename --force-truncate as --allow-overwrite:
|
|
* src/TorrentRequestInfo.cc
|
|
(execute): PREF_FORCE_TRUNCATE -> PREF_ALLOW_OVERWRITE
|
|
* src/main.cc
|
|
(showUsage): --force-truncate -> --allow-overwrite
|
|
* src/message.h
|
|
(EX_FILE_ALREADY_EXISTS): --force-truncate -> --allow-overwrite
|
|
* src/prefs.h
|
|
(PREF_FORCE_TRUNCATE): Removed.
|
|
(PREF_ALLOW_OVERWRITE): New definition.
|
|
* src/SegmentMan.cc
|
|
(shouldCancelDownloadForSafety): --force-truncate -> --allow-overwrite
|
|
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Queueing message are now logged in info level.
|
|
|
|
* src/common.h
|
|
(LONG_LONG_MAX): Removed.
|
|
(LONG_LONG_MIN): Removed.
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): LONG_LONG_MAX -> INT64_MAX
|
|
* src/FtpNegotiateCommand.cc
|
|
(recvSize): LONG_LONG_MAX -> INT64_MAX
|
|
|
|
* src/main.cc
|
|
(showUsage): Added --check-integriy and --realtime-chunk-checksum
|
|
command-line option.
|
|
(main): Added --check-integriy and --realtime-chunk-checksum
|
|
command-line option.
|
|
--force-truncate -> --allow-overwrite
|
|
Set initial value of --check-integrity option to false.
|
|
Don't show usage when error occurs while persing command-line options.
|
|
Removed deprecated --upload-limit option.
|
|
|
|
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
|
|
|
|
2007-01-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add chunk checksum validation:
|
|
* src/MetalinkEntry.h
|
|
(MetalinkChunkChecksum.h): New include.
|
|
(chunkChecksum): New variable.
|
|
* src/Request.h
|
|
(method): New variable.
|
|
(setMethod): New function.
|
|
(getMethod): New function.
|
|
(METHOD_GET): New static constant.
|
|
(METHOD_HEAD): New static constant.
|
|
* src/Xml2MetalinkProcessor.h
|
|
(getPieceHash): New function.
|
|
* src/PieceStorage.h
|
|
(markAllPiecesDone): New function.
|
|
(checkIntegrity): New function.
|
|
* src/FileAllocator.h
|
|
(NullFileAllocationMonitor.h): New include.
|
|
(FileAllocator): Initialize fileAllocationMonitor with new
|
|
NullFileAllocationMonitor().
|
|
* src/MultiDiskAdaptor.h
|
|
(messageDigest.h): Remove include.
|
|
(ctx): Removed.
|
|
(hashUpdate): Added ctx.
|
|
(MultiDiskAdaptor): Removed ctx.
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/UrlRequestInfo.h
|
|
(HeadResult): New class.
|
|
(digestAlgo): New variable.
|
|
(chunkChecksumLength): New variable.
|
|
(chunkChecksums): New variable.
|
|
(getHeadResult): New function.
|
|
(UrlRequestInfo): Added digestAlgo, chunkChecksumLength.
|
|
(setDigestAlgo): New function.
|
|
(setChunkChecksumLength): New function.
|
|
(setChunkChecksums): New function.
|
|
* src/DefaultPieceStorage.cc
|
|
(DiskAdaptorWriter.h): New include.
|
|
(ChunkChecksumValidator.h): New include.
|
|
(markAllPiecesDone): New function.
|
|
(checkIntegrity): New function.
|
|
* src/DefaultBtContext.h
|
|
(getPieceHashes): New function.
|
|
* src/TorrentRequestInfo.cc
|
|
(execute): Try to validate chunk checksum if file already exists and
|
|
.aria2 file doesn't there and user allows aria2 to overwrite it.
|
|
* src/messageDigest.h
|
|
(~MessageDigestContext): Added digestFree().
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Set digestAlgo, chunkChecksum, chunkChecksums to reqInfo.
|
|
* src/DiskAdaptor.h
|
|
(messageDigest.h): New include.
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/DownloadCommand.h
|
|
(PeerStat.h): New include.
|
|
(maxDownloadSpeedLimit): New variable.
|
|
(startupIdleTime): New variable.
|
|
(lowestDownloadSpeedLimit): New variable.
|
|
(peerStat): New variable.
|
|
(setMaxDownloadSpeedLimit): New function.
|
|
(setStartupIdleTime): New function.
|
|
(setLowestDownloadSPeedLimit): New function.
|
|
* src/BtContext.h
|
|
(getPieceHashes): New function.
|
|
* src/main.cc
|
|
(main): Set PREF_REALTIME_CHUNK_CHECKSUM and PREF_CHECK_INTEGRITY
|
|
option to true for testing purpose.
|
|
* src/BtPieceMessage.cc
|
|
(checkPieceHash): Use messageDigest
|
|
* src/DownloadEngine.cc
|
|
(SetDescriptor): Removed.
|
|
(AccumulateActiveCommand): Removed.
|
|
(waitData): Rewritten.
|
|
(updateFdSet): Rewritten.
|
|
* src/MultiDiskAdaptor.cc
|
|
(hashUpdate): Added ctx.
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/BitfieldMan.h
|
|
(isBitRangeSet): New function.
|
|
(unsetBitRange): New function.
|
|
* src/ByteArrayDiskWriter.h
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/ConsoleDownloadEngine.cc
|
|
(calculateStatistics): If nspeed < 0 then set nspeed to 0.
|
|
* src/DiskWriter.h
|
|
(messageDigest.h): New include.
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/ChunkChecksumValidator.h: New class.
|
|
* src/DiskAdaptorWriter.h: New class.
|
|
* src/prefs.h
|
|
(PREF_REALTIME_CHUNK_CHECKSUM): New definition.
|
|
(PREF_CHECK_INTEGRITY): New definition.
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): Added method "HEAD" handling.
|
|
Removed the call to e->segmentMan->shouldCancelDownloadForSafety().
|
|
(handleOtherEncoding):
|
|
Added the call to e->segmentMan->shouldCancelDownloadForSafety().
|
|
(createHttpDownloadCommand): Set maxDownloadSpeedLimit,
|
|
startupIdleTime, lowestDownloadSpeedLimit to command.
|
|
* src/SegmentMan.h
|
|
(getSegmentEntryByIndex): New function.
|
|
(getSegmentEntryByCuid): New function.
|
|
(getSegmentEntryIteratorByCuid): New function.
|
|
(diskWriter): DiskWriter -> DiskWriterHandle
|
|
(pieceHashes): New variable.
|
|
(chunkHashLength): New variable.
|
|
(digestAlgo): New variable.
|
|
(FindPeerStat): Removed.
|
|
(getPeerStat): Rewritten.
|
|
(markAllPiecesDone): New function.
|
|
(checkIntegrity): New function.
|
|
(tryChunkChecksumValidation): New function.
|
|
(isChunkChecksumValidationReady): New function.
|
|
* src/BitfieldMan.cc
|
|
(BitfieldMan): Initialized bitfieldLength, blocks to 0.
|
|
(BitfieldMan): Initialized blockLength, totalLength, bitfieldLength,
|
|
blocks to 0.
|
|
(isBitRangeSet): New function.
|
|
(unsetBitRange): New function.
|
|
* src/FtpNegotiateCommand.cc
|
|
(executeInternal): Set maxDownloadSpeedLimit,
|
|
startupIdleTime, lowestDownloadSpeedLimit to command.
|
|
(recvSize): Added method "HEAD" handling.
|
|
Removed the call to e->segmentMan->shouldCancelDownloadForSafety().
|
|
* src/AbstractSingleDiskAdaptor.cc
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/AbstractSingleDiskAdaptor.h
|
|
(sha1Sum): Renamed as messageDigest.
|
|
(messageDigest): New function.
|
|
* src/Util.h
|
|
(indexRange): New function.
|
|
* src/MetalinkEntry.cc
|
|
(MetalinkEntry): Initialized chunkChecksum to 0.
|
|
* src/ShaVisitor.cc
|
|
(~ShaVisitor): Removed the call to ctx.digestFree().
|
|
* src/SegmentMan.cc
|
|
(ChunkChecksumValidator.h): New include.
|
|
(SegmentMan): Initialized chunkHashLength to 0. Initialized digestAlgo
|
|
to DIGEST_ALGO_SHA1.
|
|
(~SegmentMan): Removed diskWriter.
|
|
(FindSegmentEntryByIndex): Removed.
|
|
(FindSegmentEntryByCuid): Removed.
|
|
(checkoutSegment): Rewritten.
|
|
(findSlowerSegmentEntry): Rewritten.
|
|
(getSegment): Rewritten.
|
|
(updateSegment): Rewritten.
|
|
(completeSegment): Rewritten.
|
|
(markAllPiecesDone): New function.
|
|
(checkIntegrity): New function.
|
|
(isChunkChecksumValidationReady): New function.
|
|
(tryChunkChecksumValidation): New function.
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(getEntry): Get size and set it to entry.
|
|
Get chunk checksum and set it to entry.
|
|
(getPieceHash): New function.
|
|
* src/Util.cc
|
|
(sha1Sum): Removed ctx.digestFree()
|
|
(fileChecksum): Removed ctx.digestFree()
|
|
(indexRange): New function.
|
|
* src/Request.cc
|
|
(METHOD_GET): New variable.
|
|
(METHOD_HEAD): New variable.
|
|
(Request): Added method.
|
|
* src/UrlRequestInfo.cc
|
|
(FatalException.h): New include.
|
|
(message.h): New include.
|
|
(operator<<): Added operator<< for class HeadResult.
|
|
(getHeadResult): New function.
|
|
(execute): Get filename and size in separate download engine.
|
|
* src/ChunkChecksumValidator.cc: New class.
|
|
* src/DownloadCommand.cc:
|
|
(DownloadCommand): Added peerStat.
|
|
(executeInternal): Use maxDownloadSpeedLimit member instead of getting
|
|
the value from Option.
|
|
The buffer size is now 16KB.
|
|
Use peerStat member instead of getting it from SegmentMan.
|
|
Use startupIdleTime member instead of gettingit from Option.
|
|
Added chunk checksum validation.
|
|
* src/AbstractDiskWriter.cc
|
|
(AbstractDiskWriter): Removed ctx.
|
|
(~AbstractDiskWriter): Removed ctx.digestFree()
|
|
(writeDataInternal): Returns the return value of write.
|
|
(readDataInternal): Returns the return value of read.
|
|
(sha1Sum): Renamed as messageDigest
|
|
(messageDigest): New function.
|
|
* src/AbstractDiwkWriter.h
|
|
(messageDigest.h): Removed include.
|
|
(ctx): Removed.
|
|
(sha1Sum): Renamed as messageDigest
|
|
(messageDigest): New function.
|
|
* src/DefaultPieceStorage.h
|
|
(markAllPiecesDone): New function.
|
|
(checkIntegrity): New function.
|
|
* src/NullFileAllocationMonitor.h: New class.
|
|
* src/MetalinkChunkChecksum.h: New class.
|
|
|
|
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
|
|
|
|
2007-01-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add RecoverableException, FatalException:
|
|
|
|
* src/AbstractCommand.cc
|
|
(onAbort): Exception -> RecoverableException
|
|
* src/PeerAbstractCommand.h
|
|
(RecoverableException.h): New include.
|
|
(onAbort): Exception -> RecoverableException.
|
|
* src/PeerInteractionCommand.cc
|
|
(onAbort): Exception -> RecoverableException.
|
|
* src/PeerAbstractCommand.cc
|
|
(execute): Exception -> RecoverableException.
|
|
(onAbort): Exception -> RecoverableException.
|
|
* src/TorrentRequestInfo.cc
|
|
(execute): Exception -> RecoverableException.
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Exception -> RecoverableException.
|
|
* src/MetaFileUtil.cc: RecoverableException.
|
|
* src/AbstractCommand.h
|
|
(onAbort): Exception -> RecoverableException.
|
|
* src/DlRetryEx.h: Exception -> RecoverableException.
|
|
* src/DlAbortEx.h: Exception -> RecoverableException.
|
|
* src/PeerListenCommand.cc: Exception -> RecoverableException.
|
|
* src/Util.cc: Exception -> RecoverableException.
|
|
* src/DefauldDiskWriter.cc: Exception -> RecoverableException.
|
|
* src/TrackerUpdateCommand.cc: Exception -> RecoverableException.
|
|
* src/UrlRequestInfo.cc: Exception -> RecoverableException.
|
|
|
|
To make ID static const int
|
|
|
|
* src/BtInterestedMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtPieceMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtChokeMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtHaveAllMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtKeepAliveMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtHandshakeMessage.h
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtSuggestPieceMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtPortMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/AbstractBtMessage.h
|
|
(id): Removed.
|
|
(AbstractBtMessage): Removed id.
|
|
(getId): Removed.
|
|
* src/BtHaveMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtAllowedFastMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtCancelMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtNotInterestedMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtChokeMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtRejectMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtBitfieldMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtUnchokeMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtRequestMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
* src/BtHaveMessage.h
|
|
(ID_t): Removed.
|
|
(ID): New variable.
|
|
(getId): Made non-const.
|
|
|
|
To add --force-truncate command-line option and a check whether
|
|
the file already exists:
|
|
|
|
* src/DirectDiskAdaptor.h
|
|
(getFilePath): Made virtual public.
|
|
* src/MultiDiskAdaptor.h
|
|
(File.h): New include.
|
|
(DiskWriterEntry::fileEntry): Made private.
|
|
(DiskWriterEntry::fileExists): New function.
|
|
(DiskWriterEntry::getFileEntry): New function.
|
|
(fileExists): New function.
|
|
(getFilePath): New function.
|
|
* src/TorrentRequestInfo.cc
|
|
(FatalException.h): New include.
|
|
(message.h): New include.
|
|
(RecoverableException.h): New include.
|
|
(execute): Added a check whether file is already exists or not.
|
|
* src/DiskAdaptor.h
|
|
(fileExists): New function.
|
|
(getFilePath): New function.
|
|
* src/main.cc
|
|
(showUsage): Added an explanation of --force-truncate command-line
|
|
option.
|
|
(main): Added --force-truncate command-line option.
|
|
* src/Exception.h
|
|
(setMsg): buf[256] -> buf[1024]
|
|
* src/CopyDiskWriter.h
|
|
(getFilePath): Made public virtual.
|
|
* src/MultiDiskAdaptor.cc: fileEntry -> getFileEntry()
|
|
(fileExists): New function.
|
|
* src/DownloadEngineFactory.cc
|
|
(newTorrentConsoleEngine): Don't open file here.
|
|
* src/message.h
|
|
(EX_FILE_ALREADY_EXISTS): New definition.
|
|
* src/prefs.h
|
|
(PREF_FOECE_TRUNCATE): New definition.
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): Added a check whether the file already exists.
|
|
* src/SegmentMan.h
|
|
(fileExists): New function.
|
|
(shouldCancelDownloadForSafety): New function.
|
|
* src/FtpNegotiateCommand.cc
|
|
(recvSize): Added a check whether the file already exists.
|
|
* src/AbstractSingleDiskAdaptor.cc
|
|
(File.h): New include.
|
|
(fileExists): New function.
|
|
* src/AbstractSingleDiskAdaptor.h
|
|
(getFilePath): Removed.
|
|
(fileExists): New function.
|
|
* src/SegmentMan.cc
|
|
(fileExists): New function.
|
|
(shouldCancelDownloadForSafety): New function.
|
|
|
|
To fix regression bug in torrent downloading:
|
|
|
|
* src/DefaultBtRequestFactory.cc
|
|
(doChokedAction): New function.
|
|
* src/DefaultBtRequestFactory.h
|
|
(doChokedAction): New function.
|
|
* src/DefaultBtMessageDispatcher.cc
|
|
(doChokedAction): Do not delete request if its target is in allowed
|
|
fast set.
|
|
* src/DefaultBtInteractive.cc
|
|
(doPostHandshakeProcessing): Added a call to sendPendingMessage().
|
|
(sendKeepAlive): Send keep alive message even if the outgoing message
|
|
queue is not empty.
|
|
(decideInterest): Simplified the code.
|
|
(fillPiece): Remove a call to dispatcher->doChokedAction() because
|
|
it is already called when BtChokeMessage is received from a peer.
|
|
* src/BtRequestFactory.h
|
|
(doChokedAction): New function.
|
|
|
|
To clean up code:
|
|
|
|
* src/PeerInteractionCommand.h
|
|
(executeInternal): Added virtual keyword explicitly.
|
|
(prepareForRetry): Added virtual keyword explicitly.
|
|
(prepareForNextPeer): Added virtual keyword explicitly.
|
|
(onAbort): Added virtual keyword explicitly.
|
|
|
|
* src/RequestSlot.cc
|
|
(isTimeout): Use Time::elapsed() instead of differenceInMillis().
|
|
|
|
* src/BtPieceMessage.cc
|
|
(doReceivedAction): Added a debug log of piece's bitfield.
|
|
* src/Piece.h
|
|
(getBitfieldLength): New function.
|
|
|
|
* src/ByteArrayDiskWriter.cc
|
|
(clear): Added buf = 0 to avoid double free corruption.
|
|
|
|
* src/FileAllocator.cc
|
|
(allocate): Fixed an assignment of fileAllocationMonitor->currentValue.
|
|
Added cp.reset().
|
|
|
|
* src/BitfieldMan.h
|
|
(operator=): Rewritten.
|
|
* src/BitfieldMan.cc
|
|
(BitfieldMan): Initialized bitfield, useBitfield.
|
|
|
|
* src/PeerConnection.cc
|
|
(receiveMessage): Added a call to socket->readable() after getting
|
|
message length to avoid possible EOF.
|
|
|
|
* src/Util.cc
|
|
(torrentUrlencode): Fixed an encodeing bug. BUG#1629912
|
|
|
|
2007-01-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add an ability to pre-allocate file space:
|
|
|
|
* src/DirectDiskAdaptor.h: Rewritten.
|
|
* src/PieceStorage.h: DiskAdaptor -> DiskAdaptorHandle
|
|
* src/MultiDiskAdaptor.h: Rewritten.
|
|
* src/DefaultPieceStorage.cc
|
|
(MultiDiskWriter.h): Removed include.
|
|
(PreAllocationDiskWriter.h): Removed include.
|
|
(FileAllocationMonitor.h): New include.
|
|
(~DefaultPieceStorage): Removed deletion of diskAdaptor.
|
|
(initStorage): Rewritten.
|
|
(getDiskAdaptor): DiskAdaptor -> DiskAdaptorHandle
|
|
* src/FileAllocator.h: New class.
|
|
* src/FileAllocator.cc: New class.
|
|
* src/FileAllocationMonitor.h: New class.
|
|
* src/FileAllocationMonitor.cc: New class.
|
|
* src/ConsoleFileAllocationMonitor.h: New class.
|
|
* src/ConsoleFileAllocationMonitor.cc: New class.
|
|
* src/AbstractSingleDiskAdaptor.h: New class.
|
|
* src/AbstractSingleDiskAdaptor.cc: New class.
|
|
* src/DiskAdaptor.h
|
|
(Directory.h): Removed include.
|
|
(DiskWriter.h): Removed include.
|
|
(FileEntry.h): Removed include.
|
|
(diskWriter): Removed.
|
|
(DiskAdaptor): Removed diskWriter.
|
|
(openFile): Made pure virtual.
|
|
(closeFile): Made pure virtual.
|
|
(openExistingFile): Made pure virtual.
|
|
(initAndOpenFile): Made pure virtual.
|
|
(writeData): Made pure virtual.
|
|
(readData): Made pure virtual.
|
|
(sha1Sum): Made pure virtual.
|
|
(getStoreDir): Returns const reference of storeDir.
|
|
(DiskAdaptorHandle): New type definition.
|
|
* src/main.cc
|
|
(ConsoleFileAllocationMonitor.h): New include.
|
|
(showUsage): Added default value description of -s option.
|
|
Added the description of --file-allocation option.
|
|
(main): Set default value of --file-allocation option to 'none'.
|
|
Added --file-allocation command-line option.
|
|
Setup FileAllocationMonitorFactory.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(executeInternal): Removed diskWriter related processing, which was
|
|
moved to FtpNegotiationCommand.cc.
|
|
* src/DirectDiskAdaptor.cc
|
|
(getFilePath): Made non-const.
|
|
* src/CopyDiskAdaptor.h
|
|
(DiskAdaptor.h): Removed include.
|
|
(DiskWriter.h): Removed include.
|
|
(AbstractSingleDiskAdaptor.h): New include.
|
|
(getFilePath): Made non-const. Added virtual keyword.
|
|
(CopyDiskAdaptor): Removed diskWriter.
|
|
(getTempFile): Returns const reference.
|
|
(CopyDiskAdaptorHandle): New type definition.
|
|
* src/ByteArrayDiskWriter.cc
|
|
(clear): Simplified.
|
|
(initAndOpenFile): Rewritten.
|
|
(openFile): Call initAndOpenFile()
|
|
* src/MultiDiskAdaptor.cc: Rewritten.
|
|
* src/DownloadEngineFactory.cc
|
|
(FileAllocator.h): New include.
|
|
(FileAllocationMonitor.h): New include.
|
|
(newConsoleEngine): Call DefaultDiskWriter::createNewDiskWriter() to
|
|
create DefaultDiskWriter with file allocator.
|
|
* src/DiskWriter.h
|
|
(initAndOpenFile): Added totalLength argument.
|
|
(openFile): Added totalLength argument.
|
|
* src/prefs.h
|
|
(PREF_FILE_ALLOCATION): New definition.
|
|
(V_PREALLOC): New definition.
|
|
(V_NONE): New definition.
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): Call DefaultDiskWriter::initAndOpenFile with
|
|
size.
|
|
* src/FtpNegotiateCommand.cc
|
|
(Util.h): New include.
|
|
(recvSize): Open file here.
|
|
* src/Util.h
|
|
(ullitos): New function.
|
|
* src/CopyDiskWriter.h
|
|
(getFilePath): Made non-const.
|
|
* src/DefaultDiskWriter.h
|
|
(Option.h): New include.
|
|
(totalLength): Removed.
|
|
(DefaultDiskWriter): Removed totalLength.
|
|
(initAndOpenFile): Added totalLength argument.
|
|
(DefaultDiskWriterHandle): New type definition.
|
|
(createNewDiskWriter): New function.
|
|
* src/Util.cc
|
|
(ullitos): New function.
|
|
* src/DefaultDiskWriter.cc
|
|
(message.h): New include.
|
|
(FileAllocator.h): New include.
|
|
(prefs.h): New include.
|
|
(Util.h): New include.
|
|
(DefaultDiskWriter): Removed totalLength.
|
|
(initAndOpenFile): Added file allocation.
|
|
(createNewDiskWriter): New function. Just for temporary solution.
|
|
It will be rewritten later.
|
|
* src/DiskAdaptor.cc
|
|
(DiskAdaptor): Removed diskWriter.
|
|
* src/AbstractDiskWriter.cc
|
|
(LogFactory.h): New include.
|
|
(AbstractDiskWriter): Added fileAllocator, logger.
|
|
(openFile): Added totalLength argument.
|
|
* src/AbstractDiskWriter.h
|
|
(FileAllocator.h): New include.
|
|
(Logger.h): New include.
|
|
(fileAllocator): New variable.
|
|
(logger): New variable.
|
|
(openFile): Added totalLength argument. Added virtual keyword
|
|
explicitly.
|
|
(openExistingFile): Added totalLength argument. Added virtual keyword
|
|
explicitly.
|
|
(closeFile): Added virtual keyword explicitly.
|
|
(sha1Sum): Added virtual keyword explicitly.
|
|
(writeData): Added virtual keyword explicitly.
|
|
(readData): Added virtual keyword explicitly.
|
|
(setFileAllocator): New function.
|
|
* src/DefaultPieceStorage.h
|
|
(FileAllocator.h): New include.
|
|
(diskAdaptor): DiskAdaptor -> DiskAdaptorHandle
|
|
(getDiskAdaptor): DiskAdaptor -> DiskAdaptorHandle
|
|
* src/FileProgressMonitor.h: New class.
|
|
|
|
To compile aria2 on PC-BSD:
|
|
|
|
* src/DefaultBtContext.cc
|
|
(libgen.h): New include.
|
|
|
|
To fix memory leak:
|
|
|
|
* src/Exception.h
|
|
(~Exception): Delete cause. Fixed memory leak.
|
|
|
|
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.
|
|
* src/SuggestPieceMessage.h: Removed.
|
|
* src/PortMessage.h: Removed.
|
|
* src/SuggestPieceMessage.h: Removed.
|
|
* src/KeepAliveMessage.h: Removed.
|
|
* src/HandshakeMessage.h: Removed.
|
|
* src/PeerInteraction.h: Removed.
|
|
* src/UnchokeMessage.h: Removed.
|
|
* src/PieceMessage.h: Removed.
|
|
* src/RequestMessage.h: Removed.
|
|
* src/InterestedMessage.h: Removed.
|
|
* src/HaveMessage.h: Removed.
|
|
* src/CancelMessage.h: Removed.
|
|
* src/RejectMessage.h: Removed.
|
|
* src/AllowedFastMessage.h: Removed.
|
|
* src/HaveNoneMessage.h: Removed.
|
|
* src/SimplePeerMessage.h: Removed.
|
|
* src/HaveAllMessage.h: Removed.
|
|
* src/BitfieldMessage.h: Removed.
|
|
* src/PeerMessageFactory.h: Removed.
|
|
* src/NotInterestedMessage.h: Removed.
|
|
* src/ChokeMessage.h: Removed.
|
|
* src/PeerMessage.h: Removed.
|
|
|
|
2006-12-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To know root cause of exception:
|
|
|
|
* src/Exception.h
|
|
(cause): New variable.
|
|
(Exception): Added a parameter.
|
|
(getMsg): Return const reference to msg.
|
|
(getCause): New function.
|
|
* src/DlRetryEx.h
|
|
(DlRetryEx): Added a parameter 'cause'.
|
|
Added an overloaded constructor.
|
|
(DlAbortEx): Added a parameter 'cause'.
|
|
Added an overloaded constructor.
|
|
* src/SimpleLogger.cc
|
|
(writeLog): Log nested exception messages recursively.
|
|
|
|
2006-11-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/DefaultBtProgressInfoFile.cc
|
|
(load): Fixed memory leak when the infohash doesn't match.
|
|
|
|
2006-11-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/DefaultPeerStorage.cc
|
|
(calculateStat): Simplified the code by combining 2 loops into 1.
|
|
|
|
2006-11-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Introduce new preference PREF_BT_TIMEOUT. This is the timeout value
|
|
for BitTorrent download:
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(PeerAbstractCommand): PREF_TIMEOUT -> PREF_BT_TIMEOUT
|
|
* src/main.cc:
|
|
(timeoutSpecified): Removed.
|
|
(main): Set the initial value of PREF_BT_TIMEOUT to 180.
|
|
Removed timeoutSpecified. TODO: Add --bt-timeout command line option.
|
|
* src/TorrentRequestInfo.cc
|
|
(timeoutSpecified): Removed.
|
|
(torrentHandler): Removed timeoutSpecified and the adjustment of
|
|
timeout value.
|
|
* src/prefs.h
|
|
(PREF_BT_TIMEOUT): New definition.
|
|
|
|
Delete unused variables:
|
|
|
|
* src/TorrentRequestInfo.cc
|
|
(requestInfo): Removed.
|
|
|
|
Move setSignalHander to Util::setGlobalSignalHandler:
|
|
|
|
* src/TorrentRequestInfo.cc:
|
|
setSignalHander -> Util::setGlobalSignalHandler
|
|
* src/main.cc
|
|
(setSignalHander): Removed.
|
|
(main): setSignalHander -> Util::setGlobalSignalHandler
|
|
* src/Util.h
|
|
(setGlobalSignalHandler): New function.
|
|
* src/Util.cc
|
|
(setGlobalSignalHandler): New function.
|
|
* src/UrlRequestInfo.cc:
|
|
setSignalHander -> Util::setGlobalSignalHandler
|
|
|
|
Reset peer status in order to exit gracefully:
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(execute): Call peer->resetStatus() when btRuntime->isHalt() is true.
|
|
|
|
To fix the bug that causes the number of bytes uploaded is not saved
|
|
to .aria2 file:
|
|
|
|
* src/DefaultPeerStorage.h
|
|
(removedPeerSessionDownloadLength): New variable.
|
|
(removedPeerSessionUploadLength): New variable.
|
|
* src/DefaultPeerStorage.cc
|
|
(DefaultPieceStorage): Added removedPeerSessionDownloadLength(0),
|
|
removedPeerSessionUploadLength(0).
|
|
(calculateStat): Calculate the number of bytes downloaded(uploaded)
|
|
through all peers, and then add removedPeerSessionDownloadLength(
|
|
removedPeerSessionUploadLength) to it.
|
|
(deleteUnusedPeer): Add the number of bytes downloaded(uploaded) from
|
|
(to) the peer to removedPeerSessionDownloadLength
|
|
(removedPeerSessionUploadLength).
|
|
|
|
2006-11-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add Metalink location option:
|
|
|
|
* src/MetalinkRequestInfo.cc
|
|
(execute): Call MetalinkEntry::setLocationPreference()
|
|
* src/main.cc
|
|
(showUsage): Added the help message for --metalink-location option.
|
|
(main): Added --metalink-location option.
|
|
* src/prefs.h
|
|
(PREF_METALINK_LOCATION): New definition.
|
|
* src/MetalinkEntry.cc
|
|
(AddLocationPreference): New function object.
|
|
(setLocationPreference): New function.
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(getResource): Set location attribute to MetalinkResource
|
|
|
|
To show URLs to download
|
|
|
|
* src/UrlRequestInfo.h
|
|
(printUrls): New function.
|
|
|
|
To add multiple <file> Metalink support:
|
|
|
|
* src/MetalinkEntry.h
|
|
(MetalinkResources): Removed.
|
|
(setLocationPreference): New function.
|
|
(MetalinkEntryHandle): New type definition.
|
|
(MetalinkEntries): New type definition.
|
|
* src/Xml2MetalinkProcessor.h
|
|
(getEntry): MetalinkEntry* -> MetalinkEntryHandle
|
|
(getResource): MetalinkResource* -> MetalinkResourceHandle
|
|
(parseFile): Metalinker* -> MetalinkerHandle
|
|
* src/UrlRequestInfo.h
|
|
(execute): RequestInfo* -> RequestInfos
|
|
* src/MetalinkRequestInfo.cc
|
|
(AccumulateNonP2PUrl): MetalinkResource* -> MetalinkResourceHandle
|
|
(FindBitTorrentUrl): MetalinkResource* -> MetalinkResourceHandle
|
|
(execute): RequestInfo* -> RequestInfos
|
|
Added multiple <file> support. Print filename when it is queued.
|
|
* src/MetalinkRequestInfo.h
|
|
(execute): RequestInfo* -> RequestInfos
|
|
(getDownloadEngine): Removed.
|
|
* src/RequestInfo.h
|
|
(RequestInfoHandle): New type definition.
|
|
(RequestInfos): New type definition.
|
|
(execute): RequestInfo* -> RequestInfos
|
|
(getDownloadEngine): Removed.
|
|
* src/MetalinkResource.h
|
|
(MetalinkResourceHandle): New type definition.
|
|
(MetalinkResources): New type definition.
|
|
* src/MetalinkEntry.cc
|
|
(~MetalinkEntry): Removed the deletion of the elements of resources,
|
|
because the element is now of type MetalinkResourceHandle.
|
|
(PrefOrder): MetalinkResource* -> MetalinkResourceHandle
|
|
(Supported): MetalinkResource* -> MetalinkResourceHandle
|
|
(dropUnsupportedResource): Removed the deletion of the elements of
|
|
resources because the element is now of type MetalinkResourceHandle.
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(parseFile): Metalinker* -> MetalinkerHandle
|
|
MetalinkEntry* -> MetalinkEntryHandle
|
|
Removed try-catch block.
|
|
(getEntry): MetalinkEntry* -> MetalinkEntryHandle
|
|
MetalinkResource* -> MetalinkResourceHandle
|
|
Removed try-catch block.
|
|
(getResource): MetalinkResource* -> MetalinkResourceHandle
|
|
Free result by using xmlXPathFreeObject()
|
|
* src/Metalinker.cc
|
|
(~Metalinker): Removed the deletion of entries.
|
|
MetalinkEntry* -> MetalinkEntryHandle
|
|
(queryEntry): Add multiple <file> Metalink support.
|
|
* src/Metalinker.h
|
|
(MetalinkEntries): Removed.
|
|
(queryEntry): MetalinkEntry* -> MetalinkEntries
|
|
* src/MetalinkProcessor.h
|
|
(parseFile): Metalinker* -> MetalinkerHandle
|
|
|
|
Bug fixes:
|
|
|
|
* src/PeerChokeCommand.cc
|
|
(execute): cat01->cat02
|
|
* src/DefaultPieceStorage.cc
|
|
(DefaultPieceStorage): Added diskAdaptor(0)
|
|
* src/TrackerWatcherComand.cc:
|
|
(execute): Use btAnnounce->noMoreAnnounce()
|
|
to determin whether the function returns true or not.
|
|
* src/TrackerUpdateCommand.cc:
|
|
(execute): Use btAnnounce->noMoreAnnounce()
|
|
to determin whether the function returns true or not.
|
|
* src/FtpConnection.cc
|
|
(bulkReceiveResponse): Throw DlRetryEx if EOF got.
|
|
This is the fix of the busy loop bug.
|
|
* src/DownloadCommand.cc
|
|
(DownloadCommand): Reuse PeerStat. segmentMan->getPeerStat() returns
|
|
cached PeerStat.
|
|
|
|
The value of "name" entry in torrent file is now set by
|
|
*DiskAdaptor::setTopDir(...) methods.
|
|
|
|
* src/MultiDiskAdaptor.h
|
|
(topDir): New variable.
|
|
(setTopDir): New function.
|
|
(getTopDir): New function.
|
|
* src/MultiDiskAdaptor.cc
|
|
(getFilePath): Concat storDir, "/" and topDir.
|
|
(mkdir): Use getFilePath() to get the directory path for output.
|
|
* src/DefaultPieceStorage.cc
|
|
(initStorage): Set the value of "name" entry to MultiDiskAdaptor,
|
|
CopyDiskAdaptor.
|
|
* src/CopyDiskAdaptor.h
|
|
(topDir): New variable.
|
|
(setTopDir): New function.
|
|
(getTopDir): New function.
|
|
* src/CopyDiskAdaptor.cc
|
|
(fixFilename): Updated.
|
|
|
|
Misc
|
|
|
|
* src/UrlRequestInfo.h
|
|
(e): Removed.
|
|
(UrlRequestInfo): Removed e.
|
|
(getDownloadEngine): Removed.
|
|
* src/UrlRequestInfo.cc
|
|
(handler): Rewritten.
|
|
(printUrls): New function.
|
|
(execute): Call printUrls().
|
|
|
|
* src/HandshakeMessage.cc
|
|
(check): peerinteraction->getBtContext() -> btContext
|
|
|
|
* src/PeerInteraction.h
|
|
(getBtContext): Removed.
|
|
|
|
* src/TorrentRequestInfo.h
|
|
(execute): RequestInfo* -> RequestInfos
|
|
(getDownloadEngine): Removed.
|
|
* src/TorrentRequestInfo.cc
|
|
(haltRequested): Removed.
|
|
(btHaltRequested): New variable.
|
|
(torrentHandler): haltRequested -> btHaltRequested
|
|
(execute): RequestInfo* -> RequestInfos
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
(afterEachIteration): haltRequested -> btHaltRequested.
|
|
|
|
* src/ConsoleDownloadEngine.h
|
|
(initStatistics): Added virtual.
|
|
(calculateStatistics): Added virtual.
|
|
(onEndOfRun): Added virtual.
|
|
(afterEachIteration): Added virtual.
|
|
* src/ConsoleDownloadEngine.cc
|
|
(haltRequested): New variable.
|
|
(afterEachIteration): New function.
|
|
|
|
* src/main.cc
|
|
(requestInfo): Removed.
|
|
|
|
* src/SegmentMan.cc
|
|
(findSlowerSegmentEntry): Refactored.
|
|
|
|
* Release 0.9.0
|
|
|
|
2006-11-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To divide TorrentMan into 6 classes: BtContext, BtRuntime,
|
|
PeerStorage, PieceStorage, BtAnnounce and BtProgressInfoFile
|
|
|
|
* src/TorrentMan.h: Removed.
|
|
* src/TorrentMan.cc: Removed.
|
|
* src/TrackerWatcherComand.h: Made subclass of BtContextAwareCommand.
|
|
* src/SeedCheckCommand.cc: Use pieceStorage, btRuntime
|
|
* src/PeerAbstractCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/PeerAbstractCommand.cc: Use btRuntime.
|
|
* src/BtContextAwareCommand.h: New class.
|
|
* src/FileEntry.h: Added accessor methods for following variables.
|
|
(path): Made private.
|
|
(length): Made private.
|
|
(offset): Made private.
|
|
(extracted): Made private.
|
|
(requested): Made private.
|
|
(FileEntries): New definition.
|
|
(FileEntryHandle): New definition.
|
|
* src/FileEntry.cc: New file.
|
|
* src/HaveEraseCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/HaveEraseCommand.cc: Use btRuntime, pieceStorage.
|
|
* src/PeerChokeCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/PeerChokeCommand.cc: Use btRuntime, peerStorage, pieceStorage.
|
|
* src/PieceStorage.h: New file.
|
|
* src/PeerInteractionCommand.h: Use btContext.
|
|
* src/PeerInteractionCommand.cc: Use pieceStorage, peerStorage,
|
|
btRuntime.
|
|
* src/DefaultBtProgressInfoFile.h: New file.
|
|
* src/DefaultBtProgressInfoFile.cc: New file.
|
|
* src/File.cc
|
|
(Util.h): New include.
|
|
(mkdirs): New function.
|
|
* src/MultiDiskAdaptor.h
|
|
(mkdir): New function.
|
|
* src/PeerListProcessor.h
|
|
(Peers): Removed.
|
|
* src/PeerInteraction.h
|
|
(torrentMan): Removed.
|
|
(btContext): New variable.
|
|
(peerStorage): New variable.
|
|
(pieceStorage): New variable.
|
|
(btAnnounce): New variable.
|
|
(getTorrentMan): Removed.
|
|
(getBtContext): New function.
|
|
* src/PeerInteraction.cc: Use btContext, peerStorage, pieceStorage,
|
|
btAnnounce.
|
|
* src/HandshakeMessage.h
|
|
(TorrentMan.h): Removed.
|
|
* src/HandshakeMessage.cc: Use btContext.
|
|
* src/DefaultBtAnnounce.cc: New file.
|
|
* src/MultiDiskWriter.cc: Use the accessor methods of FileEntry.
|
|
* src/DefaultPieceStorage.cc: New file.
|
|
* src/DefaultBtContext.h: New file.
|
|
* src/TorrentRequestInfo.cc: Use btContext, pieceStorage.
|
|
Use the accessor methods of FileEntry.
|
|
* src/CookieBox.cc: Updated to use Util::slice().
|
|
* src/PieceMessage.cc: Use btContext, pieceStorage.
|
|
* src/common.h (SharedHandle.h): New include.
|
|
* src/PeerMessage.cc (PeerMessage): Added btContext, peerStorage,
|
|
pieceStorage.
|
|
* src/TorrentAutoSaveCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/DiskAdaptor.h
|
|
(topDir): Removed.
|
|
(getFileEntryFromPath): Changed the return type to FileEntryHandle.
|
|
(setTopDir): Removed.
|
|
(getTopDir): Removed.
|
|
* src/BtContext.h: New file.
|
|
* src/DefaultPeerStorage.h: New file.
|
|
* src/PieceMessage.h (TorrentMan.h): Removed.
|
|
* src/RequestMessage.h (TorrentMan.h): Removed.
|
|
* src/TorrentDownloadEngine.h
|
|
(uploadLength): New variable.
|
|
(btContext): New variable.
|
|
(btRuntime): New variable.
|
|
(pieceStorage): New variable.
|
|
(peerStorage): New variable.
|
|
(btAnnounce): New variable.
|
|
(btProgressInfoFile): New variable.
|
|
(torrentMan): Removed.
|
|
(setBtContext): New function.
|
|
* src/TorrentDownloadEngine.cc: Use BtContext, BtRuntime, pieceStorage,
|
|
peerStorage, btAnnounce, btProgressInfoFile.
|
|
* src/Piece.h
|
|
(toString): New function.
|
|
(Pieces): New type definition.
|
|
* src/Peer.h
|
|
(active): New variable.
|
|
(Peer): Added active.
|
|
(activate): Set active to true.
|
|
(deactivate): Set active to false.
|
|
(isActive): New function.
|
|
(Peers): New type definition.
|
|
* src/DirectDiskAdaptor.cc
|
|
(getFilePath): Use the accessor methods of FileEntry.
|
|
* src/TorrentConsoleDownloadEngine.h
|
|
(afterEachIteration): New function.
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
(haltRequested): New variable.
|
|
(sendStatistics): Use pieceStorage, btRuntime.
|
|
(afterEachIteration): New function.
|
|
* src/AnnounceList: AnnounceTier->AnnounceTierHandle.
|
|
* src/Directry.h
|
|
(Directory): New function.
|
|
(DirectoryHandle): New type definition.
|
|
* src/BtProgressInfoFile.h: New file.
|
|
* src/RequestMessage.cc: Use pieceStorage.
|
|
* src/BtRuntime.h: New file.
|
|
* src/DefaultBtContext.cc: New file.
|
|
* src/BitfieldMan.h
|
|
(getCompletedLength): New function(private).
|
|
(getCompletedLength): New function.
|
|
(getFilteredCompletedLength): New function.
|
|
* src/BitfieldMan.h
|
|
(getCompletedLength): New function(private).
|
|
(getCompletedLength): New function.
|
|
(getFilteredCompletedLength): New function.
|
|
* src/MultiDiskAdaptor.cc
|
|
(mkdir): New function.
|
|
(openFile): Call mkdir().
|
|
(initAndOpenFile): Call mkdir().
|
|
* src/CancelMessage.h
|
|
(TorrentMan.h): Removed.
|
|
* src/RejectMessage.h
|
|
(TorrentMan.h): Removed.
|
|
* src/DownloadEngineFactory.cc
|
|
(DefaultPieceStorage.h): New include.
|
|
(DefaultPeerStorage.h): New include.
|
|
(DefaultBtAnnounce.h): New include.
|
|
(DefaultBtProgressInfoFile.h): New include.
|
|
(newTorrentConsoleEngine): Rewritten.
|
|
* src/ShareRatioSeedCriteria.h
|
|
(torrentMan): Removed.
|
|
(btContext): New variable.
|
|
(peerStorage): New variable.
|
|
(btRuntime): New variable.
|
|
(evaluate): Use btContext, btRuntime, peerStorage.
|
|
* src/AnnounceTier.h: New file.
|
|
* src/BtAnnounce.h: New file.
|
|
* src/BtRegistry.h: New file.
|
|
* src/PeerInitiateConnectionCommand.h: Added btContext.
|
|
* src/PeerConnection.h (TorrentMan.h): Removed.
|
|
* src/PeerMessageFactory.cc: Use btContext, pieceStorage.
|
|
* src/Util.h
|
|
(slice): Added an argument.
|
|
* src/Util.cc
|
|
(slice): Added an argument to control whether trim is made or not.
|
|
* src/PeerStorage.h: New file.
|
|
* src/BtRegistry.cc: New file.
|
|
* src/TrackerUpdateCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/CopyDiskAdaptor.cc: Use the accessor methods of FileEntry.
|
|
* src/MultiDiskWriter.h: FileEntry -> FileEntryHandle
|
|
* src/PeerListenCommand.cc: Use btRuntime, peerStorage, btContext.
|
|
* src/TorrentRequestInfo.h
|
|
(e): Removed.
|
|
(showFileEntry): Added an argument.
|
|
(getDownloadEngine): Return 0.
|
|
* src/DefaultBtAnnounce.h: New file.
|
|
* src/TorrentAutoSaveCommand.cc: Use btRuntime, btProgressInfoFile.
|
|
* src/TrackerWatcherComand.cc: Use btRuntime, btAnnounce,
|
|
* src/PeerMessageFactory.h
|
|
(btContext): New variable.
|
|
(pieceStorage): New variable.
|
|
* src/TrackerUpdateCommand.cc: Use btRuntime, peerStorage, btContext,
|
|
btAnnounce.
|
|
* src/DiskAdaptor.cc
|
|
(DiskAdaptor): Removed topDir.
|
|
(~DiskAdaptor): Removed topDir.
|
|
* src/PeerListenCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/SeedCheckCommand.h: Made subclass of BtContextAwareCommand.
|
|
* src/File.h (mkdirs): New function.
|
|
* src/DefaultPeerStorage): New file.
|
|
* src/DownloadEngineFactory.h
|
|
(newTorrentConsoleEngine): Use btContext.
|
|
* src/BtContextAwareCommand.cc: New file.
|
|
* src/PeerInitiateConnectionCommand.cc: Use btRuntime, peerStorage.
|
|
* src/PeerMessage.h
|
|
(btContext): New variable.
|
|
(peerStorage): New variable.
|
|
(pieceStorage): New variable.
|
|
(setBtContext): New function.
|
|
* src/Directry.cc
|
|
(Directory): New function.
|
|
(createDir): Do nothing if name.size() == 0.
|
|
* src/AnnounceList.h
|
|
(AnnounceTier): Removed.
|
|
(AnnounceTiers): Removed.
|
|
* src/DefaultPieceStorage.h: New file.
|
|
* src/Piece.cc (toString): New function.
|
|
|
|
To fix typo:
|
|
|
|
* src/main.cc (showVersion): Fixed typo.
|
|
|
|
To fix compile warning:
|
|
|
|
* src/DelegatingPeerListProcessor.cc
|
|
(canHandle): Added "return false".
|
|
|
|
2006-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To simplify TrackerWatherCommand, TrackerUpdateCommand and
|
|
make the process of announce request testable.
|
|
|
|
* src/TrackerWatcherCommand.h
|
|
(TimeA2.h): Removed.
|
|
(interval): Removed.
|
|
(checkPoint): Removed.
|
|
(createRequestCommand): Added an argument 'url'.
|
|
(TrackerWatherCommand): Removed interval.
|
|
(createCommand): New function.
|
|
* src/DownloadEngineFactory.cc
|
|
(newTorrentConsoleEngine): Updated according to the changes in
|
|
TrackerWatherCommand.
|
|
* src/TorrentMan.cc
|
|
(DelegatingPeerListProcessor.h): New includes.
|
|
(TorrentMan): Added the initialization of announceInterval.
|
|
(isStoppedAnnounceReady): New function.
|
|
(isCompletedAnnounceReady): New function.
|
|
(isDefaultAnnounceReady): New function.
|
|
(isAnnounceReady): New function.
|
|
(getAnnounceUrl): New function.
|
|
(announceStart): New function.
|
|
(announceFailure): New function.
|
|
(announceSuccess): New function.
|
|
(isAllAnnounceFailed): New function.
|
|
(resetAnnounce): New function.
|
|
(processAnnounceResponse): New function.
|
|
(needMorePeerConnection): New function.
|
|
(noMoreAnnounce): New function.
|
|
* src/TrackerUpdateCommand.h
|
|
(getTrackerResponse): int->size_t
|
|
* src/TorrentMan.h
|
|
(isStoppedAnnounceReady): New function.
|
|
(isCompletedAnnounceReady): New function.
|
|
(isDefaultAnnounceReady): New function.
|
|
(announceInterval): New variable.
|
|
(isAnnounceReady): New function.
|
|
(getAnnounceUrl): New function.
|
|
(announceStart): New function.
|
|
(announceFailure): New function.
|
|
(announceSuccess): New function.
|
|
(isAllAnnounceFailed): New function.
|
|
(resetAnnounce): New function.
|
|
(processAnnounceResponse): New function.
|
|
(needMorePeerConnection): New function.
|
|
(noMoreAnnounce): New function.
|
|
* src/TrackerWatcherCommand.cc
|
|
(TrackerWatherCommand): Removed interval and checkPoint.
|
|
(execute): Rewritten.
|
|
(createCommand): New function.
|
|
(createRequestCommand): Rewritten.
|
|
* src/TrackerUpdateCommand.cc
|
|
(MetaFileUtil.h): Removed.
|
|
(DelegatingPeerListProcessor.h): Removed.
|
|
(getTrackerResponse): int->size_t. Use torrentMan's new functions.
|
|
|
|
2006-10-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Request -> RequestHandle:
|
|
|
|
* src/HttpResponseCommand.h: Request->RequestHandle
|
|
* src/AbstractCommand.cc: Request->RequestHandle
|
|
* src/HttpDownloadCommand.cc: Request->RequestHandle
|
|
* src/HttpRequestCommand.cc: Request->RequestHandle
|
|
* src/FtpInitiateConnectionCommand.h: Request->RequestHandle
|
|
* src/AbstractCommand.h: Request->RequestHandle
|
|
* src/HttpProxyRequestCommand.h: Request->RequestHandle
|
|
* src/HttpResponseCommand.cc: Request->RequestHandle
|
|
* src/HttpInitiateConnectionCommand.h: Request->RequestHandle
|
|
* src/FtpNegotiateCommand.cc: Request->RequestHandle
|
|
* src/FtpTunnelResponseCommand.h: Request->RequestHandle
|
|
* src/HttpConnection.h: Request->RequestHandle
|
|
* src/HttpProxyResponseCommand.cc: Request->RequestHandle
|
|
* src/InitiateConnectionCommandFactory.h: Request->RequestHandle
|
|
* src/FtpTunnelResponseCommand.cc: Request->RequestHandle
|
|
* src/DownloadCommand.h: Request->RequestHandle
|
|
* src/FtpDowndloadCommand.cc: Request->RequestHandle
|
|
* src/HttpInitiateConnectionCommand.cc: Request->RequestHandle
|
|
* src/HttpRequestCommand.h: Request->RequestHandle
|
|
* src/FtpNegotiateCommand.h: Request->RequestHandle
|
|
* src/FtpTunnelResponseCommand.cc: Request->RequestHandle
|
|
* src/FtpInitiateConnectionCommand.cc: Request->RequestHandle
|
|
* src/HttpDownloadCommand.h: Request->RequestHandle
|
|
* src/FtpConnection.cc: Request->RequestHandle
|
|
* src/InitiateConnectionCommandFactory.cc: Request->RequestHandle
|
|
* src/UrlRequestInfo.cc: Request->RequestHandle
|
|
* src/HttpProxyResponseCommand.h: Request->RequestHandle
|
|
* src/HttpConnection.h: Request->RequestHandle
|
|
* src/DownloadCommand.cc: Request->RequestHandle
|
|
* src/FtpConnection.h: Request->RequestHandle
|
|
* src/FtpDowndloadCommand.h: Request->RequestHandle
|
|
* src/HttpProxyRequestCommand.cc: Request->RequestHandle
|
|
* src/FtpTunnelRequestCommand.h: Request->RequestHandle
|
|
* src/Request.h
|
|
(SharedHandle.h): New include.
|
|
(RequestHandle): New type definition.
|
|
(Requests): Redefined.
|
|
|
|
To add MULTITRACKER support:
|
|
|
|
* src/TrackerWatcherCommand.h
|
|
(createRequestCommand): New function.
|
|
* src/DownloadEngineFactory.cc
|
|
(newTorrentConsoleEngine): Removed req.
|
|
* src/prefs.h
|
|
(PREF_TRACKER_MAX_TRIES): New definition.
|
|
* src/TorrentMan.cc
|
|
(TorrentMan): Removed req. Added trackerNumTry.
|
|
(~TorrentMan): Removed req.
|
|
(setupInternal1): Added announceList.
|
|
* src/TorrentRequestInfo.cc
|
|
(execute): Set PREF_MAX_TIRES to 1. The max number of tries for
|
|
announces is now specified by PREF_TRACKER_MAX_TRIES.
|
|
* src/main.cc
|
|
(main): Added PREF_TRACKER_MAX_TRIES.
|
|
* src/TorrentMan.h
|
|
(Request.h): Removed.
|
|
(AnnounceList.h): New include.
|
|
(trackerNumTry): New variable.
|
|
(req): Removed.
|
|
(announceList): New variable.
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): Rewritten.
|
|
(createRequestCommand): New function.
|
|
* src/TrackerUpdateCommand.cc
|
|
(execute): Updated with the use of AnnounceList.
|
|
* src/AnnounceList.cc: New class.
|
|
* src/AnnounceList.h: New class.
|
|
|
|
To fix typo:
|
|
|
|
* src/prefs.h
|
|
(PREF_MAX_TRIES): max_try->max_tries
|
|
|
|
To not to decode "+" as space in URL decode:
|
|
|
|
* src/Util.cc
|
|
(urldecode): Removed "+"->space decoding rule. Test case was updated.
|
|
|
|
2006-10-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add timeout to async name resolution:
|
|
|
|
* src/AbstractCommand.h
|
|
(nameResolveFinished): New function. This is not elegant way. It needs
|
|
to be more refined.
|
|
(nameResolverCheck): New variable.
|
|
* src/AbstractCommand.cc
|
|
(AbstractCommand): Added nameResolverCheck.
|
|
(execute): Added the check whether the name resolution has finished.
|
|
(setNameResolverCheck): Set nameResolverCheck to true.
|
|
(disableNameResolverCheck): Set nameResolverCheck to false.
|
|
(nameResolverFinished): New function.
|
|
* src/FtpInitiateConnectionCommand.h
|
|
(nameResolverFinished): New function.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(FtpInitiateConnectionCommand): Set timeout to PREF_DNS_TIMEOUT.
|
|
* src/HttpInitiateConnectionCommand.h
|
|
(nameResolverFinished): New function.
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
(HttpInitiateConnectionCommand): Set timeout to PREF_DNS_TIMEOUT.
|
|
* src/prefs.h
|
|
(PREF_DNS_TIMEOUT): New definition.
|
|
* src/main.cc
|
|
(main): Added PREF_DNS_TIMEOUT.
|
|
|
|
To add the support for a non-compact response from a tracker:
|
|
|
|
* src/PeerListProcessor.h: New class.
|
|
* src/DefaultPeerListProcessor.h: New class.
|
|
* src/DefaultPeerListProcessor.cc: New class.
|
|
* src/CompactPeerListProcessor.h: New class.
|
|
* src/CompactPeerListProcessor.cc: New class.
|
|
* src/DelegatingPeerListProcessor.h: New class.
|
|
* src/DelegatingPeerListProcessor.cc: New class.
|
|
* src/TorrentMan.cc
|
|
(addPeer): New function(overload).
|
|
(addPeer): Delete unused peers only when new peer is added.
|
|
* src/TorrentMan.h
|
|
(PeerListProcessor.h): Included.
|
|
(Peers): Removed.
|
|
(addPeer): New function(overload).
|
|
* src/TrackerUpdateCommand.cc
|
|
(netinet/in.h): Removed.
|
|
(DelegatingPeerListProcessor.h): Included.
|
|
(execute): Updated to use DelegatingPeerListProcessor.
|
|
|
|
To fix the memory leak in TorrentMan::peers:
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(onAbort): Added peer->resetStatus().
|
|
* src/Peer.h
|
|
(resetStatus): Made public.
|
|
|
|
To improve the precision of the speed calculation:
|
|
|
|
* src/SpeedCalc.h
|
|
(nextInterval): New variable.
|
|
* src/SpeedCalc.cc
|
|
(reset): Added nextInterval.
|
|
(isIntervalOver): Use nextInterval instead of CHANGE_INTERVAL_SEC.
|
|
(changeSw): Set nextInterval to 15 seconds relative to the current
|
|
instant time.
|
|
|
|
* src/main.cc
|
|
(showVersion): Updated.
|
|
(showUsage): Updated.
|
|
|
|
* Release 0.8.1
|
|
|
|
2006-09-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/main.cc
|
|
(showUsage): Commented out --min-segment-size option.
|
|
(main): Commented out --min-segment-size option.
|
|
|
|
* Release 0.8.0
|
|
|
|
2006-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/*.{h,cc}:
|
|
Added an exception to the license which allows linking with OpenSSL.
|
|
|
|
2006-09-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/AbstractCommand.cc
|
|
(execute): Check whether the download has finished before checking
|
|
socket status.
|
|
Return true if peerStat->getStatus() == REQUEST_IDLE.
|
|
Do not exit even if no segment is available.
|
|
|
|
* src/prefs.h
|
|
(PREF_STARTUP_IDLE_TIME): New definition.
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Removed max speed limit. Because it performs bad.
|
|
(receiveMessages): Added max speed limit. This was better than above,
|
|
but still a little bit to be desired. Sometimes the download speed
|
|
became much faster than I specified.
|
|
|
|
* src/SpeedCalc.h
|
|
(start): New variable.
|
|
(accumulatedLength): New variable.
|
|
(getAvgSpeed): New function.
|
|
* src/SpeedCalc.cc
|
|
(reset): Added start, accumulatedLength.
|
|
(update): Added calculation of an average speed.
|
|
(getAvgSpeed): New function.
|
|
|
|
* src/DownloadCommand.h
|
|
(sw): Removed.
|
|
|
|
* src/main.cc
|
|
(main): Added PREF_STARTUP_IDLE_TIME.
|
|
|
|
* src/PeerStat.h
|
|
(STATUS): Added REQUEST_IDLE.
|
|
(getMaxSpeed): Renamed as getMaxDownloadSpeed().
|
|
(getAvgDownloadSpeed): New function
|
|
(requestIdle): New function.
|
|
|
|
* src/SegmentMan.h
|
|
(SegmentEntryHandle): New type definition.
|
|
(SegmentEntries): Now holds SegmentEntryHandle.
|
|
(findSlowerSegmentEntry): New funtion.
|
|
* src/SegmentMan.cc
|
|
(save): Updated according to the changes in SegmentEntries.
|
|
(read): Updated according to the changes in SegmentEntries.
|
|
(FindSegmentEntryByIndex): Updated according to the changes in
|
|
SegmentEntries.
|
|
(FindSegmentEntryByCuid): Updated according to the changes in
|
|
SegmentEntries.
|
|
(checkoutSegment): Updated according to the changes in SegmentEntries.
|
|
(onNullBitfield): Updated according to the changes in SegmentEntries.
|
|
Renamed uitr as itr.
|
|
(findSlowerSegmentEntry): New function.
|
|
(getSegment): Updated according to the changes in SegmentEntries.
|
|
Added the feature that cancels the segment with slow server and fast
|
|
one takes it over.
|
|
(cancelSegment): Updated according to the changes in SegmentEntries.
|
|
(getDownloadLength): Updated according to the changes in
|
|
SegmentEntries.
|
|
(init): Assigned 0 to bitfield after deleting it.
|
|
|
|
* src/DownloadCommand.cc
|
|
(STARTUP_IDLE_TIME): Removed.
|
|
(executeInternal): Use PREF_STARTUP_IDLE_TIME.
|
|
|
|
* src/PeerChokeCommand.cc
|
|
(optUnchokingPeer): Updated according to the changes in Peer.
|
|
(ResetDelta): Removed.
|
|
(UploadFaster): Updated according to the changes in Peer.
|
|
(DownloadFaster): Updated according to the changes in Peer.
|
|
(execute): I clarify the meaning of "upload" and "download" here.
|
|
"upload" means the transfer from localhost to remote host.
|
|
"download" means the transfer from remote host to localhost.
|
|
Based on this rule, I swapped orderByUploadRate and
|
|
orderByDownloadRate.
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteraction): Removed peerInteraction->setUploadLImit().
|
|
(executeInternal): Removed the argument of
|
|
peerInteraction->sendMessages().
|
|
(receiveMessages): Rewritten download speed limit.
|
|
(sendKeepAlive): Removed peerInteraction->sendMessages().
|
|
|
|
* src/HttpResponseCommand.cc
|
|
(handleDefaultEncoding): If file size is unknown in torrent request,
|
|
do not call segmentMan->initBitfield() here.
|
|
Disabled persistent connection feature in torrent request.
|
|
|
|
* src/UrlRequestInfo.h
|
|
(UrlRequestInfo): Removed const qualifier from option.
|
|
|
|
* src/TorrentMan.h
|
|
(TransferStat): New class.
|
|
(deltaDownloadLength): Removed.
|
|
(deltaUploadLength): Removed.
|
|
(addDeltaDownloadLength): Removed.
|
|
(getDeltaDownloadLength): Removed.
|
|
(resetDeltaDownloadLength): Removed.
|
|
(addDeltaUploadLength): Removed.
|
|
(getDeltaUploadLength): Removed.
|
|
(resetDeltaUploadLength): Removed.
|
|
(addActivePeer): Added peer->activate().
|
|
(deleteActivePeer): Added peer->deactivate().
|
|
(calculateStat): New function.
|
|
* src/TorrentMan.cc
|
|
(TorrentMan): Removed deltaDownloadLength and deltaUploadLength.
|
|
(calculateStat): New function.
|
|
|
|
* src/PeerInteraction.h
|
|
(uploadLimit): Removed.
|
|
(option): New variable.
|
|
(setUploadLimit): Removed.
|
|
(getUploadSpeed): Removed.
|
|
(sendMessages): Removed the argument "currentUploadSpeed".
|
|
* src/PeerInteraction.cc
|
|
(prefs.h): Included.
|
|
(PeerInteraction): Removed uploadLimit. Added option.
|
|
(sendMessages): Rewritten upload speed limit.
|
|
(sendHandshake): Removed the argument from sendMessages().
|
|
(sendBitfield): Removed the argument from sendMessages().
|
|
|
|
* src/PeerAbstractCommand.cc
|
|
(execute): Commented out the portion of upload limit.
|
|
(onAbort): Removed peer->resetStatus().
|
|
|
|
* src/TorrentRequestInfo.cc
|
|
(timeoutSpecified): Declared extern.
|
|
(execute): Set timeout to 180 if timeout is not specified by.
|
|
command-line.
|
|
|
|
* src/PieceMessage.cc
|
|
(receivedAction): Added peer->updateDownloadLength().
|
|
Removed peer->addPeerUpload().
|
|
Removed torrentMan->addDeltaDownloadLength().
|
|
(send): Added peer->updateUploadLength().
|
|
Removed peer->addPeerDownload().
|
|
Removed torrentMan->addDeltaUploadLength().
|
|
|
|
* src/main.cc
|
|
(timeoutSpecified): New variable.
|
|
(main): Set timeoutSpecified to false.
|
|
If the command-line option "--upload-limit" is specified, then
|
|
timeoutSpecified is set to true. This option will remain in the next
|
|
release, but be deprecated in the future release.
|
|
|
|
* src/TorrentRequestInfo.h
|
|
(TorrentRequestInfo): Removed const qualifier from op.
|
|
|
|
* src/PeerStat.h
|
|
(uploadSpeed): New variable.
|
|
(PeerStat): Added default value to cuid.
|
|
(calculateUploadSpeed): New function.
|
|
(updateUploadLength): New function.
|
|
(getMaxUploadSpeed): New function.
|
|
(getAvgUploadSpeed): New function.
|
|
(reset): Added uploadSpeed. Set status to IDLE.
|
|
|
|
* src/TorrentDownloadEngine.h
|
|
(cp): Declared as Time.
|
|
(sessionDownloadLengthArray): Removed.
|
|
(sessionUploadLengthArray): Removed.
|
|
(currentCp): Removed.
|
|
(lastCalcStat): New variable
|
|
(lastElapsed): Removed.
|
|
(sessionDownloadLength): Removed.
|
|
(calculateStat): New function.
|
|
* src/TorrentDownloadEngine.cc
|
|
(initStatistics): Removed lastElapsed, cp[],
|
|
sessionDownloadLengthArray[], sessionUploadLengthArray[],
|
|
currentCp, sessionDownloadLength.
|
|
Added cp.reset() and lastCalcStat.reset().
|
|
(calculateSpeed): Changed the name of the argument.
|
|
(calculateStatistics): Rewritten.
|
|
(calculateStat): New function.
|
|
|
|
* src/Peer.h
|
|
(PeerStat.h): Included.
|
|
(peerUpload): Removed.
|
|
(peerDownload): Removed.
|
|
(peerStat): New variable.
|
|
(sessionUploadLength): New variable.
|
|
(sessionDownloadLength): New variable.
|
|
(deltaUpload): Removed.
|
|
(deltaDownload): Removed.
|
|
(resetStatus): Made private.
|
|
(Peer): Added sessionUploadLength, sessionDownloadLength.
|
|
Removed peerUpload, peerDownload.
|
|
(updateUploadLength): New function.
|
|
(addDeltaUpload): Removed.
|
|
(updateDownloadLength): New function.
|
|
(resetDeltaUpload): Removed.
|
|
(getDeltaUpload): Removed.
|
|
(addDeltaDownload): Removed.
|
|
(calculateUploadSpeed): New function.
|
|
(resetDeltaDownload): Removed.
|
|
(getDeltaDownload): Removed.
|
|
(calculateDownloadSpeed): New function.
|
|
(getSessionUploadLength): New function.
|
|
(getSessionDownloadLength): New function.
|
|
(activate): New function.
|
|
(deactivate): New function.
|
|
(addPeerUpload): Removed.
|
|
(setPeerUpload): Removed.
|
|
(getPeerUpload): Removed.
|
|
(addPeerDownload): Removed.
|
|
(setPeerDownload): Removed.
|
|
(getPeerDownload): Removed.
|
|
|
|
* src/Peer.cc
|
|
(resetStatus): Removed resetDeltaUpload() and resetDeltaDownload().
|
|
|
|
* src/MetalinkRequestInfo.h
|
|
(MetalinkRequestInfo): Removed const qualifier from op.
|
|
|
|
* src/RequestInfo.h
|
|
(op): Removed const qualifier.
|
|
(RequestInfo): Removed const qualifier from op.
|
|
|
|
* src/prefs.h
|
|
(PREF_MAX_SPEED_LIMIT): Renamed as PREF_MAX_DOWNLOAD_LIMIT.
|
|
(PREF_UPLOAD_LIMIT): Renamed as PREF_MAX_UPLOAD_LIMIT.
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Use PREF_MAX_UPLOAD_LIMIT.
|
|
(receiveMessages): Use PREF_MAX_DOWNLOAD_LIMIT.
|
|
|
|
* src/PeerInteraction.cc
|
|
(sendMessages): Use PREF_MAX_UPLOAD_LIMIT.
|
|
|
|
* src/main.cc
|
|
(showUsage): Updated the description of "--lowest-speed-limit" option.
|
|
Added the description of "--max-download-limit" option.
|
|
Removed the description of "--upload-limit" option.
|
|
Added the description of "--max-upload-limit" option.
|
|
(main): Use PREF_MAX_UPLOAD_LIMIT, PREF_MAX_DOWNLOAD_LIMIT.
|
|
Added "--max-download-limit" option and "--max-upload-limit" option.
|
|
Added the warning message if "--upload-limit" option is used.
|
|
|
|
* src/DownloadCommand.cc
|
|
(executeInternal): Use PREF_MAX_DOWNLOAD_LIMIT.
|
|
|
|
2006-09-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To rewrite segment download mechanism for HTTP/FTP download.
|
|
Use BitfieldMan to manage segment download.
|
|
* src/HttpResponseCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/AbstractCommand.cc
|
|
(prepareForRetry): Call segmentMan->cancelSegment here.
|
|
(onAbort): Call segmentMan->cancelSegment here.
|
|
* src/HttpDownloadCommand.cc
|
|
(prepareForNextSegment): New function.
|
|
* src/DownloadEngineFactory.cc
|
|
(newConsoleEngine): Removed splitter.
|
|
(newTorrentConsoleEngine): Removed splitter.
|
|
* src/Request.h
|
|
(segment): Renamed from seg.
|
|
* src/FtpInitiateConnectionCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/AbstractCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/pref.h
|
|
(PREF_SEGMENT_SIZE): New definition.
|
|
* src/HttpProxyRequestCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/HttpResponseCommand.cc
|
|
(checkResponse): Allowed status 206 when a request range starts 0.
|
|
(handleDefaultEncoding): Rewritten the code related to Segment.
|
|
(handleOtherEncoding): Rewritten the code related to Segment.
|
|
* src/SegmentMan.h
|
|
(SegmentEntry): New class.
|
|
(SegmentEntries): New type definition.
|
|
(bitfield): New variable.
|
|
(usedSegmentEntries): New variable.
|
|
(onNullBitfield): New function.
|
|
(checkoutSegment): New function.
|
|
(segments): Removed.
|
|
(splitter): Removed.
|
|
(unregisterId): Removed.
|
|
(getSegment): New function(overload)
|
|
(getDownloadedSize): Removed.
|
|
(cancelSegment): New function.
|
|
(completeSegment): New function.
|
|
(initBitfield): New function.
|
|
(hasSegment): New function.
|
|
(getDownloadLength): New function.
|
|
* src/BitfieldMan.h
|
|
(getStartIndex): New function.
|
|
(getEndIndex): New function.
|
|
(getMissingUnusedIndex): New function(overload).
|
|
(getSparseMissingUnusedIndex): New function.
|
|
* src/BitfieldMan.cc
|
|
(getMissingIndexRandomly): Handle the last byte of bitfield properly.
|
|
(getMissingUnusedIndex): New function(overload).
|
|
(Range): New class.
|
|
(getStartIndex): New function.
|
|
(getEndIndex): New function.
|
|
(getSparseMissingUnusedIndex): New function.
|
|
(isBitSetInternal): Return false if the given index is less than 0.
|
|
* src/HttpInitiateConnectionCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/FtpNegotiateCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/FtpNegotiateCommand.cc
|
|
(recvSize): Initialize bitfield here.
|
|
* src/FtpTunnelResponseCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/HttpConnection.cc
|
|
(createRequest): Rewritten range header processing.
|
|
* src/DownloadCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
(prepareForRetry): Removed.
|
|
(prepareForNextSegment): Added an argument segment. Made it a virtual
|
|
function.
|
|
* src/main.cc
|
|
(main): Set the initial value of PREF_SEGMENT_SIZE to 1MB.
|
|
* src/SegmentMan.cc
|
|
(SegmentMan): Added bitfield. Removed splitter.
|
|
(~SegmentMan): Added bitfield. Removed splitter.
|
|
(unregisterId): Removed.
|
|
(getSegment): Rewritten.
|
|
(updateSegment): Rewritten.
|
|
(save): Rewritten.
|
|
(read): Rewritten.
|
|
(finished): Rewritten.
|
|
(getDownloadedSize): Removed.
|
|
(initBitfield): New function.
|
|
(FindSegmentEntryByIndex): New function object.
|
|
(FindSegmentEntryByCuid): New function object.
|
|
(checkoutSegment): New function.
|
|
(onNullBitfield): New function.
|
|
(getSegment): New function(overload).
|
|
(CancelSegment): New function object.
|
|
(cancelSegment): New function.
|
|
(completeSegment): New function.
|
|
(hasSegment): New function.
|
|
(getDownloadLength): New function.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(executeInternal): Load .aria2 file after hostname resolution finishes.
|
|
* src/Segment.h: Rewritten.
|
|
* src/Segment.cc (operator<<): New function.
|
|
* src/HttpDownloadCommand.h
|
|
(prepareForNextSegment): New function.
|
|
* src/Request.cc
|
|
(resetUrl): Made segment null.
|
|
* src/DownloadEngine.cc
|
|
(~DownloadEngine): Call cleanQueue before deleting segmentMan.
|
|
* src/HttpProxyRequestCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
* src/DownloadCommand.cc
|
|
(executeInternal): Rewritten the code related to Segment.
|
|
(prepareForRetry): Removed.
|
|
(prepareForNextSegment): Rewritten.
|
|
* src/FtpTunnelResponseCommand.h
|
|
(executeInternal): Pass the reference of segment.
|
|
|
|
To add HTTP 1.1 persistent connection support(experimental)
|
|
* src/HttpRequestCommand.cc
|
|
(executeInternal): Disable keep alive if it is disabled by
|
|
configuration.
|
|
* src/Request.h
|
|
(keepAlive): New variable.
|
|
(isKeepAlive): New function.
|
|
(setKeepAlive): New function.
|
|
* src/pref.h
|
|
(PREF_HTTP_KEEP_ALIVE): New definition.
|
|
* src/HttpResponseCommand.cc
|
|
(executeInternal): Check the remote server supports keep alive.
|
|
* src/HttpConnection.cc
|
|
(createRequest): Send "Connection: close" only if keep alive is
|
|
disabled.
|
|
* src/main.cc
|
|
(main):
|
|
Set the initial value(false) of PREF_KEEP_ALIVE to false.
|
|
|
|
To add max download speed limit:
|
|
* src/pref.h
|
|
(PREF_MAX_SPEED_LIMIT): New definition.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Added max download speed limit. Not tested yet.
|
|
* src/SegmentMan.h
|
|
(PeerStats): New type definition.
|
|
(peerStats): New variable.
|
|
(registerPeerStat): New function.
|
|
(FindPeerStat): New function object.
|
|
(getPeerStat): New function.
|
|
(calculateDownloadSpeed): New function.
|
|
* src/SpeedCalc.h: New class.
|
|
* src/SpeedCalc.cc: New class.
|
|
* src/main.cc
|
|
(main):
|
|
Set the initial value of PREF_MAX_SPEED_LIMIT to 0(which means the
|
|
download speed is not restricted).
|
|
* src/PeerStat.h: New class.
|
|
* src/SegmentMan.cc
|
|
(registerPeerStat): New function.
|
|
(calculateDownloadSpeed): New function.
|
|
* src/DownloadCommand.cc
|
|
(STARTUP_IDLE_TIME): New definition.
|
|
(DownloadCommand): Register peerStat to segmentMan. Call peerStat->
|
|
downloadStart.
|
|
(~DownloadCommand): Call peerStat->downloadStop.
|
|
(executeInternal): Added download speed limitter. Rewritten lowest
|
|
speed limitter.
|
|
|
|
* src/HttpConnection.cc
|
|
(receiveResponse): Fixed: eohIndex[headerBuf] -> headerBuf[eohIndex].
|
|
|
|
* src/AbstractCommand.cc
|
|
(resolveHostname): Throw DlAbortEx if a name resolution failes.
|
|
Added hostname to the error message.
|
|
|
|
* src/ConsoleDownloadEngine.cc
|
|
(calculateStatistics): Initialize psize with dlSize.
|
|
|
|
* src/PieceMessage.cc
|
|
(receivedAction): Do not call peerInteraction->abortPiece here.
|
|
(onGotWrongPiece): Call peerInteraction->abortPiece here.
|
|
|
|
* src/BitfieldMan.h
|
|
(clearAllUseBit): New function.
|
|
(setAllUseBit): New function.
|
|
* src/BitfieldMan.cc
|
|
(clearAllBit): Do not clear useBitfield here.
|
|
(clearAllUseBit): New function.
|
|
(setAllUseBit): New function.
|
|
* src/Piece.cc
|
|
(clearAllBlock): Call bitfield->clearAllUseBit().
|
|
|
|
2006-08-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To make filename URL-decoded:
|
|
* src/HttpResponseCommand.h: Updated doc.
|
|
* src/HttpResponseCommand.cc
|
|
(determinFilename): Made filename URL-decoded.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(executeInternal): Made filename URL-decoded.
|
|
* src/Util.h (urldecode): New function.
|
|
* src/Util.cc (urldecode): New function.
|
|
|
|
To fix a bug that caused assertion failure in ares_strerror:
|
|
* src/NameResolver.cc (callback): Fixed the bug.
|
|
|
|
* Release 0.7.3
|
|
|
|
2006-08-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add --seed-time and --seed-ratio command-line option:
|
|
* src/Option.h (getAsDouble): New function.
|
|
* src/Option.cc (getAsDouble): New function.
|
|
* src/SeedCheckCommand.h: New class.
|
|
* src/SeedCheckCommand.cc: New class.
|
|
* src/DownloadEngineFactory.cc
|
|
(SeedCheckCommand.h): Included.
|
|
(UnionSeedCriteria.h): Included.
|
|
(TimeSeedCriteria.h): Included.
|
|
(ShareRatioSeedCriteria.h): Included.
|
|
(newTorrentConsoleEngine): Added the processing of seed option.
|
|
* src/SeedCriteria.h: New class.
|
|
* src/ShareRatioSeedCriteria.h: New class.
|
|
* src/TimeSeedCriteria.h: New class.
|
|
* src/UnionSeedCriteria.h: New class.
|
|
* src/prefs.h
|
|
(PREF_SEED_TIME): New definition.
|
|
(PREF_SEED_RATIO): New definition.
|
|
* src/main.cc
|
|
(showUsage): Added --seed-time and --seed-ratio option.
|
|
(main): Added --seed-time and --seed-ratio option.
|
|
Made default log file name "/dev/null".
|
|
* src/SharedHandle.h
|
|
(SharedHandle): Copy constructor. Made it assignable from the
|
|
SharedHandle of the subclasses.
|
|
(operator=): Made it assignable from the SharedHandle of the
|
|
subclasses.
|
|
(getRefCount): New function.
|
|
|
|
To add notice log level and the switch to write log to stdout. This
|
|
switch is configurable per log level.
|
|
* src/Logger.h
|
|
(notice): New function.
|
|
(LEVEL): Added NOTICE. Assigned an explicit value to each log level
|
|
constant.
|
|
* src/LogFactory.cc
|
|
(getInstance): The use of NullLogger was removed. A log message with
|
|
notice log level was made written to stdout along with log file.
|
|
* src/NullLogger.h
|
|
(notice): New function.
|
|
* src/SimpleLogger.h
|
|
(writeHeader): Added the 'file' argument.
|
|
(writeLog): Added the 'file' argument.
|
|
(writeFile): New function.
|
|
(stdoutField): New variable.
|
|
(SimpleLogger): Removed the default constructor.
|
|
(SimpleLogger): Made the default value of logfile 0.
|
|
(debug): Added 'virtual' keyword.
|
|
(info): Added 'virtual' keyword.
|
|
(warn): Added 'virtual' keyword.
|
|
(error): Added 'virtual' keyword.
|
|
(notice): New function.
|
|
(setStdout): New function.
|
|
* src/SimpleLogger.cc
|
|
(WRITE_LOG): Replaced writeLog with writeFile.
|
|
(WRITE_LOG_EX): Replaced writeLog with writeFile.
|
|
(SimpleLogger): Removed the default constructor.
|
|
(setStdout): New function.
|
|
(writeLog): Added the handling of NOTICE log level.
|
|
(writeFile): New function.
|
|
(notice): New function.
|
|
|
|
* src/TorrentMan.h: Updated doc.
|
|
|
|
* src/BitfieldMan.h: Updated doc.
|
|
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): Return true if error occurred in the request to the tracker
|
|
and halt is requested.
|
|
|
|
* src/TrackerUpdateCommand.cc
|
|
(execute): Return true if error occurred in the request to the tracker
|
|
and halt is requested.
|
|
|
|
To call onDownloadComplete from TorrentMan::completePiece(), not from
|
|
DownloadEngine:
|
|
* src/TorrentConsoleDownloadEngine.h
|
|
(onSelectiveDownloadingCompletes): Removed.
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
(onSelectiveDownloadingCompletes): Removed.
|
|
* src/TorrentDownloadEngine.h
|
|
(onEndOfRun): Added 'virtual' keyword.
|
|
(afterEachIteration): Removed.
|
|
(onSelectiveDownloadingCompletes): Removed.
|
|
* src/TorrentDownloadEngine.cc
|
|
(onEndOfRun): Removed filenameFixed.
|
|
(afterEachIteration): Removed.
|
|
* src/TorrentMan.cc
|
|
(completePiece): Call onDownloadComplete here.
|
|
(onDownloadComplete): Added 2 log messages.
|
|
|
|
2006-08-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix compilation problem on gcc4.1.1(patch#1542283 by tizianomueller)
|
|
* src/NameResolver.h: Added the prototype declaration of callback().
|
|
|
|
To support c-ares library:
|
|
* src/AbstractCommand.cc: Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/FeatureConfig.cc: Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/FtpInitiateConnectionCommand.h:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/AbstractCommand.h: Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/HttpInitiateConnectionCommand.h:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/NameResolver.cc: Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS.
|
|
Added thes upport of c-ares's ares_strerror(the idea came from patch
|
|
#1542285 by tizianomueller)
|
|
* src/HttpInitiateConnectionCommand.cc:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/FtpInitiateConnectionCommand.cc:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/DownloadEngine.h:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
* src/DownloadEngine.cc:
|
|
Replaced HAVE_LIBARES with ENABLE_ASYNC_DNS
|
|
|
|
To fix the bug that causes compilation failure with metalink-support
|
|
disabled(bug#1543587):
|
|
* src/main.cc: Fixed with the patch by tizianomueller.
|
|
|
|
* Release 0.7.2
|
|
|
|
2006-08-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/main.cc
|
|
(main): Added a message to inform users that aria2 is starting to
|
|
verify checksum.
|
|
* src/RequestInfo.cc
|
|
(printDownloadAbortMessage): Added a message to inform users that
|
|
transfer can be resumed.
|
|
|
|
* src/FeatureConfig.cc
|
|
(FEATURE_ASYNC_DNS): New definition.
|
|
(FeatureConfig): Added aysnc DNS entry.
|
|
|
|
To replace CommandUuid with Command* in SocketEntry and
|
|
NameResolverEntry:
|
|
|
|
* src/DownloadEngine.h
|
|
(CommandUuids): Removed.
|
|
(SocketEntry::commandUuid): Removed.
|
|
(SocketEntry::command): New variable.
|
|
(SocketEntry::SocketEntry): Updated.
|
|
(SocketEntry::operator==): Updated.
|
|
(NameResolverEntry::commandUuid): Removed.
|
|
(NameResolverEntry::command): New variable.
|
|
(NameResolverEntry::NameResolverEntry): Updated.
|
|
(NameResolverEntry::operator==): Updated.
|
|
(waitData): Changed the argument type.
|
|
(addSocketForReadCheck): Changed the argument type.
|
|
(deleteSocketForReadCheck): Changed the argument type.
|
|
(addSocketForWriteCheck): Changed the argument type.
|
|
(deleteSocketForWriteCheck): Changed the argument type.
|
|
(addNameResolverCheck): Changed the argument type.
|
|
(deleteNameResolverCheck): Changed the argument type.
|
|
* src/DownloadEngine.cc
|
|
(FindCommand): Removed.
|
|
(run): Removed activeUuid. Added activeCommands instead.
|
|
(AccumulateActiveUuid): Renamed as AccumulateActiveCommand.
|
|
(AccumulateActiveCommand): New function object.
|
|
(waitData): Use AccumulateActiveCommand.
|
|
(addSocketForReadCheck): Use Command instead of CommandUuid.
|
|
(deleteSocketForReadCheck): Use Command instead of CommandUuid.
|
|
(addSocketForWriteCheck): Use Command instead of CommandUuid.
|
|
(deleteSocketForWriteCheck): Use Command instead of CommandUuid.
|
|
(addNameResolverCheck): Use Command instead of CommandUuid.
|
|
(deleteNameResolverCheck): Use Command instead of CommandUuid.
|
|
* src/AbstractCommand.cc
|
|
(disableReadCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(setReadCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(disableWriteCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(setWriteCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(setNameResolverCheck): Updated according to the changes in
|
|
DownloadEngine.
|
|
(disableNameResolverCheck): Updated according to the changes in
|
|
DownloadEngine.
|
|
* src/AbstractCommand.cc
|
|
(disableReadCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(setReadCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(disableWriteCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
(setWriteCheckSocket): Updated according to the changes in
|
|
DownloadEngine.
|
|
|
|
* release 0.7.1
|
|
|
|
2006-08-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To handle the case where some BitTorrent tracker requires all letters
|
|
except for [A-Za-z0-9] is URL encoded.
|
|
|
|
* src/Util.h
|
|
(torrentUrlencode): New function.
|
|
* src/Util.cc
|
|
(ctype.h): Included.
|
|
(torrentUrlencode): New function.
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): Use Util::torrentUrlencode() instead of Util::urlencode().
|
|
|
|
2006-08-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add asynchronous DNS support(libares):
|
|
|
|
* src/AbstractCommand.h
|
|
(setNameResolverCheck): New function.
|
|
(disableNameResolverCheck): New function
|
|
(resolveHostname): New function.
|
|
* src/AbstractCommand.cc
|
|
(setNameResolverCheck): New function.
|
|
(disableNameResolverCheck): New function
|
|
(resolveHostname): New function.
|
|
* src/FtpInitiateConnectionCommand.h
|
|
(nameResolver): New function.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(Util.h): Included.
|
|
(FtpInitiateConnectionCommand): Call disableReadCheckSocket,
|
|
disableWriteCheckSocket.
|
|
(~FtpInitiateConnectionCommand): Call disableNameResolverCheck.
|
|
(executeInternal): Added async DNS support.
|
|
* src/HttpInitiateConnectionCommand.h
|
|
(nameResolver): New function.
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
(DlRetryEx.h): Included.
|
|
(HttpInitiateConnectionCommand): Call disableReadCheckSocket,
|
|
disableWriteCheckSocket.
|
|
(~HttpInitiateConnectionCommand): Call disableNameResolverCheck.
|
|
(executeInternal): Added async DNS support.
|
|
* src/NameResolver.h: New class. Note: #include <ares.h> is surrounded
|
|
by extern "C" declaration.
|
|
* src/NameResolver.cc: New class.
|
|
* src/Util.h:
|
|
(isNumberAndDotsNotation): New function
|
|
* src/Util.cc
|
|
(isNumberAndDotsNotation): New function.
|
|
* src/DownloadEngine.h
|
|
(NameResolver.h): Included.
|
|
(NameResolverEntry): New class.
|
|
(NameResolverEntries): New type definition.
|
|
(addNameResolverCheck): New function.
|
|
(deleteNameResolverCheck): New function.
|
|
* src/DownloadEngine.cc
|
|
(run): Initialize cp with 0.
|
|
(SetDescriptor::operator()): Added for NameResolverEntry.
|
|
(AccumulateActiveUuid::operator()): Added for NameResolverEntry.
|
|
(waitData): Check nameResolver entries.
|
|
(updateFdSet): Update fds in nameResolver entries.
|
|
(addNameResolverCheck): New function.
|
|
(deleteNameResolverCheck): new function.
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Fixed wrong socket handling.
|
|
|
|
* src/main.cc
|
|
(main): Fixed the initial value of PREF_LOWEST_SPEED_LIMIT option to 0.
|
|
|
|
* src/Util.cc
|
|
(fileChecksum): Removed the call to ctx.digestReset().
|
|
|
|
2006-08-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* po/ru.po: Azamat sent me Russian translation.
|
|
|
|
* src/FtpNegotiateCommand.cc
|
|
(recvGreeting): Call disableWriteCheckSocket just after
|
|
socket->setBlockingMode(). This avoids unnecessary CPU-hog loop.
|
|
(recvRetr): Recognized status code 125 as a acceptable response code.
|
|
|
|
Rename Time.h to TimeA2.h to avoid compilation ploblem on
|
|
case-insesitive filesystem(BUG#1531057).
|
|
|
|
* src/Time.h: Renamed as TimeA2.h.
|
|
* src/Time.cc: Renamed as TimeA2.cc.
|
|
* src/TimeA2.h: New class.
|
|
* src/TimeA2.cc: New class.
|
|
* src/PeerChokeCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/TrackerWatcherCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/PeerAbstractCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/AbstractCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/PeerInteractionCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/ConsoleDownloadEngine.h: Replaced Time.h with TimeA2.h.
|
|
* src/TorrentAutoSaveCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/DownloadCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/TorrentMan.h: Replaced Time.h with TimeA2.h.
|
|
* src/TorrentDownloadEngine.h: Replaced Time.h with TimeA2.h.
|
|
* src/RequestSlot.h: Replaced Time.h with TimeA2.h.
|
|
* src/SleepCommand.h: Replaced Time.h with TimeA2.h.
|
|
* src/DownloadEngine.cc: Replaced Time.h with TimeA2.h.
|
|
|
|
* release 0.7.0
|
|
|
|
2006-08-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerChokeCommand.h
|
|
(PeerChokeCommand): Rearranged the arguments.
|
|
* src/PeerChokeCommand.cc
|
|
(PeerChokeCommand): Rearranged the arguments.
|
|
|
|
* src/MetalinkEntry.h
|
|
(Checksum.h): Included.
|
|
(md5): Removed.
|
|
(sha1): Removed.
|
|
(checksum): New variable.
|
|
(operator=): Updated.
|
|
(check): Removed.
|
|
|
|
* src/prefs.h
|
|
(PREF_LOWEST_SPEED_LIMIT): New definition.
|
|
(PREF_FOLLOW_TORRENT): New definition.
|
|
(PREF_SELECT_FILE): New definition.
|
|
(PREF_FOLLOW_METALINK): New definition.
|
|
|
|
* src/MetalinkResource.h
|
|
(TYPE_HTTPS): Added to enum TYPE.
|
|
|
|
* src/TorrentMan.cc
|
|
(~TorrentMan): Rewritten.
|
|
|
|
* src/MultiDiskWriter.cc
|
|
(MultiDiskAdaptor): Updated according to the changes in
|
|
MessageDigestContext.
|
|
(~MultiDiskAdaptor): Updated according to the changes in
|
|
MessageDigestContext.
|
|
(hashUpdate): Updated according to the changes in MessageDigestContext.
|
|
(sha1Sum): Updated according to the changes in MessageDigestContext.
|
|
|
|
* src/Util.h
|
|
(fileChecksum): Updated according to the changes in
|
|
MessageDigestContext.
|
|
* src/Util.cc
|
|
(sha1Sum): Updated according to the changes in MessageDigestContext.
|
|
(fileChecksum): Updated according to the changes in
|
|
MessageDigestContext.
|
|
|
|
* src/messageDigest.h: Rewritten.
|
|
|
|
* src/MetalinkEntry.cc
|
|
(check): Removed.
|
|
(Supported): Updated.
|
|
(dropUnsupportedResource): Fixed a memory leak.
|
|
|
|
* src/ShaVisitor.cc
|
|
(ShaVisitor): Updated according to the changes in MessageDigestContext.
|
|
(~ShaVisitor): Updated according to the changes in
|
|
MessageDigestContext.
|
|
(visit): Updated according to the changes in MessageDigestContext.
|
|
|
|
* src/main.cc
|
|
(main): Rewritten the portion of download loop. --lowest-speed-limit
|
|
command-line option added.
|
|
|
|
* src/DownloadEngine.h
|
|
(SocketEntry): New class.
|
|
(SocketEntries): New definition.
|
|
(PairFind): Removed.
|
|
(SockCmdMap): Removed.
|
|
* src/DownloadEngine.cc
|
|
(DownloadEngine): Rewritten.
|
|
(~DownloadEngine): Rewritten.
|
|
(run): Renamed activeCommandUuids as activeUuids.
|
|
(SetDescriptor): Rewritten.
|
|
(AccumulateActiveCommandUuid): Removed.
|
|
(AccumulateActiveUuid): New function object.
|
|
(waitData): Rewritten.
|
|
(updateFdSet): Rewritten.
|
|
(addSocket): Rewritten.
|
|
(deleteSocket): Rewritten.
|
|
(addSocketForReadCheck): Rewritten.
|
|
(deleteSocketForReadCheck): Rewritten.
|
|
(addSocketForWriteCheck): Rewritten.
|
|
(deleteSocketForWriteCheck): Rewritten.
|
|
|
|
* src/Xml2MetalinkProcessor.cc
|
|
(getEntry): Rewritten the portion of MetalinkEntry creation.
|
|
|
|
* src/DownloadCommand.cc
|
|
(executeInternal): Added the check routine for lowest speed limit.
|
|
|
|
* src/AbstractDiskWriter.cc
|
|
(AbstractDiskWriter): Updated according to the changes in
|
|
MessageDigestContext.
|
|
(~AbstractDiskWriter): Updated according to the changes in
|
|
MessageDigestContext.
|
|
(sha1Sum): Updated according to the changes in MessageDigestContext.
|
|
|
|
* src/RequestInfo.h: New class.
|
|
|
|
* src/UrlRequestInfo.h: New class.
|
|
* src/UrlRequestInfo.cc: New class.
|
|
|
|
* src/TorrentRequestInfo.h: New class.
|
|
* src/TorrentRequestInfo.cc: New class.
|
|
|
|
* src/MetalinkRequestInfo.h: New class.
|
|
* src/MetalinkRequestInfo.cc: New class.
|
|
|
|
* src/Checksum.h: New class.
|
|
|
|
* src/DownloadEngineFactory.h: New class.
|
|
* src/DownloadEngineFactory.cc: New class.
|
|
|
|
2006-08-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/Option.h
|
|
(getAsBool): New function.
|
|
* src/Option.cc
|
|
(prefs.h): Included.
|
|
(defined): 0-length value is now recognized as undefined.
|
|
(getAsInt): Rewritten.
|
|
(getAsLLInt): Rewritten.
|
|
(getAsBool): New function.
|
|
|
|
* src/FeatureConfig.h: Rewritten.
|
|
* src/FeatureConfig.cc: Rewritten.
|
|
|
|
* src/prefs.h
|
|
(PREF_STDOUT_LOG): New definition.
|
|
(PREF_LOG): New definition.
|
|
(PREF_DIR): New definition.
|
|
(PREF_OUT): New definition.
|
|
(PREF_SPLIT): New definition.
|
|
(PREF_DAEMON): New definition.
|
|
(PREF_REFERER): New definition.
|
|
(PREF_TORRENT_FILE): New definition.
|
|
(PREF_LISTEN_PORT): New definition.
|
|
(PREF_METALINK_FILE): New definition.
|
|
(PREF_METALINK_VERSION): New definition.
|
|
(PREF_METALINK_LANGUAGE): New definition.
|
|
(PREF_METALINK_OS): New definition.
|
|
(PREF_METALINK_SERVERS): New definition.
|
|
|
|
* src/main.cc
|
|
(main): Following command-line parameters are now put into Option
|
|
class: stdoutLog, logfile, dir, ufilename, split, daemonMode,
|
|
referer, torrentFile, metalinkFile, listenPort, metalinkVersion,
|
|
metalinkLanguage, metalinkOs, metalinkServers
|
|
|
|
To fix the bug that aria2 can not handle http response header properly.
|
|
|
|
* src/HttpHeader.cc
|
|
(put): Made name lowercased.
|
|
(defined): Made name lowercased.
|
|
(getFirst): Made name lowercased.
|
|
(get): Made name lowercased.
|
|
(getFirstAsInt): Rewritten.
|
|
(getFirstAsLLInt): Rewritten.
|
|
|
|
2006-07-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/TorrentMan.h:
|
|
(advertisePiece): Updated doc.
|
|
(getAdvertisedPieceIndexes): Updated doc.
|
|
(removeAdvertisedPiece); New function.
|
|
|
|
* src/TorrentMan.cc
|
|
(FindElapsedHave): New function object.
|
|
(removeAdvertisedPiece): New function.
|
|
|
|
* src/HaveEraseCommand.h: New class.
|
|
* src/HaveEraseCommand.cc: New class.
|
|
|
|
* src/FeatureConfig.h: New class.
|
|
* src/FeatureConfig.cc: New class.
|
|
|
|
* src/Request.h
|
|
(defaultPorts): Removed.
|
|
* src/Request.cc
|
|
(FeatureConfig.h): Included.
|
|
(Request): Removed the statements related to defaultPorts.
|
|
(parseUrl): Removed metalinkEnabled. Use FeatureConfig instead.
|
|
A default port number is now retrieved from FeatureConfig.
|
|
|
|
* src/main.cc
|
|
(HaveEraseCommand.h): Included.
|
|
(showVersion): Added the output of feature list.
|
|
(main): Added HaveEraseCommand to command queue in BitTorrent
|
|
downloading.
|
|
|
|
* src/PeerInteractionCommand.h
|
|
(chokeCheckPoint): Commented out.
|
|
(periodicExecPoint): New variable.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Following methods are now called in at least every
|
|
0.5 seconds to reduce CPU usage:
|
|
detectMessageFlooding(), peerInteraction->checkRequestSlot(),
|
|
checkHave(), sendKeepAlive().
|
|
(checkLongTimePeerChoking): Commented out.
|
|
|
|
* src/BitfieldMan.h
|
|
(getNthBitIndex): Changed the method signature.
|
|
(getMissingIndexRandomly): Changed the method signature.
|
|
* src/BitfieldMan.cc
|
|
(getNthBitIndex): Rewritten
|
|
(getMissingIndexRandomly): Rewritten.
|
|
(hasMissingPiece): Rewritten.
|
|
(getMissingIndex): Refactored.
|
|
(getMissingUnusedIndex); Refactored.
|
|
(getMissingIndex): Refactored.
|
|
|
|
2006-07-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerMessage.h
|
|
(Piece.h): Included.
|
|
(SharedHandle.h): Included.
|
|
(invalidate): New variable.
|
|
(uploading): New variable.
|
|
(isInvalidate): New function.
|
|
(isUploading): New function.
|
|
(onPush): New function.
|
|
(onChoked): New function.
|
|
(onCanceled): New function.
|
|
(onAbortPiece): New function.
|
|
(PeerMessageHandle): New type definition.
|
|
|
|
* src/PeerMessage.cc
|
|
(PeerMessage): Added the initialization for invalidate and uploading.
|
|
|
|
* src/CancelMessage.h
|
|
(CancelMessage): Rewritten.
|
|
|
|
* src/RejectMessage.h
|
|
(RejectMessage): Rewritten.
|
|
|
|
* src/Metalinker.h
|
|
(operator=): Defined.
|
|
|
|
* src/MetaEntry.h
|
|
(operator=): Defined.
|
|
|
|
* src/MetalinkResource.h
|
|
(operator=): Defined.
|
|
|
|
* src/AllowedFastMessage.h
|
|
(AllowedFastMessage): Rewritten.
|
|
|
|
* src/HandshakeMessage.h
|
|
(HandshakeMessage): New function(overload).
|
|
|
|
* src/HandshakeMessage.cc
|
|
(HandshakeMessage): Rewritten.
|
|
(init): New function.
|
|
|
|
* src/HaveMessage.h
|
|
(HaveMessage): Rewritten.
|
|
|
|
* src/Time.h
|
|
(operator=): Defined the function body here.
|
|
* src/Time.cc
|
|
(operator=): Removed.
|
|
|
|
* src/SocketCore.h
|
|
(operator==): Defined here.
|
|
(operator!=): Defined here.
|
|
(operator<): Defined here.
|
|
* src/SocketCore.cc
|
|
(operator==): Removed.
|
|
(operator<): Removed.
|
|
|
|
* src/BitfieldMan.h
|
|
(operator=): Defined the function body here.
|
|
* src/BitfieldMan.cc
|
|
(operator=): Removed.
|
|
|
|
* src/TorrentMan.h
|
|
(deleteErrorPeer): Removed.
|
|
(deleteUnusedPeer); New function.
|
|
* src/TorrentMan.cc
|
|
(addPeer): Call deleteUnusedPeer.
|
|
(deleteErrorPeer): Removed.
|
|
(deleteUnusedPeer): New function.
|
|
|
|
* src/PeerAbstractCommand.h
|
|
(setNoCheck): New function.
|
|
(noCheck): New variable.
|
|
* src/PeerAbstractCommand.cc
|
|
(PeerAbstractCommand): Added the initialization of noCheck.
|
|
(execute): Added a check for noCheck.
|
|
(setNoCheck): New function.
|
|
|
|
* src/Util.h
|
|
(stdio.h): Included.
|
|
* src/Util.cc
|
|
(unistd.h): Included.
|
|
|
|
* src/DefaultDiskWriter.cc
|
|
(unistd.h): Included.
|
|
|
|
* src/Peer.h
|
|
(operator==): Defined the function body here.
|
|
(operator!=): Defined the function body here.
|
|
* src/Peer.cc
|
|
(operator==): Removed.
|
|
(operator!=): Removed.
|
|
|
|
* src/Piece.h
|
|
(Piece): Defined the function body here(copy constructor).
|
|
(operator=): Defined the function body here.
|
|
(operator==): Defined the function body here.
|
|
* src/Piece.cc
|
|
(Piece): Removed(copy constructor).
|
|
(operator=): Removed.
|
|
(operator==): Removed.
|
|
|
|
* src/PeerMessageUtil.h
|
|
(ChokeMessage.h): Removed.
|
|
(UnchokeMessage.h): Removed.
|
|
(InterestedMessage.h): Removed.
|
|
(NotInterestedMessage.h): Removed.
|
|
(HaveMessage.h): Removed.
|
|
(BitfieldMessage.h): Removed.
|
|
(RequestMessage.h): Removed.
|
|
(CancelMessage.h): Removed.
|
|
(PieceMessage.h): Removed.
|
|
(HandshakeMessage.h): Removed.
|
|
(KeepAliveMessage.h): Removed.
|
|
(PortMessage.h): Removed.
|
|
(HaveAllMessage.h): Removed.
|
|
(HaveNoneMessage.h): Removed.
|
|
(PeerConnection.h): Removed.
|
|
(HandshakeMessage.h): Included.
|
|
|
|
* src/BitfieldMessage.h
|
|
(init): New function.
|
|
(BitfieldMessage): Rewritten.
|
|
(BitfieldMessage): New function(overload).
|
|
|
|
* src/RequestSlot.h
|
|
(operator=): Defined the function body here.
|
|
(operator==): Defined the function body here.
|
|
* src/RequestSlot.cc
|
|
(operator=): Removed.
|
|
(operator==): Removed.
|
|
|
|
To remove the dependency on the PeerMessage subclass from
|
|
PeerInteraction:
|
|
|
|
* src/PeerMessageFactory.h: New class.
|
|
* src/PeerMessageFactory.cc: New class.
|
|
* src/SimplePeerMessage.cc
|
|
(send): If invalidate is true then do nothing.
|
|
* src/PeerInteractionCommand.cc
|
|
(HandshakeMessage.h): Included.
|
|
(KeepAliveMessage.h): Included.
|
|
(ChokeMessage.h): Included.
|
|
(UnchokeMessage.h): Included.
|
|
(HaveMessage.h): Included.
|
|
(executeInternal): Call setNoCheck().
|
|
Removed setWriteCheckSocket(socket).
|
|
* src/PeerInteraction.h
|
|
(ChokeMessage.h): Removed.
|
|
(UnchokeMessage.h): Removed.
|
|
(InterestedMessage.h): Removed.
|
|
(NotInterestedMessage.h): Removed.
|
|
(HaveMessage.h): Removed.
|
|
(BitfieldMessage.h): Removed.
|
|
(RequestMessage.h): Removed.
|
|
(CancelMessage.h): Removed.
|
|
(PieceMessage.h): Removed.
|
|
(HandshakeMessage.h): Removed.
|
|
(KeepAliveMessage.h): Removed.
|
|
(PortMessage.h): Removed.
|
|
(HaveAllMessage.h): Removed.
|
|
(HaveNoneMessage.h): Removed.
|
|
(RejectMessage.h): Removed.
|
|
(AllowedFastMessage.h): Removed.
|
|
(SuggestPieceMessage.h): Removed.
|
|
(PeerMessageFactory.h): Included.
|
|
(PeerMessageHandle): Removed typedef of PeerMessageHandle.
|
|
(HandshakeMessageHandle): Removed typedef of HandshakeMessageHandle.
|
|
(PeerMessageFactory): New variable.
|
|
(createPeerMessage): Removed.
|
|
(createHandshakeMessage): Removed.
|
|
(setPeerMessageCommonProperty): Removed.
|
|
(addRequestSlot): New function.
|
|
(receiveHandshake): Changed the return value type to PeerMessageHandle.
|
|
(getPeerMessageFactory): New function.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createKeepAliveMessage): Removed.
|
|
(createHaveAllMessage): Removed.
|
|
(createHaveNoneMessage): Removed.
|
|
(createRejectMessage): Removed.
|
|
(createAllowedFastMessage): Removed.
|
|
* src/PeerInteraction.cc
|
|
(PeerInteraction): Allocate PeerMessageFactory here.
|
|
(~PeerInteraction): Deallocate PeerMessageFactory here.
|
|
(sendMessages): Use msg->isUploading() instead of msg->getId() ==
|
|
PieceMessage::ID.
|
|
(addMessage): Simplified by using PeerMessage::onPush().
|
|
(addRequestSlot): New function.
|
|
(rejectAllPieceMessageInQueue): Simplified by using
|
|
PeerMessage::onChoked().
|
|
(rejectPieceMessageInQueue): Simplified by using
|
|
PeerMessage::onCanceled().
|
|
(abortPiece): Simplified by using PeerMessage::abortPiece().
|
|
(receiveHandshake): Changed the return value type to PeerMessageHandle.
|
|
(createHandshakeMessage): Removed.
|
|
(createPeerMessage): Removed.
|
|
(sendHandshake): Call PeerMessageFactory::createHandshakeMessage().
|
|
(setPeerMessageCommonProperty): Removed.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createKeepAliveMessage): Removed.
|
|
(createHaveAllMessage): Removed.
|
|
(createHaveNoneMessage): Removed.
|
|
(createRejectMessage): Removed.
|
|
(createAllowedFastMessage): Removed.
|
|
* src/PieceMessage.h
|
|
(createRejectMessage): New function.
|
|
(PieceMessage): Rewritten.
|
|
(onChoked): New function.
|
|
(onCanceled): New function.
|
|
* src/PieceMessage.cc
|
|
(send): If invalidate is true then do nothing, just return.
|
|
(createRejectMessage): New function.
|
|
(onChoked): New function.
|
|
(onCanceled): New function.
|
|
* src/RequestMessage.h
|
|
(RequestMessage): Rewritten.
|
|
(onPush): New function.
|
|
(onAbortPiece): New function.
|
|
* src/RequestMessage.cc
|
|
(onPush): New function.
|
|
(onAbortPiece): New function.
|
|
|
|
Update fd_set when a socket is added or deleted in order to improve
|
|
performance:
|
|
|
|
* src/DownloadEngine.h
|
|
(rfdset): New variable.
|
|
(wfdset): New variable.
|
|
(updateFdSet): New function.
|
|
* src/DownloadEngine.cc
|
|
(SetDescriptor::operator()): Use SockCmdMap::value_type.
|
|
(AccumulateActiveCommandUuid::operator()): Use SockCmdMap::value_type.
|
|
(waitData): Copy rfdset and wfdset.
|
|
(updateFdSet): New function.
|
|
(addSocket): Call updateFdSet.
|
|
(deleteSocket): Call updateFdSet.
|
|
|
|
2006-07-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add the support for Metalink3.0 backward compatible links:
|
|
|
|
* src/Request.h
|
|
(SAFE_CHARS): Added '#'.
|
|
(METALINK_MARK): New definition.
|
|
* src/Request.cc
|
|
(parseUrl): Added the support for Metalink3.0 backward compatible
|
|
links.
|
|
|
|
etc
|
|
|
|
* src/PeerInteraction.cc
|
|
(MsgPushBack): Removed.
|
|
(sendMessages): Use STL copy and back_inserter.
|
|
(rejectAllPieceMessageInQueue): Use STL copy and back_inserter.
|
|
(rejectPieceMessageInQueue): Use STL copy and back_inserter.
|
|
* src/TorrentMan.h
|
|
(MAX_PEER_LIST_SIZE): Changed to 100 from 250.
|
|
|
|
2006-07-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/SharedHandle.h: New class.
|
|
|
|
To wrap Socket, Command, PeerMessage and Peer with SharedHandle:
|
|
|
|
* src/HttpResponseCommand.h
|
|
(HttpResponseCommand): Wrapped Socket.
|
|
* src/SocketCore.h
|
|
(operator==): New function.
|
|
(operator!=): New function.
|
|
(operator<): New function.
|
|
(getSockfd): New function.
|
|
(isOpen): New function.
|
|
(writeData): New function.
|
|
* src/SocketCore.cc
|
|
(operator==): New function.
|
|
(operator!=): New function.
|
|
(operator<): New function.
|
|
* src/AbstractCommand.h
|
|
(socket): Changed its type to SocketHandle.
|
|
(setReadCheckSocket): Replaced Socket with SocketHandle.
|
|
(setWriteCheckSocket): Replaced Socket with SocketHandle.
|
|
(disableReadCheckSocket): New function.
|
|
(disableWriteCheckSocket): New function.
|
|
(readCheckTarget): Changed its type to SocketHandle.
|
|
(writeCheckTarget): Changed its type to SocketHandle.
|
|
(AbstractCommand): Replaced Socket with SocketHandle.
|
|
* src/AbstractCommand.cc
|
|
(AbstractCommand): Replaced Socket with SocketHandle.
|
|
(~AbstractCommand): Removed the deallocation for Socket object.
|
|
(disableReadCheckSocket): New function.
|
|
(setReadCheckSocket): Replaced Socket with SocketHandle.
|
|
(disableWriteCheckSocket): New function.
|
|
(setWriteCheckSocket): Replaced Socket with SocketHandle.
|
|
* src/HttpDownloadCommand.cc
|
|
(DownloadCommand): Replaced Socket with SocketHandle.
|
|
* src/PeerAbstractCommand.h
|
|
(socket): Changed its type to SocketHandle.
|
|
(peer): Changed its type to PeerHandle.
|
|
(setReadCheckSocket): Replaced Socket with SocketHandle.
|
|
(setWriteCheckSocket): Replaced Socket with SocketHandle.
|
|
(disableReadCheckSocket): New function.
|
|
(disableWriteCheckSocket): New function.
|
|
(readCheckTarget): Changed its type to SocketHandle.
|
|
(writeCheckTarget): Changed its type to SocketHandle.
|
|
(PeerAbstractCommand): Replaced Socket with SocketHandle.
|
|
Replaced Peer with PeerHandle.
|
|
* src/HttpRequestCommand.cc
|
|
(HttpRequestCommand): Replaced Socket with SocketHandle.
|
|
Use disableReadCheckSocket.
|
|
* src/PeerInitiateConnectionCommand.h
|
|
(PeerInitiateConnectionCommand): Replaced Peer with PeerHandle.
|
|
* src/PeerChokeCommand.cc
|
|
(UploadFaster::operator()): Replaced Peer with PeerHandle.
|
|
(DownloadFaster::operator()): Replaced Peer with PeerHandle.
|
|
(execute): Use PeerHandle.
|
|
* src/PeerConnection.h
|
|
(HandshakeMessage.h): Removed include of HandshakeMessage.h.
|
|
(socket): Changed its type to SocketHandle.
|
|
(PeerConnection): Replaced Socket with SocketHandle.
|
|
* src/PeerConnection.cc
|
|
(PeerConnection): Replaced Socket with SocketHandle.
|
|
* src/PeerInteractionCommand.h
|
|
(PeerInteractionCommand): Replaced socket with SocketHandle.
|
|
Replaced Peer with PeerHandle.
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Replaced Socket with SocketHandle.
|
|
Replaced Peer with PeerHandle.
|
|
(executeInternal): Use disableWriteCheckSocket.
|
|
Use HandshakeMessageHandle.
|
|
(receiveMessages): Use PeerMessageHandle.
|
|
(prepareForNextPeer): Use PeerHandle.
|
|
* src/HttpProxyRequestCommand.h
|
|
(HttpProxyRequestCommand): Replaced Socket with SocketHandle.
|
|
* src/HttpResponseCommand.cc
|
|
(HttpResponseCommand): Replaced Socket with SocketHandle.
|
|
* src/TorrentMan.cc
|
|
(nullPeer): Added external reference.
|
|
(~TorrentMan): Removed the deallocation of the elements of peers.
|
|
(addPeer): Rewritten.
|
|
(isPeerAvailable): Use nullPeer.
|
|
(deleteOldpeers): Replaced with deleteErrorPeer.
|
|
(deleteErrorPeer): New function.
|
|
(getPeer): Use PeerHandle and nullPeer.
|
|
(hasMissingPiece): Replaced Peer with PeerHandle.
|
|
(getMissingPieceIndex): Replaced Peer with PeerHandle.
|
|
(getMissingFastPieceIndex): Replaced Peer with PeerHandle.
|
|
(getMissingFastPiece): Replaced Peer with PeerHandle.
|
|
(getMissingPiece): Replaced Peer with PeerHandle.
|
|
* src/FtpNegotiateCommand.cc
|
|
(FtpNegotiationCommand): Replaced Peer with PeerHandle.
|
|
(~FtpNegotiationCommand): Removed the deallocation of Sockets.
|
|
(recvGreeting): Use disableWriteCheckSocket.
|
|
(recvPasv): Removed the allocation of Socket.
|
|
Use disableReadCheckSocket.
|
|
(sendRestPasv): Use disableWriteCheckSocket.
|
|
(recvRetr): Changed assertion.
|
|
* src/PeerInteraction.h
|
|
(SharedHandle.h): Included SharedHandle.h.
|
|
(PeerMessageHandle): New type definition.
|
|
(HandshakeMessageHandle): New type definition.
|
|
(MessageQueue): Changed. Now its element is of type PeerMessageHandle.
|
|
(peer): Changed its type to PeerHandle.
|
|
(createHandshakeMessage): Replaced HandshakeMessage with
|
|
HandshakeMessageHandle.
|
|
(createPeerMessage): Replaced PeerMessageHandle with PeerMessage.
|
|
(PeerInteraction): Replaced Peer with PeerHandle.
|
|
Replaced Socket with SocketHandle.
|
|
(addMessage): Replaced PeerMessage with PeerMessageHandle.
|
|
(receiveMessage): Replaced PeerMessage with PeerMessageHandle.
|
|
(receiveHandshake): Replaced HandshakeMessage with
|
|
HandshakeMessageHandle.
|
|
* src/PeerInteraction.cc
|
|
(PeerInteraction): Replaced Peer with PeerHandle.
|
|
Replaced Socket with SocketHandle.
|
|
(~PeerInteraction): Removed the deallocation of the elements of
|
|
messageQueue.
|
|
(MsgPushBack::operator()): Replaced PeerMessage with PeerMessageHandle.
|
|
(isSendingMessageInProgress): Replaced PeerMessage with
|
|
PeerMessageHandle.
|
|
(sendMessages): Use PeerMessageHandle. Removed try-catch block.
|
|
(addMessage): Replaced PeerMessage with PeerMessageHandle.
|
|
(rejectAllPieceMessageInQueue): Use PeerMessageHandle.
|
|
(rejectPieceMessageInQueue): Use PeerMessageHandle.
|
|
(abortPiece): Use PeerMessageHandle.
|
|
(receiveHandshake): Replaced HandshakeMessage with
|
|
HandshakeMessageHandle. Removed try-catch block.
|
|
(createHandshakeMessage): Replaced HandshakeMessage with
|
|
HandshakeMessageHandle.
|
|
(receiveMessage): Replaced PeerMessage with PeerMessageHandle.
|
|
Removed try-catch block.
|
|
(createPeerMessage): Replaced PeerMessage with PeerMessageHandle.
|
|
* src/HttpProxyResponseCommand.cc
|
|
(HttpProxyRequestCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpTunnelResponseCommand.h
|
|
(FtpTunnelResponseCommand): Replaced Socket with SocketHandle.
|
|
* src/HttpConnection.cc
|
|
(HttpConnection): Replaced Socket with SocketHandle.
|
|
* src/PeerAbstractCommand.cc
|
|
(PeerAbstractCommand): Replaced Socket with SocketHandle.
|
|
(~PeerAbstractCommand): Removed the deallocation of socket.
|
|
Use disableReadCheckSocket, disableWriteCheckSocket.
|
|
(disableReadCheckSocket): New function.
|
|
(setReadCheckSocket): Replaced Socket with SocketHandle.
|
|
(disableWriteCheckSocket): New function.
|
|
(setWriteCheckSocket): Replaced Socket with SocketHandle.
|
|
* src/InitiateConnectionCommandFactory.h: Corrected indentation.
|
|
* src/FtpTunnelRequestCommand.cc
|
|
(FtpTunnelRequestCommand): Replaced Socket with SocketHandle.
|
|
(~FtpTunnelRequestCommand): Corrected indentation.
|
|
* src/DownloadCommand.h
|
|
(DownloadCommand): Replaced Socket with SocketHandle.
|
|
* src/PeerListenCommand.cc
|
|
(PeerListenCommand): Removed the initialization of socket.
|
|
(~PeerListenCommand): Removed the deallocation of socket.
|
|
(bindPort): Use SocketHandle.
|
|
(execute): Use SocketHandle and PeerHandle.
|
|
* src/FtpDowndloadCommand.cc
|
|
(FtpDownloadCommand): Replaced Socket with SocketHandle.
|
|
(~FtpDownloadCommand): Removed the deallocation of ctrlSocket.
|
|
* src/main.cc
|
|
(main): Corrected indentation.
|
|
* src/HttpInitiateConnectionCommand.cc
|
|
(HttpInitiateConnectionCommand): Replaced Socket with SocketHandle.
|
|
(executeInternal): Removed the allocation of socket.
|
|
* src/HttpRequestCommand.h
|
|
(HttpRequestCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpNegotiationCommand.h
|
|
(dataSocket): Changed its type to SocketHandle.
|
|
(serverSocket): Changed its type to SocketHandle.
|
|
(FtpNegotiationCommand): Replaced Socket with SocketHandle.
|
|
* src/TorrentMan.h
|
|
(MAX_PEER_UPDATE): Removed.
|
|
(MAX_PEERS): New definition.
|
|
(Peers): The element is now of type PeerHandle.
|
|
(addPeer): Replaced Peer with PeerHandle. Removed 'duplicate' argument.
|
|
(getPeer): Replaced Peer with PeerHandle.
|
|
(deleteOldErrorPeers): Removed.
|
|
(deleteErrorPeer): New function.
|
|
(hasMissingPiece): Replaced Peer with PeerHandle.
|
|
(getMissingPieceIndex): Replaced Peer with PeerHandle.
|
|
(getMissingPiece): Replaced Peer with PeerHandle.
|
|
(getMissingFastPieceIndex): Replaced Peer with PeerHandle.
|
|
(getMissingFastPiece): Replaced Peer with PeerHandle.
|
|
(addActivePeer): Replaced Peer with PeerHandle.
|
|
(deleteActivePeer): Replaced Peer with PeerHandle.
|
|
Added a check for the return value of find.
|
|
* src/FtpTunnelResponseCommand.cc
|
|
(FtpTunnelResponseCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpInitiateConnectionCommand.cc
|
|
(executeInternal): Removed the allocation of socket.
|
|
* src/DownloadEngine.h
|
|
(Sockets): An element is now of type SocketHandle.
|
|
(SockCmdMap): A key is of type SocketHandle, a value is of type int.
|
|
(CommandUuids): New type definition.
|
|
(rsockets): Changed its type to SockCmdMap.
|
|
(wsockets): Changed its type to SockCmdMap.
|
|
(addSocket): Rewritten.
|
|
(deleteSocket): Rewritten.
|
|
(addSocketForReadCheck): Rewritten.
|
|
(deleteSocketForReadCheck): Rewritten.
|
|
(addSocketForWriteCheck): Rewritten.
|
|
(deleteSocketForWriteCheck): Rewritten.
|
|
(PairFind): New template class.
|
|
* src/HttpDownloadCommand.h
|
|
(HttpDownloadCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpConnection.cc
|
|
(FtpConnection): Replaced Socket with SocketHandle.
|
|
(sendPort): Removed the allocation of serverSocket. Removed try-catch
|
|
block.
|
|
* src/InitiateConnectionCommandFactory.cc
|
|
(DlAbortEx.h): Included DlAbortEx.h.
|
|
(createInitiateConnectionCommand): Throw exception if the protocol of
|
|
requested URI is not supported.
|
|
* src/Peer.cc
|
|
(nullPeer): Changed its type to PeerHandle.
|
|
(operator==): New function.
|
|
(operator!=): New function.
|
|
* src/Peer.h
|
|
(SharedHandle.h): Included SharedHandle.h.
|
|
(operator==): New function.
|
|
(operator!=): New function.
|
|
(Peer): Added the default constructor.
|
|
Use resetStatus() to initialize member variables.
|
|
(nullPeer): Removed.
|
|
* src/TrackerUpdateCommand.cc
|
|
(execute): Brushed up using SharedHandle. Replaced MAX_PEER_UPDATE
|
|
with MIN_PEERS.
|
|
* src/PeerListenCommand.h
|
|
(socket): Changed its type to SocketHandle.
|
|
* src/Command.h
|
|
(CommandUuid): New type definition.
|
|
(uuid): New variable.
|
|
(uuidGen): New variable.
|
|
(Command): Added the initialization of uuid.
|
|
(getUuid): New function.
|
|
* src/Socket.h
|
|
(Socket): Removed.
|
|
(SocketHandle): New type definition.
|
|
* src/DownloadEngine.h
|
|
(FindCommand): New function object.
|
|
(run): The portion of socket check was rewritten.
|
|
(SetDescriptor): New function object.
|
|
(AccumulateActiveCommandUuid): New function object.
|
|
(waitData): Rewritten.
|
|
(addSocket): Rewritten.
|
|
(deleteSocket): Rewritten.
|
|
(addSocketForReadCheck): Rewritten.
|
|
(addSocketForWriteCheck): Rewritten.
|
|
(deleteSocketForReadCheck): Rewritten.
|
|
(deleteSocketForWriteCheck): Rewritten.
|
|
* src/HttpProxyResponseCommand.h
|
|
(HttpProxyResponseCommand): Replaced Socket with SocketHandle.
|
|
* src/HttpConnection.h
|
|
(socket): Changed its type to SocketHandle.
|
|
(HttpConnection): Replaced Socket with SocketHandle.
|
|
* src/PeerInitiateConnectionCommand.cc
|
|
(PeerInitiateConnectionCommand): Replaced Peer with PeerHandle.
|
|
(executeInternal): Removed the allocation of socket.
|
|
(prepareForNextPeer): Use PeerHandle.
|
|
* src/PeerMessage.h
|
|
(peer): Changed its type to PeerHandle.
|
|
(getPeer): Replaced Peer with PeerHandle.
|
|
(setPeer): Replaced Peer with PeerHandle.
|
|
* src/DownloadCommand.cc
|
|
(DownloadCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpConnection.h
|
|
(socket): Changed its type to SocketHandle.
|
|
(FtpConnection): Replaced Socket with SocketHandle.
|
|
(sendPort); Replaced Socket with SocketHandle.
|
|
* src/FtpDowndloadCommand.h
|
|
(ctrlSocket): Changed its type to SocketHandle.
|
|
(FtpDownloadCommand): Replaced Socket with SocketHandle.
|
|
* src/HttpProxyRequestCommand.cc
|
|
(HttpProxyRequestCommand): Replaced Socket with SocketHandle.
|
|
* src/FtpTunnelRequestCommand.h
|
|
(FtpTunnelRequestCommand): Replaced Socket with SocketHandle.
|
|
|
|
etc
|
|
|
|
* src/PeerChokeCommand.h
|
|
(setAllPeerChoked): Removed.
|
|
(setAllPeerResetDelta): Removed.
|
|
* src/PeerChokeCommand.cc
|
|
(setAllPeerChoked): Removed.
|
|
(ChokePeer): New function object.
|
|
(setAllPeerResetDelta): Removed.
|
|
(ResetDelta): New function object.
|
|
(orderByDownloadRate): Fixed a bug: use DowloadFaster, not UploadFaster
|
|
(execute): Show download speed when the local node is a seeder.
|
|
setAllPeerChoked and setAllPeerResetDelta were rewritten
|
|
using STL.
|
|
* src/TrackerWatcherCommand.h
|
|
(MIN_PEERS): Removed.
|
|
* src/TorrentMan.cc
|
|
(getPeer): Replaced MAX_PEER_UPDATE with MIN_PEERS.
|
|
|
|
2006-07-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix the bug that .aria2 file is not saved if downloading is stopped
|
|
by the errors:it results that aria2 can not resume downloading:
|
|
|
|
* src/main.cc
|
|
(normalDownload): Added the call to save().
|
|
(main): Added the deletion of the elements in 'reserved'.
|
|
|
|
To fix log:
|
|
|
|
* src/PeerInteraction.cc
|
|
(receiveHandshake): Fixed log.
|
|
|
|
2006-07-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To improve download performance in BitTorrent:
|
|
|
|
* src/TorrentMan.cc
|
|
(getPeer): Check the number of connections. Return nullPeer if
|
|
it is greater than MAX_PEER_UPDATE.
|
|
This code was originally here, but was removed in 0.5.1.
|
|
|
|
2006-07-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To improve the conditional compilation:
|
|
|
|
* src/MultiDiskWriter.h:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/MultiDiskWriter.cc:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/Util.h:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
Added ENABLE_BITTORRENT around computeFastSet().
|
|
* src/Util.cc:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
Added ENABLE_BITTORRENT around computeFastSet().
|
|
* src/messageDigest.h:
|
|
Replaced ENABLE_BITTORRENT with ENABLE_SSL.
|
|
* src/ShaVisitor.h:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/ShaVisitor.cc:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/main.cc:
|
|
Added ENABLE_BITTORRENT around includes and blocks related to
|
|
BitTorrent.
|
|
Added ENABLE_MESSAGE_DIGEST to skip checksum checking when the message
|
|
digest support is not available.
|
|
* src/AbstractDiskWriter.h:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/AbstractDiskWriter.cc:
|
|
Replaced ENABLE_SHA1DIGEST with ENABLE_MESSAGE_DIGEST.
|
|
* src/MetalinkEntry.cc
|
|
(check): Added ENABLE_MESSAGE_DIGEST. Return true if the message digest
|
|
support is not available.
|
|
|
|
To add command-line options for Metalink:
|
|
|
|
* src/main.cc:
|
|
Added metalink-version, metalink-language, metalink-os,
|
|
follow-metalink.
|
|
|
|
To use EXIT_SUCCESS and EXIT_FAILURE with exit():
|
|
|
|
* src/main.cc: Use these definition.
|
|
|
|
* Release 0.6.0
|
|
|
|
2006-07-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add Metalink support(http/ftp only):
|
|
|
|
* src/AbstractCommand.h
|
|
(tryReserved): New function.
|
|
* src/AbstractCommand.cc
|
|
(execute): Call tryReserved().
|
|
(tryReserved): New function.
|
|
* src/Request.h
|
|
(Requests): New type definition.
|
|
* src/SegmentMan.h
|
|
(reserved): New variable.
|
|
* src/Util.h
|
|
(fileChecksum): New function.
|
|
(toUpper): New function.
|
|
(toLower): New function.
|
|
* src/Util.cc
|
|
(messageDigest.h): Included.
|
|
(trim): Trim \r\n\t.
|
|
(fileChecksum): New function.
|
|
(toUpper): New function.
|
|
(toLower): New function.
|
|
* src/main.cc
|
|
(normalDownload): New function.
|
|
(main): Added 2 command-line options: metalink-file,
|
|
metalink-connection. Their usage has not been written yet.
|
|
* src/MetalinkProcessor.h: New class.
|
|
* src/Xml2MetalinkProcessor.h: New class.
|
|
* src/Xml2MetalinkProcessor.cc: New class.
|
|
* src/MetalinkEntry.h: New class.
|
|
* src/MetalinkEntry.cc: New class.
|
|
* src/MetalinkResource.h: New class.
|
|
* src/MetalinkResource.cc: New class.
|
|
|
|
To add md5 message digest checking:
|
|
|
|
* src/messageDigest.h: Rewritten.
|
|
* src/MultiDiskWriter.cc: Updated according to the changes in
|
|
messageDigest.h.
|
|
* src/ShaVisitor.cc: Updated according to the changes in
|
|
messageDigest.h.
|
|
* src/Util.cc: Updated according to the changes in messageDigest.h.
|
|
* src/AbstractDiskWriter.cc: Updated according to the changes in
|
|
messageDigest.h.
|
|
|
|
To fix a bug that causes segfault when the payload length in peer
|
|
message is less than 0:
|
|
|
|
* src/PeerConnection.cc:
|
|
(receiveMessage): Fixed the bug.
|
|
* src/PeerMessageUtil.cc
|
|
(checkLength): Throw an exception if length is less than or equals to
|
|
0.
|
|
|
|
To add new interfaces to Base64 encoding/decoding:
|
|
|
|
* src/Base64.h
|
|
(part_encode): Changed the method signature.
|
|
(encode): New function(overload).
|
|
(decode): New function(overload).
|
|
* src/Base64.cc
|
|
(part_encode): Rewritten.
|
|
(encode): Rewritten.
|
|
(encode): New function(overload).
|
|
|
|
To prevent a peer to download same piece if there is an error in
|
|
checksum:
|
|
|
|
* src/PieceMessage.cc
|
|
(receivedAction): Call peerInteraction->abortPiece().
|
|
|
|
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().
|
|
* src/Util.cc
|
|
(difftv): Added a cast to (long long int).
|
|
* src/TorrentMan.cc
|
|
(advertisePiece): Use push_front.
|
|
(getAdvertisedPieceIndexes): A performance improvement was made.
|
|
|
|
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.
|
|
|
|
* src/Time.h
|
|
(getTimeInMicros): Added a cast to (long long int).
|
|
(getTimeInMillis): Added a cast to (long long int).
|
|
|
|
* Release 0.5.2
|
|
|
|
2006-06-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To make a listening socket non-block:
|
|
|
|
* src/SocketCore.h
|
|
(setNonBlockingMode): New function.
|
|
* src/SocketCore.cc
|
|
(setNonBlockingMode): New function.
|
|
(beginListen): Added a call to setNonBlockingMode().
|
|
(acceptConnection): Call setNonBlockingMode().
|
|
(setBlockingMode): Updated.
|
|
|
|
To handle tracker's NAT-checking:
|
|
|
|
* src/PeerConnection.cc
|
|
(receiveHandshake): 'msg' param is filled with received data and
|
|
its length is assigned to 'length' param, even if all handshake
|
|
message is not yet received.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Use peerInteraction->receiveHandshake(true) when
|
|
a new peer connects to localhost.
|
|
A call to peerInteraction->sendHandshake() was removed because
|
|
it is called from peerInteraction->receiveHandshake(true).
|
|
* src/PeerInteraction.h
|
|
(quickReplied): New variable.
|
|
(receiveHandshake): Added an argument.
|
|
* src/PeerInteraction.cc
|
|
(PeerInteraction): Added the initialization of quickReplied.
|
|
(receiveHandshake): Send handshake message as soon as the info hash
|
|
in a handshake message from a peer is correct.
|
|
|
|
|
|
To change the random part of peer id and key parameter:
|
|
|
|
* src/TorrentMan.h
|
|
(key): New variable.
|
|
* src/TorrentMan.cc
|
|
(setupInternal1): Use Util::randomAlpha() to generate random part
|
|
of peer id, which is now "-aria2-"+13 alphabet characters([A-Za-z]).
|
|
key is also generated by Util::randomAlpha() and it is now 8 character
|
|
long.
|
|
* src/Util.h
|
|
(randomAlpha): New function.
|
|
* src/Util.cc
|
|
(randomAlpha): New function.
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): In a tracker request: Use torrentMan->key as key parameter.
|
|
Added no_peer_id=1.
|
|
|
|
Set snubbing flag to false when a choke message is received from a
|
|
snubbed peer.
|
|
|
|
* src/ChokeMessage.cc
|
|
(receivedAction): Set snubbing flag to false.
|
|
|
|
2006-06-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/TorrentMan.cc (setupInternal1): Fixed peerId generation bug.
|
|
|
|
* src/SimpleLogger.h (writeHeader): New function.
|
|
* src/SimpleLogger.cc (writeHeader): New function.
|
|
(writeLog): Fixed the bug that causes segfaults if exception message
|
|
contains an unescaped "%" character.
|
|
|
|
* src/TrackerWatcherCommand.cc (execute): Added a short sleep
|
|
when a tracker request fails.
|
|
|
|
* src/Request.cc (parseUrl): Query string is now handled properly.
|
|
|
|
* Release 0.5.1
|
|
|
|
2006-06-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add Time class which represents a specific instant in time and
|
|
its precision is microseconds. Time checking procedures were rewritten
|
|
using this object.
|
|
|
|
* src/Time.h: New class.
|
|
* src/Time.cc: New class.
|
|
* src/AbstractCommand.h
|
|
(updateCheckPoint): Removed.
|
|
(isTimeoutDetected): Removed.
|
|
(checkPoint): Changed the type to Time.
|
|
(timeout): New variable.
|
|
(setTimeout): New function.
|
|
* src/AbstractCommand.cc
|
|
(AbstractCommand): Removed the initialization of checkPoint.
|
|
Added the initialization of timeout.
|
|
(updateCheckPoint): Removed.
|
|
(isTimeoutDetected): Removed.
|
|
(execute): Use checkPoint.reset() and checkPoint.elapsed().
|
|
* src/PeerChokeCommand.h
|
|
(checkPoint): Changed the type to Time.
|
|
* src/PeerChokeCommand.cc
|
|
(PeerChokeCommand): Removed the initialization of checkPoint.
|
|
(execute): Rewritten using Time object.
|
|
* src/TrackerWatcherCommand.h
|
|
(checkPoint): Changed the type to Time.
|
|
* src/TrackerWatcherCommand.cc
|
|
(TrackerWatcherCommand): Removed the initialization of checkPoint.
|
|
(execute): Rewritten.
|
|
* src/ConsoleDownloadEngine.h
|
|
(cp): Changed the type to Time.
|
|
(startup): Changed the type to Time.
|
|
* src/ConsoleDownloadEngine.cc
|
|
(initStatistics): Use cp.reset(), startup.reset().
|
|
(calculateStatistics): Rewritten using Time object.
|
|
* src/PeerAbstractCommand.h
|
|
(updateCheckPoint): Removed.
|
|
(isTimeoutDetected): Removed.
|
|
(checkPoint): Changed the type to Time.
|
|
* src/PeerAbstractCommand.cc
|
|
(PeerAbstractCommand): Removed the initialization of checkPoint.
|
|
(updateCheckPoint): Removed.
|
|
(isTimeoutDetected): Removed.
|
|
(execute): Use checkPoint.reset() and checkPoint.elapsed().
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Removed the initializations of struct
|
|
timeval variables.
|
|
* src/PeerInteractionCommand.h
|
|
(keepAliveCheckPoint): Changed the type to Time.
|
|
(chokeCheckPoint): Changed the type to Time.
|
|
(freqCheckPoint): Changed the type to Time.
|
|
(haveCheckTime): Changed the type to Time.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Rewritten using Time object.
|
|
(detectMessageFlooding): Rewritten using Time object.
|
|
(checkLongTimePeerChoking): Rewritten using Time object.
|
|
(sendKeepAlive): Rewritten using Time object.
|
|
(checkHave): Rewritten using Time object.
|
|
* src/SleepCommand.h
|
|
(checkPoint): Changed the type to Time.
|
|
* src/SleepCommand.cc
|
|
(SleepCommand): Removed the initialization of checkPoint.
|
|
(execute): Rewritten using Time object.
|
|
* src/TorrentAutoSaveCommand.h
|
|
(checkPoint): Changed the type to Time.
|
|
* src/TorrentAutoSaveCommand.cc
|
|
(TorrentAutoSaveCommand): Removed the initialization of checkPoint.
|
|
(execute): Rewritten.
|
|
* src/DownloadCommand.h
|
|
(sw): Changed the type to Time.
|
|
* src/DownloadCommand.cc
|
|
(DownloadCommand): Removed the initialization of sw.
|
|
(executeInternal): Rewritten.
|
|
* src/RequestSlot.h
|
|
(dispatchedTime): Changed the type to Time.
|
|
* src/RequestSlot.cc
|
|
(RequestSlot): Removed the call to setDispatchedTime().
|
|
(setDispatchedTime): Rewirtten.
|
|
(isTimeout): Rewritten.
|
|
(getLatencyInMillis): Rewritten.
|
|
* src/TorrentDownloadEngine.h
|
|
(cp): Changed the type to Time[2].
|
|
(startup): Changed the type to Time.
|
|
* src/TorrentDownloadEngine.cc
|
|
(initStatistics): Rewritten.
|
|
(calculateStatistics): Rewritten.
|
|
* src/DownloadEngine.cc
|
|
(run): Rewritten.
|
|
|
|
To detect all attempts to connect to the tracker are failed:
|
|
|
|
* src/AbstractCommand.cc
|
|
(execute): Increment e->segmentMan->errors if a command aborted.
|
|
* src/SegmentMan.h
|
|
(errors): New variable.
|
|
* src/SegmentMan.cc
|
|
(SegmentMan): Added the initialization of errors.
|
|
(init): Added the initialization of errors.
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): If e->segmentMan->errors > 0 then assume that the tracker
|
|
request was failed.
|
|
|
|
To handle snubbed peers:
|
|
|
|
* src/PeerChokeCommand.cc
|
|
(optUnchokingPeer): Snubbed peers don't get unchoked.
|
|
(execute): Snubbed peers don't get unchoked.
|
|
* src/PeerInteraction.h
|
|
(REQUEST_TIME_OUT): Changed the value from 120 to 60.
|
|
* src/PeerInteraction.cc
|
|
(checkRequestSlot): A peer get marked as "snubbed" if it doesn't send
|
|
back the requested 16k block in 60 seconds.
|
|
* src/PieceMessage.cc
|
|
(receivedAction): A peer's snubbed state is cleard if it sends
|
|
the requested 16k block in 60 seconds.
|
|
* src/Peer.h
|
|
(snubbing): New variable.
|
|
* src/Peer.cc
|
|
(resetStatus): Added snubbed = false.
|
|
|
|
To fix the bug that causes have message is not sent:
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(~PeerInteractionCommand): Removed e->torrentMan->unadvertisePiece().
|
|
(FLOODING_CHECK_INTERVAL): New definition(temporal).
|
|
(detectMessageFlooding): Use FLOODING_CHECK_INTERVAL.
|
|
* src/TorrentMan.h
|
|
(HaveEntry): New class.
|
|
(advertisePiece): Rewritten.
|
|
(getAdvertisedPieceIndexes): Rewritten.
|
|
(Haves): Changed the type.
|
|
(getAdvertisedPieceIndexes): Added an argument.
|
|
|
|
Others:
|
|
|
|
* src/TorrentMan.h
|
|
(DEFAULT_ANNOUNCE_INTERVAL): Changed the value to 1800.
|
|
(DEFAULT_ANNOUNCE_MIN_INTERVAL): Changed the value to 1800.
|
|
* src/TorrentMan.cc
|
|
(getPeer): Don't check the number of connections here.
|
|
(setupInternal1): Changed peerId.
|
|
|
|
* src/PeerInteractionCommand.h
|
|
(KEEP_ALIVE_INTERVAL): New definition.
|
|
(sendKeepAlive): Use KEEP_ALIVE_INTERVAL.
|
|
|
|
* src/main.cc
|
|
(main): SA_ONESHOT was replaced with SA_RESETHAND.
|
|
|
|
* src/DownloadEngine.h: Removed unnecessary header includes.
|
|
|
|
2006-05-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To fix the bug that causes segfaults if a tracker returns a zero-length
|
|
list as "peers":
|
|
|
|
* src/TrackerUpdateCommand.cc
|
|
(execute): Added a check to see wether the type of peers is Data*.
|
|
|
|
2006-05-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.5.0
|
|
|
|
To fix compile issue with gcc3:
|
|
|
|
* src/CancelMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/RejectMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/SuggestPieceMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/AllowedFastMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/PortMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/HaveNoneMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/KeepAliveMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/HaveAllMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/UnchokeMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/BitfieldMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/PieceMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/RequestMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/NotInterestedMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/ChokeMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/InterestedMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
* src/HaveMessage.h
|
|
(ID): Renamed as ID_t
|
|
(ID_t): New enum.
|
|
|
|
2006-05-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerAbstractCommand.h
|
|
(beforeSocketCheck): Removed.
|
|
* src/PeerAbstractCommand.cc
|
|
Modified in order to call executeInternal() even if socket check
|
|
and upload limit check fail.
|
|
* src/PeerInteractionCommand.h
|
|
(keepAlive): Removed.
|
|
(sendKeepAlive): New function.
|
|
(checkHave): New function.
|
|
(beforeSocketCheck): Removed.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Use peerInteraction->checkRequestSlot(). Added
|
|
calls to checkHave() and sendKeepAlive().
|
|
(keepAlive): Renamed to sendKeepAlive().
|
|
(sendKeepAlive): New function.
|
|
(beforeSocketCheck): Removed.
|
|
(checkHave): New function.
|
|
* src/BitfieldMan.cc
|
|
(getMissingIndex): Don't call getMissingIndexRandomly() if max is 0.
|
|
(getMissingUnusedIndex): Don't call getMissingIndexRandomly() if max is
|
|
0.
|
|
(getMissingIndex): Dont't call getMissingIndexRandomly() if max is 0.
|
|
* src/TorrentMan.h
|
|
(UsedPieces): Removed.
|
|
(Pieces): New type definition.
|
|
* src/Piece.h: Updated doc.
|
|
* src/Peer.h
|
|
(totalLength): Removed.
|
|
* src/Peer.cc
|
|
(updateLatency): Fixed the latency calculation.
|
|
* src/TorrentMan.cc
|
|
(addPeer): Call deleteOldErrorPeers() only if peers.size() is higher
|
|
than or equal to MAX_PEER_LIST_SIZE.
|
|
If duplicate is false and peer.size() >= MAX_PEER_LIST_SIZE,
|
|
then return false.
|
|
(deleteOldErrorPeers): Rewritten.
|
|
(deleteUsedPiece): Fixed the miss use of STL remove.
|
|
* src/PeerInteraction.h
|
|
(Pieces): Removed.
|
|
(deleteTimeoutRequestSlot): Removed.
|
|
(deleteCompletedRequestSlot): Removed.
|
|
(checkRequestSlot): New function.
|
|
* src/PeerInteraction.cc
|
|
(deleteTimeoutRequestSlot): Merged to checkRequestSlot().
|
|
(deleteCompletedRequestSlot): Merged to checkRequestSlot().
|
|
(checkRequestSlot): New function.
|
|
* src/DownloadEngine.cc
|
|
(run): Clear activeSockets before calling waitData().
|
|
(waitData): Removed a call to activeSockets.clear().
|
|
|
|
2006-05-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To attempt to handle EINTR:
|
|
|
|
* src/SocketCore.cc
|
|
(isReadable): Added EINTR handling.
|
|
(isWritable): Added EINTR handling.
|
|
|
|
To improve the performance:
|
|
|
|
* src/AbstractCommand.cc
|
|
(isTimeoutDetected): Use Util::difftvsec() instead of Util::difftv().
|
|
* src/PeerInteractionCommand.h
|
|
(receiveMessage): Renamed as receiveMessages().
|
|
(receiveMessages): New function.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): receiveMessage loop is moved to new receiveMessages
|
|
() function. detectMessageFlooding() is moved here.
|
|
(detectMessageFlooding): Use Util::difftvsec() instead of Util::difftv
|
|
(). The flooding detection for have message is comment out.
|
|
(checkLongTimePeerChoking): Use Util::difftvsec() instead of
|
|
Util::difftv().
|
|
(receiveMessage): Renamed as receiveMessages().
|
|
(receiveMessages): New function.
|
|
(keepAlive): Use Util::difftvsec() instead of Util::difftv().
|
|
(beforeSocketCheck): Commented out checkLongTimePeerChoking().
|
|
* src/SleepCommand.cc
|
|
(execute): Use Util::difftvsec() instead of Util::difftv().
|
|
* src/BitfieldMan.h
|
|
(getNthBitIndex): New function.
|
|
(hasMissingPiece): New function.
|
|
(getAllMissingIndexes): New function.
|
|
* src/BitfieldMan.cc
|
|
(countSetBit): Rewritten.
|
|
(getNthBitIndex): New function.
|
|
(getMissingIndexRandomly): Rewritten.
|
|
(hasMissingPiece): New function.
|
|
(getAllMissingIndexes): New function.
|
|
* src/TorrentMan.cc
|
|
(hasMissingPiece): New function.
|
|
(deleteUsedPiece): Rewritten using STL.
|
|
* src/PeerInteraction.cc
|
|
(getNewPieceAndSendInterest): Use TorrentMan::hasMissingPiece(), which
|
|
is a little bit faster then TorrentMan::getMissingPieceIndex().
|
|
(addRequests): Updated the number of pending requests.
|
|
* src/PeerAbstractCommand.cc
|
|
(isTimeoutDetected): Use Util::difftvsec() instead of Util::difftv().
|
|
(execute): Returns true if TorrentMan::isHalt() is true.
|
|
Corrected the condition of upload limit checking.
|
|
* src/Util.h
|
|
(countBit): New function.
|
|
* src/Util.cc
|
|
(nbits): New variable.
|
|
(countBit): New function.
|
|
* src/DownloadEngine.h
|
|
(SockCmdMap): New type definition.
|
|
(waitData): Added an argument.
|
|
(addSocket): Added an argument.
|
|
(addSocketForReadCheck): Added an argument.
|
|
(addSocketForWriteCheck): Added an argument.
|
|
* src/DownloadEngine.cc
|
|
(run): Executes only commands whose sockets are ready to read or write.
|
|
All commands are executed in every 1 second.
|
|
(waitData): Calls select() again if it returned
|
|
EINTR.
|
|
(addSocket): Saves socket and command object pair to the map.
|
|
(deleteSocket): Deletes socket and command object pair from the map.
|
|
(addSocketForReadCheck): Added an argument.
|
|
(addSocketForWriteCheck): Added an argument.
|
|
* src/DownloadCommand.cc
|
|
(executeInternal): Use Util::difftvsec() instead of Util::difftv().
|
|
|
|
To send "event=stopped" to the tracker when the application finishes:
|
|
|
|
* src/PeerChokeCommand.h
|
|
(checkPoint): New variable.
|
|
* src/PeerChokeCommand.cc
|
|
(PeerChokeCommand): Added the initialization of checkPoint.
|
|
(execute): The interval check is now done by checkPoint, not
|
|
SleepCommand. Return true if TorrentMan::isHalt() is true.
|
|
* src/TorrentMan.h
|
|
(halt): New function.
|
|
(hasMissingPiece): New function.
|
|
(isHalt): New function.
|
|
(setHalt): New function.
|
|
* src/TorrentMan.cc
|
|
(TorrentMan): Added the initialization of halt.
|
|
* src/TorrentAutoSaveCommand.h
|
|
(checkPoint): New variable.
|
|
* src/PeerListenCommand.cc
|
|
(execute): Returns true if TorrentMan::isHalt() is true.
|
|
* src/main.cc
|
|
(setSignalHander): Added flags argument.
|
|
(torrentHandler): Just calls TorrentMan::setHalt(true) and returns.
|
|
(main): Set SA_ONESHOT flag of the signal hander of SIGINT and SIGTERM.
|
|
Removed printDownloadAbortMessage() after torrent downloading loop.
|
|
* src/TorrentAutoSaveCommand.cc
|
|
(TorrentAutoSaveCommand): Added the initialization of checkPoint.
|
|
(execute): Returns true if TorrentMan::isHalt() is true.
|
|
The interval check is now done by checkPoint, not SleepCommand.
|
|
* src/TrackerWatcherCommand.cc
|
|
(execute): If TorrentMan::isHalt(), then create a tracker request with
|
|
event=stopped.
|
|
* src/TrackerUpdateCommand.cc
|
|
(prepareForRetry): Do not use SleepCommand here.
|
|
(execute): Returns true if TorrentMan::isHalt() is true.
|
|
|
|
Others:
|
|
|
|
* src/TorrentMan.cc
|
|
(getMissingPieceIndex): Updated log message.
|
|
* src/PeerInteraction.cc
|
|
(createPeerMessag): Updated log message.
|
|
|
|
2006-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add the ability to download several pieces in mix in a command and
|
|
increase the number of request slots according to request-cancel
|
|
latency:
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): The number of messages to be received at a time
|
|
is increased from 10 to 50.
|
|
* src/LogFactory
|
|
(getInstance): Added NullLogger.
|
|
* src/NullLogger.h: New class.
|
|
* src/BitfieldMan.h
|
|
(getMissingIndex): New function.
|
|
* src/BitfieldMan.cc
|
|
(getMissingIndex): New function.
|
|
* src/TorrentMan.h
|
|
(checkOutPiece): New function.
|
|
(getMissingPieceIndex): New function.
|
|
(getMissingFastPieceIndex): New function.
|
|
(getMissingFastPiece): New function.
|
|
* src/TorrentMan.cc
|
|
(updatePiece): Rewritten using STL.
|
|
(syncPiece): Rewritten using STL.
|
|
(getMissingPiece): Rewritten using getMissingPieceIndex() and
|
|
checkOutPiece().
|
|
(getMissingPieceIndex): New function.
|
|
(getMissingFastPieceIndex): New function.
|
|
(getMissingFastPiece): New function.
|
|
(checkOutPiece): New function.
|
|
* src/PeerInteraction.h
|
|
(Pieces): New type definition.
|
|
(piece): Removed.
|
|
(pieces): New variable.
|
|
(getNewPieceAndSendInterest): Added the "piece" argument.
|
|
(abortPiece): Added the "piece" argument.
|
|
(abortAllPieces): New function.
|
|
(isInRequestSlot): New function.
|
|
(hasDownloadPiece): Added the "index" argument.
|
|
(setDownloadPiece): Removed.
|
|
(getDownloadPiece): Added the "index" argument.
|
|
(updatePiece): New function.
|
|
(createRequestMessage): Added the "index" argument.
|
|
* src/PeerInteraction.cc
|
|
(onChoked): Rewritten.
|
|
(abortPiece): Rewirtten.
|
|
(abortAllPieces): New function.
|
|
(deleteTimeoutRequestSlot): Rewritten.
|
|
Clarified code a little bit.
|
|
(deleteCompletedRequestSlot): Rewritten.
|
|
(isInRequestSlot): New function.
|
|
(syncPiece): Rewritten.
|
|
(updatePiece): New function.
|
|
(getNewPieceAndSendInterest): Rewritten.
|
|
(addRequests): Rewritten.
|
|
(getDownloadPiece): Rewritten.
|
|
(hasDownloadPiece): Rewritten.
|
|
(createRequestMessage): Added the "index" argument.
|
|
* src/common.h
|
|
(BITFIELD_LEN_FROM_PIECES): Enclosed the variable in parentheses.
|
|
(DIV_FLOOR): New definition.
|
|
* src/PieceMessage.cc
|
|
(receivedAction): Update request-piece latency here.
|
|
* src/RequestSlot.h
|
|
(getLatencyInMillis): New function.
|
|
* src/RequestSlot.cc
|
|
(isTimeout): Rewritten using getLatencyInMillis.
|
|
(getLatencyInMillis): New function.
|
|
* src/Piece.h
|
|
(operator==): New function.
|
|
(getMissingBlockIndex): New function.
|
|
* src/Piece.cc
|
|
(operator==): New function.
|
|
(getMissingBlockIndex): New function.
|
|
* src/Peer.h
|
|
(DEFAULT_LATENCY): New definition.
|
|
(latency): New variable.
|
|
(updateLatency): New function.
|
|
(getLatency): New function.
|
|
* src/Peer.cc
|
|
(resetStatus): Reset latecy.
|
|
(updateLatency): New function.
|
|
|
|
2006-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/SocketCore.cc
|
|
(isReadable): Added secure to the condition.
|
|
* src/HttpConnection.cc
|
|
(receiveResponse): Fixed a bug that causes no response header
|
|
exception.
|
|
* src/Peer.h
|
|
(getFastSet): Fixed the return value type.
|
|
|
|
2006-05-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To remove a wait from download loop:
|
|
|
|
* src/DownloadEngine.cc
|
|
(run): Comment out shortSleep.
|
|
|
|
To rewrite the message handling:
|
|
|
|
* src/SimplePeerMessage.h: New class.
|
|
* src/SimplePeerMessage.cc: New class.
|
|
* src/CancelMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(create): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/CancelMessage.cc
|
|
(create): New function.
|
|
(receivedAction): Replaced deleteRequestMessageInQueue with
|
|
rejectPieceMessageInQueue.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/BitfieldMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(msgLength): New variable.
|
|
(~BitfieldMessage): Deleted msg.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/BitfieldMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/ChokeMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(sendPredicate): New function.
|
|
(onSendComplete): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(create): New function.
|
|
* src/ChokeMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(sendPredicate): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(onSendComplete): New function.
|
|
* src/KeepAliveMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/KeepAliveMessage.cc
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/PortMessage.h
|
|
(create): New function.
|
|
(receivedAction): Updated log message.
|
|
* src/PortMessage.cc: New file.
|
|
* src/UnchokeMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(sendPredicate): New function.
|
|
(onSendComplete): New function.
|
|
(create): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/UnchokeMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(sendPredicate): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(onSendComplete): New function.
|
|
* src/PieceMessage.h
|
|
(leftPieceDataLength): Removed.
|
|
(leftDataLength): New variable.
|
|
(headerSend): New variable.
|
|
(pendingCount): New variable.
|
|
(msgHeader): New variable.
|
|
(sendPieceData): New function.
|
|
(incrementPendingCount): New function.
|
|
(isPendingCountMax): New function.
|
|
(create): New function.
|
|
(getMessageHeader): New function.
|
|
(getMessageHeaderLength): New function.
|
|
* src/PieceMessage.cc
|
|
(create): New function.
|
|
(getMessageHeader): New function.
|
|
(getMessageHeaderLength): New function.
|
|
(send): Rewritten.
|
|
(sendPieceData): New function.
|
|
* src/HaveMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(create): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/HaveMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(sendPieceData): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/RequestMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(create): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/RequestMessage.cc
|
|
(create): New function.
|
|
(receivedAction): Added the handling of fast extension.
|
|
Deleted torrentMan->addUploadLength, torrentMan->addDeltaUploadLength.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/InterestedMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(sendPredicate): New function.
|
|
(onSendComplete): New function.
|
|
(create): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/InterestedMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(sendPieceData): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(onSendComplete): New function.
|
|
* src/NotInterestedMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(sendPieceData): New function.
|
|
(onSendComplete): New function.
|
|
(create): New function.
|
|
(send): Removed.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
* src/NotInterestedMessage.cc
|
|
(create): New function.
|
|
(send): Removed.
|
|
(sendPredicate): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(onSendComplete): New function.
|
|
* src/AllowedFastMessage.h: New class.
|
|
* src/AllowedFastMessage.cc: New class.
|
|
* src/RejectMessage.h: New class.
|
|
* src/RejectMessage.cc: New class.
|
|
* src/SuggestPieceMessage.h: New class.
|
|
* src/SuggestPieceMessage.cc: New class.
|
|
* src/HaveAllMessage.h: New class.
|
|
* src/HaveAllMessage.cc: New class.
|
|
* src/HaveNoneMessage.h: New class.
|
|
* src/HaveNoneMessage.cc: New class.
|
|
* src/HandshakeMessage.h: Derived from SimplePeerMessage.
|
|
(msg): New variable.
|
|
(reserved): New variable.
|
|
(create): New function.
|
|
(getId): New function.
|
|
(receivedAction): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(isFastExtensionSupported): New function.
|
|
* src/HandshakeMessage.cc
|
|
(HandshakeMessage): Moved here from HandshakeMessage.h.
|
|
(create): New function.
|
|
(getMessage): New function.
|
|
(getMessageLength): New function.
|
|
(toString): Added the output of reserved field.
|
|
(check): Added const qualifier.
|
|
(isFastExtensionSupported): New function.
|
|
* src/PeerMessageUtil.h
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createPortMessage): Removed.
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createKeepAliveMessage): Removed.
|
|
(createHandshakeMessage): Removed.
|
|
(setIntParam): New function.
|
|
(createPeerMessageString): New function.
|
|
* src/PeerMessageUtil.cc
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createPortMessage): Removed.
|
|
(createRequestMessage): Removed.
|
|
(createCancelMessage): Removed.
|
|
(createPieceMessage): Removed.
|
|
(createHaveMessage): Removed.
|
|
(createChokeMessage): Removed.
|
|
(createUnchokeMessage): Removed.
|
|
(createInterestedMessage): Removed.
|
|
(createNotInterestedMessage): Removed.
|
|
(createBitfieldMessage): Removed.
|
|
(createKeepAliveMessage): Removed.
|
|
(createHandshakeMessage): Removed.
|
|
(setIntParam): New function.
|
|
(createPeerMessageString): New function.
|
|
* src/PeerConnection.h
|
|
(peer): Removed.
|
|
(torrentMan): Removed.
|
|
(createNLengthMessage): Removed.
|
|
(setIntParam): Removed.
|
|
(writeOutgoingMessageLog): Removed all overloaded functions.
|
|
(PeerConnection): Deleted peer and torrentMan from its arguments.
|
|
(sendMessage): New function.
|
|
(sendHandshake): Removed.
|
|
(sendKeepAlive): Removed.
|
|
(sendChoke): Removed.
|
|
(sendUnchoke): Removed.
|
|
(sendInterested): Removed.
|
|
(sendNotInterested): Removed.
|
|
(sendHave): Removed.
|
|
(sendBitfield): Removed.
|
|
(sendRequest): Removed.
|
|
(sendPiece): Removed.
|
|
(sendPieceHeader): Removed.
|
|
(sendPieceData): Removed.
|
|
(sendCancel): Removed.
|
|
(getPeer): Removed.
|
|
* src/PeerConnection.cc
|
|
(PeerConnection): Deleted peer and torrentMan from its arguments.
|
|
(sendHandshake): Removed.
|
|
(sendKeepAlive): Removed.
|
|
(createNLengthMessage): Removed.
|
|
(setIntParam): Removed.
|
|
(writeOutgoingMessageLog): Removed all overloaded functions.
|
|
(sendChoke): Removed.
|
|
(sendUnchoke): Removed.
|
|
(sendInterested): Removed.
|
|
(sendNotInterested): Removed.
|
|
(sendHave): Removed.
|
|
(sendBitfield): Removed.
|
|
(sendRequest): Removed.
|
|
(sendPiece): Removed.
|
|
(sendPieceHeader): Removed.
|
|
(sendPieceData): Removed.
|
|
(sendMessage): New function.
|
|
(sendCancel): Removed.
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Call setUploadLimit.
|
|
(executeInternal): Call setUploadLimit.
|
|
Added the handling of "inProgress" state of handshake message.
|
|
Call sendBitfield() or sendAllowdFast() instead of deprecated
|
|
sendNow().
|
|
(keepAlive): Call addMessage and sendMessage instead of deprecated
|
|
sendNow().
|
|
(beforeSocketCheck): Call addMessage instead of deprecated trySendNow()
|
|
* src/TorrentMan.h
|
|
(PEER_ID_LENGTH): New definition.
|
|
(hasAllPieces): New function.
|
|
* src/TorrentMan.cc
|
|
(getMissingPiece): Added the handling of fast extension.
|
|
(cancelPiece): Call updatePiece().
|
|
(hasAllPieces): New function.
|
|
* src/PeerInteraction.h
|
|
(fastSet): New variable.
|
|
(getNewPieceAndSendInterest): Changed the return type to void.
|
|
(send): Renamed as sendMessages.
|
|
(deleteAllRequestSlot): Removed.
|
|
(deleteRequestMessageInQueue): Renamed as rejectPieceMessageInQueue.
|
|
(cancelAllRequest): Removed all overloaded functions.
|
|
(deleteAllRequestSlot): Removed.
|
|
(deletePieceMessageInQueue): Renamed as rejectAllPieceMessageInQueue.
|
|
(rejectPieceMessageInQueue): New function.
|
|
(rejectAllPieceMessageInQueue): New function.
|
|
(onChoked): New function.
|
|
(isSendingMessageInProgress): New function.
|
|
(getCorrespondingRequestSlot): Changed its arguments.
|
|
(isInFastSet): New function.
|
|
(addFastSetIndex): New function.
|
|
(addRequests): New function.
|
|
(sendNow): Removed.
|
|
(trySendNow): Removed.
|
|
(sendBitfield): New function.
|
|
(sendAllowdFast): New function.
|
|
(createHaveAllMessage): New function.
|
|
(createHaveNoneMessage): New function.
|
|
(createRejectMessage): New function.
|
|
(createAllowedFastMessage): New function.
|
|
* src/PeerInteraction.cc
|
|
(send): Renamed as sendMessages.
|
|
(sendMessages): New function.
|
|
(MsgPushBack): New class.
|
|
(isSendingMessageInProgress): New function.
|
|
(deletePieceMessageInQueue): Renamed as rejectAllPieceMessageInQueue.
|
|
(rejectAllPieceMessageInQueue): New function.
|
|
Added the handling of fast extension.
|
|
(deleteRequestMessageInQueue): Renamed as rejectPieceMessageInQueue.
|
|
(rejectPieceMessageInQueue): New function.
|
|
Added the handling of fast extension.
|
|
(deleteRequestSlot): Replaced for loop with std::find.
|
|
(onChoked): New function.
|
|
(deleteAllRequestSlot): Removed.
|
|
(abortPiece): Rewirtten.
|
|
(deleteTimeoutRequestSlot): Updated log messages.
|
|
(getCorrespondingRequestSlot): Changed its arguments.
|
|
(cancelAllRequest): Removed all overloaded functions.
|
|
(receiveHandshake): Added the check to see whether an incoming peer
|
|
supports fast extension.
|
|
(createHandshakeMessage): Use HandshakeMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createPeerMessage): Use create() of each message class instead of
|
|
PeerMessageUtil.
|
|
HaveAllMessage, HaveNoneMessage, RejectMessage, SuggestPieceMessage,
|
|
AllowedFastMessage were added.
|
|
(getNewPieceAndSendInterest): Changed its return value type to void.
|
|
Added the handling of fast extension.
|
|
(addRequests): New function.
|
|
(sendNow): Removed.
|
|
(sendHandshake): Rewritten.
|
|
(trySendNow): Removed.
|
|
(sendBitfield): New function.
|
|
(sendAllowdFast): New function.
|
|
(isInFastSet): New function.
|
|
(addFastSetIndex): New function.
|
|
(createRequestMessage): Use RequestMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createCancelMessage): Use CancelMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createPieceMessage): Use PieceMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createHaveMessage): Use HaveMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createChokeMessage): Use ChokeMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createUnchokeMessage): Use UnchokeMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createInterestedMessage): Use InterestedMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createNotInterestedMessage): Use NotInterestedMessage::create instead
|
|
of PeerMessageUtil.
|
|
(createBitfieldMessage): Use BitfieldMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createKeepAliveMessage): Use KeepAliveMessage::create instead of
|
|
PeerMessageUtil.
|
|
(createHaveAllMessage): New function.
|
|
(createHaveNoneMessage): New function.
|
|
(createRejectMessage): New function.
|
|
(createAllowedFastMessage: New function.
|
|
* src/Util.h
|
|
(sha1Sum): New function.
|
|
(computeFastSet): New function.
|
|
* src/Util.cc
|
|
(sha1Sum): New function.
|
|
(computeFastSet): New function.
|
|
* src/Peer.h
|
|
(fastExtensionEnabled): New variable.
|
|
(fastSet): New variable.
|
|
(setAllBitfield): New function.
|
|
(setFastExtensionEnabled): New function.
|
|
(isFastExtensionEnabled): New function.
|
|
(addFastSetIndex): New function.
|
|
(getFastSet): New function.
|
|
(isInFastSet): New function.
|
|
(countFastSet): New function.
|
|
* src/Peer.cc
|
|
(isInFastSet): New function.
|
|
(addFastSetIndex): New function.
|
|
(setAllBitfield): New function.
|
|
|
|
* src/AbstractCommand.cc (execute): Changed the procedure of checking
|
|
sockets.
|
|
* src/PeerAbstractCommand.cc
|
|
(PeerAbstractCommand): Added the initialization for uploadLimitCheck
|
|
and uploadLimit.
|
|
(execute): Changed the procedure of checking sockets. The upload speed
|
|
checking were added.
|
|
(setUploadLimit): New function.
|
|
(setUploadLimitCheck): New function.
|
|
* src/PeerAbstractCommand.h
|
|
(setUploadLimit): New function.
|
|
(setUploadLimitCheck): New function.
|
|
(uploadLimit): New variable.
|
|
(uploadLimitCheck): New variable.
|
|
|
|
To contact a tracker regularly:
|
|
|
|
* src/TrackerWatcherCommand.h (interval): New variable.
|
|
(checkPoint): New variable.
|
|
(TrackerWatcherCommand): Added interval argument.
|
|
* src/TrackerWatcherCommand.cc
|
|
(TrackerWatcherCommand): Initialized checkPoint.
|
|
(execute): Now a tracker is contacted in every specified period.
|
|
If peer list is not needed, send request with numwant=0.
|
|
|
|
* src/TrackerUpdateCommand.cc
|
|
(execute): Updated log messages.
|
|
|
|
* src/DownloadEngine.cc
|
|
(~DownloadEngine): Removed two asserts.
|
|
(waitData): Uncommented wfds. May be a bug fix.
|
|
|
|
2006-05-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerInteractionCommand.h
|
|
(checkInactiveConnection): Removed.
|
|
* src/PeerInteractionCommand.cc
|
|
(executeInternal): Removed following function calls:
|
|
detectMessageFlooding(), checkLongTimePeerChoking and
|
|
checkInactiveConnection().
|
|
(checkInactiveConnection): Removed.
|
|
(detectMessageFlooding): Removed function call to
|
|
checkInactiveConnection().
|
|
|
|
* src/PeerMessageUtil.h
|
|
(createChokeMessage): New function. Overload.
|
|
(createUnchokeMessage): New function. Overload.
|
|
(createInterestedMessage): New function. Overload.
|
|
(createNotInterestedMessage): New function. Overload.
|
|
(createHaveMessage): New function. Overload.
|
|
(createBitfieldMessage): New function. Overload.
|
|
(createRequestMessage): New function. Overload.
|
|
(createCancelMessage): New function. Overload.
|
|
(createPieceMessage): New function. Overload.
|
|
(createKeepAliveMessage): New function. Overload.
|
|
* src/PeerMessageUtil.cc
|
|
(createChokeMessage): New function. Overload.
|
|
(createUnchokeMessage): New function. Overload.
|
|
(createInterestedMessage): New function. Overload.
|
|
(createNotInterestedMessage): New function. Overload.
|
|
(createHaveMessage): New function. Overload.
|
|
(createBitfieldMessage): New function. Overload.
|
|
(createRequestMessage): New function. Overload.
|
|
(createCancelMessage): New function. Overload.
|
|
(createPieceMessage): New function. Overload.
|
|
(createKeepAliveMessage): New function. Overload.
|
|
|
|
* src/SendMessageQueue.cc
|
|
(createRequestMessage): Use PeerMessageUtil.
|
|
(createCancelMessage): Use PeerMessageUtil.
|
|
(createPieceMessage): Use PeerMessageUtil.
|
|
(createHaveMessage): Use PeerMessageUtil.
|
|
(createChokeMessage): Use PeerMessageUtil.
|
|
(createUnchokeMessage): Use PeerMessageUtil.
|
|
(createInterestedMessage): Use PeerMessageUtil.
|
|
(createNotInterestedMessage): Use PeerMessageUtil.
|
|
(createBitfieldMessage): Use PeerMessageUtil.
|
|
(createKeepAliveMessage): Use PeerMessageUtil.
|
|
|
|
* src/SendMessageQueue.h: Renamed to PeerInteraction.h
|
|
* src/SendMessageQueue.cc: Renamed to PeerInteraction.cc
|
|
* src/PeerInteraction.h: New class.
|
|
* src/PeerInteraction.cc: New class.
|
|
|
|
2006-05-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Each peer message has its own class.
|
|
|
|
* src/PendingMessages.h: Removed.
|
|
* src/PendingMessages.cc: Removed. The sending process was moved to
|
|
each message class.
|
|
* src/RequestSlotMan.h: Removed.
|
|
* src/RequestSlotMan.cc: Removed. All functionarities were moved to
|
|
SendMessageQueue.
|
|
* src/RequestMessage.h: New class.
|
|
* src/RequestMessage.cc: New class.
|
|
* src/CancelMessage.h: New class.
|
|
* src/CancelMessage.cc: New class.
|
|
* src/BitfieldMessage.h: New class.
|
|
* src/BitfieldMessage.cc: New class.
|
|
* src/ChokeMessage.h: New class.
|
|
* src/ChokeMessage.cc: New class.
|
|
* src/KeepAliveMessage.h: New class.
|
|
* src/KeepAliveMessage.cc: New class.
|
|
* src/PortMessage.h: New class.
|
|
* src/UnchokeMessage.h: New class.
|
|
* src/UnchokeMessage.cc: New class.
|
|
* src/PieceMessage.h: New class.
|
|
* src/PieceMessage.cc: New class.
|
|
* src/HaveMessage.h: New class.
|
|
* src/HaveMessage.cc: New class.
|
|
* src/BitfieldMessage.h: New class.
|
|
* src/BitfieldMessage.cc: New class.
|
|
* src/NotInterestedMessage.h: New class.
|
|
* src/NotInterestedMessage.cc: New class.
|
|
* src/InterestedMessage.h: New class.
|
|
* src/InterestedMessage.cc: New class.
|
|
* src/HandshakeMessage.h (sendMessageQueue): New variable.
|
|
(getSendMessageQueue): New function.
|
|
(setSendMessageQueue): New function.
|
|
* src/HandshakeMessage.cc: New class.
|
|
* src/PeerConnection.h (receiveMessage): Changed return value and
|
|
arguments.
|
|
(receiveHandshake): Changed return value and arguments.
|
|
* src/PeerConnection.cc (receiveMessage): Do not create message class
|
|
here.
|
|
(receiveHandshake): Do not create handshake class here.
|
|
* src/PeerInteractionCommand.h (peerConnection): Removed.
|
|
(piece): Removed.
|
|
(syncPiece): Removed.
|
|
(sendInterest): Removed.
|
|
(sendMessages): Removed.
|
|
(createRequestPendingMessage): Removed.
|
|
(checkPieceHash): Removed.
|
|
(erasePieceOnDisk): Removed.
|
|
(getNewPieceAndSendInterest): Removed.
|
|
(onGotNewPice): Removed.
|
|
(onGotWrongPiece): Removed.
|
|
* src/PeerInteractionCommand.cc (PeerInteractionCommand):
|
|
Removed peerConnection, piece.
|
|
(~PeerInteractionCommand): Removed peerConnection.
|
|
(executeInternal): Use sendMessageQueue instead of peerConnection.
|
|
(syncPiece): Moved to SendMessageQueue.
|
|
(decideChoking): Removed PendingMessage.
|
|
(receiveMessage): Use sendMessageQueue instead of peerConnection.
|
|
The action after receiving peer message was moved to each message
|
|
class.
|
|
(onGotNewPice): Moved to SendMessageQueue.
|
|
(onGotWrongPiece): Moved to SendMessageQueue.
|
|
(getNewPieceAndSendInterest): Moved to SendMessageQueue.
|
|
(sendInterest): Moved to SendMessageQueue.
|
|
(createRequestPendingMessage): Removed.
|
|
(sendMessages): Moved to SendMessageQueue.
|
|
(onAbort): Use SendMessageQueue::abortPiece()
|
|
(keepAlive): Use sendMessageQueue instead of peerConnection.
|
|
(beforeSocketCheck): Use sendMessageQueue instead of peerConnection.
|
|
(checkPieceHash): Moved to SendMessageQueue.
|
|
(erasePieceOnDisk): Moved to SendMessageQueue.
|
|
* src/PeerMessageUtil.h
|
|
(createBitfieldMessage): Removed.
|
|
(createHaveMessage): Changed return value and arguments.
|
|
(createBitfieldMessage): Changed return value and arguments.
|
|
(createRequestCancelMessage): Removed.
|
|
(createPieceMessage): Changed return value and arguments.
|
|
(getShortIntParam): New function.
|
|
(checkIndex): Changed arguments.
|
|
(checkBegin): Changed arguments.
|
|
(checkLength): Changed arguments.
|
|
(checkPieceOffset): Removed.
|
|
(checkRange): New function.
|
|
(checkBitfield): Changed arguments.
|
|
(createPeerMessage): Removed.
|
|
(checkIntegrity): Removed.
|
|
(createHandshakeMessage): Changed arguments.
|
|
(createChokeMessage): New function.
|
|
(createUnchokeMessage): New function.
|
|
(createInterestedMessage): New function.
|
|
(createNotInterestedMessage): New function.
|
|
(createRequestMessage): New function.
|
|
(createCancelMessage): New function.
|
|
(createPortMessage): New function.
|
|
* src/PeerMessageUtil.cc
|
|
(createBitfieldMessage): Removed.
|
|
(createHaveMessage): Changed return value and arguments.
|
|
(createBitfieldMessage): Changed return value and arguments.
|
|
(createRequestCancelMessage): Removed.
|
|
(createPieceMessage): Changed return value and arguments.
|
|
(getShortIntParam): New function.
|
|
(checkIndex): Changed arguments.
|
|
(checkBegin): Changed arguments.
|
|
(checkLength): Changed arguments.
|
|
(checkPieceOffset): Removed.
|
|
(checkRange): New function.
|
|
(checkBitfield): Changed arguments.
|
|
(createPeerMessage): Removed.
|
|
(checkIntegrity): Removed.
|
|
(createHandshakeMessage): Changed arguments.
|
|
(createChokeMessage): New function.
|
|
(createUnchokeMessage): New function.
|
|
(createInterestedMessage): New function.
|
|
(createNotInterestedMessage): New function.
|
|
(createRequestMessage): New function.
|
|
(createCancelMessage): New function.
|
|
(createPortMessage): New function.
|
|
* src/PeerMessage.h
|
|
(id): Removed.
|
|
(index): Removed.
|
|
(begin): Removed.
|
|
(length): Removed.
|
|
(bitfield): Removed.
|
|
(bitfieldLength): Removed.
|
|
(block): Removed.
|
|
(blockLength): Removed.
|
|
(inProgress): New variable.
|
|
(cuid): New variable.
|
|
(peer): New variable.
|
|
(sendMessageQueue): New variable.
|
|
(logger): New variable.
|
|
(setBitfield): Removed.
|
|
(getBitfield): Removed.
|
|
(setBlock): Removed.
|
|
(getBlock): Removed.
|
|
(getBitfieldLength): Removed.
|
|
(getBlockLength): Removed.
|
|
(isInProgress): New function.
|
|
(toString): Made pure virtual.
|
|
(check): New function.
|
|
(send): New function.
|
|
(receivedAction): New function.
|
|
(getId): Made pure virtual.
|
|
(setId): Removed.
|
|
(getIndex): Removed.
|
|
(setIndex): Removed.
|
|
(getBegin): Removed.
|
|
(setBegin): Removed.
|
|
(getLength): Removed.
|
|
(setLength): Removed.
|
|
(getCuid): New function.
|
|
(setCuid): New function.
|
|
(getPeer): New function.
|
|
(setPeer): New function.
|
|
(getSendMessageQueue): New function.
|
|
(setSendMessageQueue): New function.
|
|
(ID): Removed.
|
|
* src/PeerMessage.cc
|
|
(setBitfield): Removed.
|
|
(setBlock): Removed.
|
|
(toString): Removed.
|
|
* src/TorrentMan.h
|
|
(getPieceLength): New function.
|
|
(getPieceLength): New function.
|
|
* src/SendMessageQueue.h
|
|
(REQUEST_TIME_OUT): New definition.
|
|
(RequestSlots): New definition.
|
|
(MessageQueue): New definition.
|
|
(requestSlotMan): Removed.
|
|
(pendingMessages): Removed.
|
|
(requestSlots): New variable.
|
|
(messageQueue): New variable.
|
|
(torrentMan): New variable.
|
|
(peerConnection): New variable.
|
|
(peer): New variable.
|
|
(piece): New variable.
|
|
(getNewPieceAndSendInterest): New function.
|
|
(createPeerMessage): New function.
|
|
(createHandshakeMessage): New function.
|
|
(send): Made private.
|
|
(setPeerMessageCommonProperty): New function.
|
|
(deleteAllRequestSlot): New function.
|
|
(deleteRequestMessageInQueue): New function.
|
|
(cancelAllRequest): Made private.
|
|
(cancelAllRequest): Made private.
|
|
(countRequestSlot): Made private.
|
|
(addPendingMessage): Removed.
|
|
(deletePendingPieceMessage): Removed.
|
|
(deletePendingRequestMessage): Removed.
|
|
(addMessage): New function.
|
|
(deletePieceMessageInQueue): New function.
|
|
(deleteTimeoutRequestSlot): Changed argument.
|
|
(deleteCompletedRequestSlot): Changed argument.
|
|
(getCorrespoindingRequestSlot): Renamed to getCorrespondingRequestSlot.
|
|
(getCorrespondingRequestSlot): New function.
|
|
(countPendingMessage): Removed.
|
|
(countMessageInQueue): New function.
|
|
(getTorrentMan): New function.
|
|
(getPeerConnection): New function.
|
|
(hasDownloadPiece): New function.
|
|
(getDownloadPiece): New function.
|
|
(setDownloadPiece): New function.
|
|
(syncPiece): New function.
|
|
(sendMessages): New function.
|
|
(sendNow): New function.
|
|
(trySendNow): New function.
|
|
(abortPiece): New function.
|
|
(sendHandshake): New function.
|
|
(receiveMessage): New function.
|
|
(receiveHandshake): New function.
|
|
(createRequestMessage): New function.
|
|
(createCancelMessage): New function.
|
|
(createPieceMessage): New function.
|
|
(createHaveMessage): New function.
|
|
(createChokeMessage): New function.
|
|
(createUnchokeMessage): New function.
|
|
(createInterestedMessage): New function.
|
|
(createNotInterestedMessage): New function.
|
|
(createBitfieldMessage): New function.
|
|
(createKeepAliveMessage): New function.
|
|
* src/SendMessageQueue.cc
|
|
(SendMessageQueue): Removed requestSlotMan.
|
|
Instantiated peerConnection here.
|
|
(~SendMessageQueue): Removed requestSlotMan.
|
|
Added deletion of peerConnection and the contents of messageQueue.
|
|
(send): Updated according to the change of messageQueue.
|
|
(addPendingMessage): Renamed to addMessage.
|
|
(addMessage): New function.
|
|
(deletePendingPieceMessage): Renamed to deletePieceMessageInQueue.
|
|
(deletePieceMessageInQueue): New function.
|
|
(deletePendingRequestMessage): Renamed to deleteRequestMessageInQueue.
|
|
(deleteRequestMessageInQueue): New function.
|
|
(deleteRequestSlot): RequestSlotMan::deleteRequestSlot(...) was moved
|
|
here.
|
|
(deleteTimeoutRequestSlot): RequestSlotMan::deleteTimeoutRequestSlot
|
|
(...) was moved here.
|
|
(deleteAllRequestSlot): RequestSlotMan::deleteAllRequestSlot(...) was
|
|
moved here.
|
|
(deleteCompletedRequestSlot):
|
|
RequestSlotMan::deleteCompletedRequestSlot(...) was moved here.
|
|
(getCorrespondingRequestSlot):
|
|
RequestSlotMan::getCorrespoindingRequestSlot(...) was moved here.
|
|
And renamed to getCorrespondingRequestSlot, correcting a typo.
|
|
(countPendingMessage): Renamed to countMessageInQueue.
|
|
(countMessageInQueue): New function.
|
|
(countRequestSlot): RequestSlotMan::countRequestSlot() was moved here.
|
|
(receiveHandshake): New function.
|
|
(createHandshakeMessage): New function.
|
|
(receiveMessage): New function.
|
|
(createPeerMessage): New function.
|
|
(syncPiece): New function.
|
|
(getNewPieceAndSendInterest): New function.
|
|
(sendMessages): New function.
|
|
(sendNow): New function.
|
|
(trySendNow): New function.
|
|
(sendHandshake): New function.
|
|
(abortPiece): New function.
|
|
(getDownloadPiece): New function.
|
|
(getPeerMessageCommonProperty): New function.
|
|
(createRequestMessage): New function.
|
|
(createCancelMessage): New function.
|
|
(createPieceMessage): New function.
|
|
(createHaveMessage): New function.
|
|
(createChokeMessage): New function.
|
|
(createUnchokeMessage): New function.
|
|
(createInterestedMessage): New function.
|
|
(createNotInterestedMessage): New function.
|
|
(createBitfieldMessage): New function.
|
|
(createKeepAliveMessage): New function.
|
|
|
|
|
|
To add simple Content-Disposition support:
|
|
|
|
* src/HttpResponseCommand.h (determinFilename): New function.
|
|
* src/HttpResponseCommand.cc (executeInternal):
|
|
Use determinFilename(headers) instead of req->getFile() when comparing
|
|
filename.
|
|
(determinFilename): New function.
|
|
(handleDefaultEncoding): Use determinFilename(headers) instead of
|
|
req->getFile().
|
|
(handleOtherEncoding): Use determinFilename(headers) instead of
|
|
req->getFile().
|
|
* src/Util.h (getContentDispositionFilename): New function.
|
|
* src/Util.cc (getContentDispositionFilename): New function.
|
|
|
|
* src/LogFactory.h (release): New function.
|
|
* src/LogFactory.cc (release): New function.
|
|
|
|
To fix a bug that causes out-of-bound exception when HTTP status
|
|
line is wrong:
|
|
|
|
* src/HttpConnection.cc (receiveResponse): Added a check for header
|
|
size.
|
|
|
|
* src/common.h (Deleter): New class.
|
|
|
|
* src/SegmentMan.cc
|
|
(~SegmentMan): Added deletion of splitter and diskWriter.
|
|
* src/DownloadEngine.h
|
|
(Commands): Use deque.
|
|
(clearQueue): New function.
|
|
* src/DownloadEngine.cc
|
|
(~DownloadEngine): Added deletion of segmentMan.
|
|
(cleanQueue): New function.
|
|
* src/TorrentDownloadEngine.h
|
|
(TorrentDownloadEngine): The implementation was moved to
|
|
TorrentDownloadEngine.cc.
|
|
(~TorrentDownloadEngine): The implementation was moved to
|
|
TorrentDownloadEngine.cc.
|
|
* src/TorrentDownloadEngine.cc
|
|
(~TorrentDownloadEngine): Added deletion of torrentMan.
|
|
* src/main.cc
|
|
(clearRequest): Removed.
|
|
(handler): Added deletion of e.
|
|
(torrentHandler): Added deletion of te.
|
|
(main): Do not share splitter.
|
|
Use Deleter instead of clearRequest.
|
|
Deletion of classes were updated.
|
|
|
|
2006-05-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/main.cc (main): Fixed typo.
|
|
* src/message.h: Fixed typo.
|
|
|
|
* po/de.po: Added German translation, thanks to Hermann J. Beckers.
|
|
|
|
2006-04-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add --select-file command-line option:
|
|
|
|
* src/Util.cc
|
|
(unfoldRange): New function.
|
|
(getNum): New function.
|
|
(unfoldSubRange): New function
|
|
* src/main.cc
|
|
(showUsage): Added help message.
|
|
(main): Added --select-file command-line option. Updated the layout of
|
|
file listing.
|
|
* src/common.h
|
|
(Integers): New definition.
|
|
|
|
* src/SocketCore.cc
|
|
(writeData): Removed timeout argument.
|
|
(readData): Removed timeout argument.
|
|
(peekData): Removed timeout argument.
|
|
* src/Socket.cc
|
|
(writeData): Removed timeout argument.
|
|
(readData): Removed timeout argument.
|
|
(peekData): Removed timeout argument.
|
|
|
|
* Release 0.4.1
|
|
|
|
2006-04-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To deploy upload rate based choking algorithm:
|
|
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Add peer to TorrentMan::activePeers to track
|
|
peer currently used.
|
|
(decideChoking): Deleted the choke/unchoke decision algorithm when
|
|
download completes. Simplified.
|
|
(receiveMessage): Updated.
|
|
* src/TorrentMan.h
|
|
(activePeers): New variable.
|
|
(addActivePeer): New function.
|
|
(getActivePeers): New function.
|
|
(deleteActivePeer): New function.
|
|
* src/TorrentMan.cc
|
|
(addPeer): deleteOldErrorPeers is moved to the begining of the function
|
|
* src/PeerAbstractCommand.cc
|
|
(onAbort): Use peer->resetStatus().
|
|
* src/main.cc
|
|
(PeerChokeCommand.h): Included.
|
|
(main): Added the instance of ChokingCommand to the command queue.
|
|
* src/Peer.h
|
|
(amChoking): Renamed from amChocking
|
|
(chokingRequired): New variable.
|
|
(optUnchoking): New variable.
|
|
(deltaUpload): New variable.
|
|
(deltaDownload): New variable.
|
|
(addDeltaUpload): New function.
|
|
(resetDeltaUpload): New function.
|
|
(addDeltaDownload): New function.
|
|
(resetDeltaDownload): New function.
|
|
(addPeerUpload): Added a call to addDeltaUpload.
|
|
(addPeerDownload): Added a call to addDeltaDownload.
|
|
* src/Peer.cc
|
|
(shouldBeChoking): Renamed from shouldChoke.
|
|
(resetStatus): New function.
|
|
* src/PeerChokeCommand.h: New class.
|
|
* src/PeerChokeCommand.cc: New class.
|
|
|
|
To add lazy upload speed limiter:
|
|
|
|
* src/TorrentConsoleDownloadEngine.h: Moved the variables for
|
|
statistics calculation to TorrentDownloadEngine.
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
(sendStatistics): Renamed from printStatistics.
|
|
(initStatistics): Removed. Moved to TorrentDownloadEngine.
|
|
(calculateSpeed): Removed. Moved to TorrentDownloadEngine.
|
|
(calculateStatistics): Removed. Moved to TorrentDownloadEngine.
|
|
* src/TorrentDownloadEngine.h: Added the variables for statistics
|
|
calculation.
|
|
(sendStatistics): New function as pure virtual function.
|
|
(getUploadSpeed): New function.
|
|
* src/TorrentDownloadEngine.cc
|
|
(initStatistics): New function.
|
|
(calculateSpeed): New function.
|
|
(calculateStatistics): New function.
|
|
* src/SendMessageQueue.h
|
|
(uploadLength): New variable.
|
|
(send): Added an argument.
|
|
(setUploadLimit): New function.
|
|
(getUploadLimit): New function.
|
|
* src/SendMessageQueue.cc
|
|
(send): Added upload speed limiter.
|
|
* src/prefs.h
|
|
(PREF_UPLOAD_LIMIT): New definition.
|
|
* src/PeerInteractionCommand.cc
|
|
(PeerInteractionCommand): Set upload speed limit to sendMessageQueue.
|
|
* src/main.cc
|
|
(main): Added --upload-limit option
|
|
|
|
For bug fixes:
|
|
|
|
* src/main.cc
|
|
(showUsage): Corrected --listen-port help
|
|
|
|
Other changes:
|
|
|
|
* src/TorrentMan.cc
|
|
(getPeer): Return nullPeer if connection is grather than
|
|
MAX_PEER_UPDATE(15) in order to leave space for incoming peers.
|
|
|
|
2006-04-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add some useful information to the exception message:
|
|
|
|
* src/SocketCore.cc : Updated messages.
|
|
* src/SegmentMan.cc :
|
|
* src/TorrentMan.cc : Updated messages.
|
|
* src/MultiDiskWriter.cc : Updated messages.
|
|
* src/Util.cc : Updated messages.
|
|
* src/AbstractDiskWriter.cc : Updated messages.
|
|
* src/PreAllocationDiskWriter.cc : Updated messages.
|
|
* src/message.cc : Added new messages. Updated some messages.
|
|
|
|
* src/TrackerWatcherCommand.h (MIN_PEERS): New definition.
|
|
* src/TrackerWatcherCommand.cc (execute): Use MIN_PEERS.
|
|
Updated threshold from 30 to 15.
|
|
|
|
* src/AbstractDiskWriter.h (filename): New variable.
|
|
* src/AbstractDiskWriter.cc (openExistingFile): Assigned filename.
|
|
(createFile): Assigned filename.
|
|
|
|
* src/main.cc: Updated the help message for http-auth-scheme.
|
|
|
|
* Release 0.4.0
|
|
|
|
2006-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add TrackerUpdateCommand with which replaces
|
|
CompactTrackerResponseProcessor:
|
|
|
|
* src/TrackerWatcherCommand.h (req): Removed.
|
|
* src/TrackerWatcherCommand.cc (execute): Send a request to tracker
|
|
if the number of peer connections are less than 30.
|
|
* src/ByteArrayDiskWriter.h (readData): Implemented.
|
|
* src/SegmentMan.h (diskWriter): New function.
|
|
* src/SegmentMan.cc (init): Added a call to diskWriter->closeFile()
|
|
* src/main.cc : Removed #include "CompactTrackerResponseProcessor.h"
|
|
(main): Use TrackerUpdateCommand.
|
|
* src/TorrentMan.h (CompactTrackerResponseProcessor): Removed.
|
|
(req): New variable.
|
|
(setTrackerResponseProcessor): Removed.
|
|
(getTrackerResponseProcessor): Removed.
|
|
(processTrackerResponse): Removed.
|
|
* src/DownloadEngine.h (diskWriter): Removed.
|
|
* src/TorrentDownloadEngine.cc (afterEachIteration): Removed a call
|
|
to torrentMan->processTrackerResponse().
|
|
|
|
To add Util::expandBuffer:
|
|
|
|
* src/ByteArrayDiskWriter.h (expandBuffer): Removed.
|
|
* src/ByteArrayDiskWriter.cc (writeData): Use Util::expandBuffer().
|
|
* src/Util.h (expandBuffer): New function.
|
|
|
|
To fix the bug that causes segmentation fault when "-l ." is specified
|
|
in command-line option:
|
|
|
|
* src/SimpleLogger.h (SimpleLogger): Removed "filename" argument.
|
|
(openFile): New function.
|
|
(closeFile): New function.
|
|
* src/SimpleLogger.cc (SimpleLogger): Removed fopen.
|
|
(~SimpleLogger): Call closeFile();
|
|
* src/LogFactory.cc (getInstance): Added a call to slogger->openFile().
|
|
* src/main.cc (main): Added a check to see logger is configured
|
|
properly.
|
|
|
|
To enable HTTP authentication without specifying "--http-auth-scheme"
|
|
|
|
* src/prefs.h (PREF_HTTP_AUTH_ENABLED): New definition.
|
|
* src/HttpConnection.cc (createRequest): Send Authorization header
|
|
if PREF_HTTP_AUTH_ENABLED == V_TRUE.
|
|
* src/main.cc (main): Preset PREF_HTTP_AUTH_SCHEME to V_TRUE
|
|
If "--http-user" is specified, set PREF_HTTP_AUTH_ENABLED to V_TRUE
|
|
|
|
* src/Peer.cc (shouldChoke): Updated algorithm.
|
|
|
|
* src/message.h (EX_AUTH_FAILED): New definition.
|
|
(EX_FILE_OPEN): New definition.
|
|
* src/HttpResponseCommand.cc (checkResponse): Throw DlAbortEx
|
|
if status == 401.
|
|
(handleDefaultEncoding): Added a call to diskWriter->initAndOpenFile()
|
|
if req->isTorrent == true.
|
|
|
|
* src/main.cc (handler): Removed the check to see e->diskWriter != NULL
|
|
(torrentHandler): Removed the check to see diskAdaptor != NULL.
|
|
|
|
* src/AbstractDiskWriter.cc (openExistingFile): Updated messsage.
|
|
(createFile): Updated message.
|
|
|
|
2006-04-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add a readout of estimated remaining time to normal HTTP/FTP
|
|
downloads:
|
|
|
|
* src/ConsoleDownloadEngine.h (startup): New variable.
|
|
(startupLength): New variable.
|
|
(isStartupLengthSet): New variable.
|
|
(avgSpeed): New variable.
|
|
(eta): New variable.
|
|
* src/ConsoleDownloadEngine.cc (sendStatistics): Added a readout of
|
|
estimated remaining time.
|
|
(initStatistics): Initialized newly added variables.
|
|
(calculateStatistics): Calculate average speed and estimated remaining
|
|
time.
|
|
|
|
To decouple TorrentDownloadEngine from HttpResponseCommand:
|
|
|
|
* src/TrackerDownloadCommand.h: Removed.
|
|
* src/TrackerDownloadCommand.cc: Removed.
|
|
* src/TrackerInitCommand.h: Removed.
|
|
* src/TrackerInitCommand.cc: Removed.
|
|
* src/TrackerUpdateCommand.h: Removed.
|
|
* src/TrackerUpdateCommand.cc: Removed.
|
|
* src/TrackerWatcherCommand.cc (execute): The construction of request
|
|
url written in TrackerInitCommand was moved here. Do not create
|
|
tracker request command if torrentMan->trackers != 0.
|
|
* src/CompactTrackerResponseProcessor.h: New class.
|
|
* src/CompactTrackerResponseProcessor.cc: New class.
|
|
* src/message.h (MSG_TRACKER_WARNING_MESSAGE): Updated.
|
|
* src/HttpResponseCommand.cc (createHttpDownloadCommand):
|
|
Decoupled TorrentDownloadEngine from this.
|
|
* src/SegmentMan.h (init): New function.
|
|
* src/SegmentMan.cc (init): New function.
|
|
* src/TorrentMan.h (responseProcessor): New variable.
|
|
(trackers): New variable.
|
|
(setTrackerResponseProcessor): New function.
|
|
(getTrackerResponseProcessor): New function.
|
|
(processTrackerResponse): New function.
|
|
* src/TorrentMan.cc (Constructor): Initialized new variable trackers.
|
|
(processTrackerResponse): New function.
|
|
* src/main.cc (main): Use ByteArrayDiskWriter and
|
|
CompactTrackerResponseProcessor.
|
|
* src/TorrentDownloadEngine.cc (afterEachIteration): Call torrentMan->
|
|
processTrackerResponse().
|
|
|
|
* src/TorrentConsoleDownloadEngine.cc (printStatistics): Updated a
|
|
readout.
|
|
|
|
* src/TorrentDownloadEngine.cc (afterEachIteration): Added log message
|
|
which indicates download has completed.
|
|
|
|
* src/AbstractDiskWriter.cc (Destructor): fd >= 0, not fd >0
|
|
(closeFile): fd >= 0, not fd > 0
|
|
|
|
* src/main.cc (main): Added short cut for show-files.
|
|
Added short cut for torrent-file.
|
|
Added new command-line option listen-port.
|
|
Updated i18n messages.
|
|
|
|
2006-04-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add LogFactory which creates singleton logger:
|
|
|
|
* src/LogFactory.h: New class.
|
|
* src/LogFactory.cc: New class.
|
|
* src/Command.h (logger): New variable.
|
|
(Constructor): Use LogFactory.
|
|
* src/AbstractCommand.cc: Use Command::logger
|
|
* src/PeerConnection.cc (Constructor): Deleted the argument logger.
|
|
Use LogFactory.
|
|
* src/SegmentSplitter.h : Made logger protected.
|
|
* src/SegmentSplitter.cc (Constructor): Use LogFactory.
|
|
* src/SegmentMan.cc (Constructor): Use LogFactory.
|
|
* src/DownloadEngine.h : Made logger protected.
|
|
* src/DownloadEngine.cc (Constructor): Use LogFactory.
|
|
* src/PeerInteractionCommand.cc : Use Command::logger.
|
|
* src/HttpResponseCommand.cc : Use Command::logger.
|
|
* src/SegmentMan.h : Made logger private.
|
|
* src/TorrentMan.h : Made logger private.
|
|
* src/TorrentMan.cc : Use LogFactory.
|
|
* src/FtpNegotiateCommand.cc : Use Command::logger.
|
|
* src/HttpConnection.h (Constructor): Deleted the argument logger.
|
|
* src/HttpConnection.cc (Constructor): Deleted the argument logger.
|
|
Use LogFactory.
|
|
* src/FtpConnection.h (Constructor): Deleted the argument logger.
|
|
* src/FtpConnection.cc (Constructor): Deleted the argument logger.
|
|
Use LogFactory.
|
|
* src/DownloadCommand.cc : Use Command::logger.
|
|
* src/PeerAbstractCommand.cc : Use Command::logger.
|
|
* src/PeerListenCommand.cc : Use Command::logger.
|
|
* src/PeerInitiateConnectionCommand.cc : Use Command::logger.
|
|
* src/HttpInitiateConnectionCommand.cc : Use Command::logger.
|
|
* src/FtpInitiateConnectionCommand.cc : Use Command::logger.
|
|
* src/TrackerWatcherCommand.cc : Use Command::logger.
|
|
* src/TrackerUpdateCommand.cc : Use Command::logger.
|
|
* src/TrackerDownloadCommand.cc : Use Command::logger.
|
|
* src/RequestSlotMan.cc (Constructor): Deleted the argument logger.
|
|
Use LogFactory.
|
|
* src/SendMessageQueue.h (Constructor): Deleted the argument logger.
|
|
* src/SendMessageQueue.cc (Constructor): Deleted the argument logger.
|
|
Use LogFactory.
|
|
* src/main.cc (main): Use LogFactory.
|
|
* src/DiskAdaptor.h (logger): New variable.
|
|
* src/DiskAdaptor.cc (Constructor): Use LogFactory.
|
|
* src/CopyDiskAdaptor.cc (fixFilename): Added a log message.
|
|
|
|
2006-04-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/TrackerInitCommand.cc (TrackerInitCommand): Added a "key"
|
|
parameter to a tracker request.
|
|
|
|
* src/TorrentMan.cc (readFileEntryFromMetaInfoFile): Bug fix.
|
|
|
|
* src/TrackerWatcherCommand.cc (execute): Call req->resetTryCount().
|
|
|
|
* src/main.cc (setSignalHander): New function.
|
|
(main): Added a handler for SIGTERM.
|
|
(handler): Updated message.
|
|
(torrentHandler): Updated message.
|
|
|
|
|
|
2006-04-16 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/TorrentConsoleDownloadEngine.cc
|
|
(onPartialDownloadingCompletes): Renamed as
|
|
onSelectiveDownloadingCompletes.
|
|
(onSelectiveDownloadingCompletes): Updated message.
|
|
|
|
To add DiskAdaptor which abstract DiskWriter family:
|
|
|
|
* src/PeerConnection.cc: Use diskAdaptor instead of diskWriter.
|
|
* src/PeerInteractionCommand.cc: Use diskAdaptor instead of diskWriter.
|
|
* src/BitfieldMan.cc (isAllBitSet): bug fix.
|
|
* src/TorrentMan.cc : Included CopyDiskAdaptor.h, DirectDiskAdaptor.h,
|
|
MultiDiskAdaptor.h.
|
|
(readFileEntry): Changed its arguments.
|
|
(setup): setupDiskWriter is merged into this function.
|
|
(setupDiskWriter): Removed.
|
|
(setFileFilter): New function.
|
|
(readFileEntryFromMetaInfoFile): Updated according to the changes
|
|
made in readFileEntry.
|
|
(getFilePath): Removed.
|
|
(getTempFilePath): Removed.
|
|
(getSegmentFilePath): Updated due to the removal of getFilePath.
|
|
(fixFilename): Removed.
|
|
(copySingleFile): Removed.
|
|
(splitMultiFile): Removed.
|
|
(deleteTempFile): Removed.
|
|
(setFileEntriesToDownload): Removed.
|
|
(isPartialDownloadingMode): Renamed as isSelectiveDownloadingMode.
|
|
(isSelectiveDownloadingMode): New function.
|
|
(setAllMultiFileRequestedState): Removed.
|
|
(finishPartialDownloadingMode): Renamed as
|
|
finishSelectiveDownloadingMode.
|
|
(finishSelectiveDownloadingMode): New function.
|
|
(getPartialTotalLength): Renamed as getSelectedTotalLength.
|
|
(getSelectedTotalLength): New function.
|
|
(onDownloadComplete): Use diskAdaptor.
|
|
* src/MultiDiskWriter.cc (Constructor): Added the argument pieceLength
|
|
(Range): Removed.
|
|
(setMultiFileEntries): Renamed as setFileEntries.
|
|
(setFileEntries): New function.
|
|
* src/MultiDiskWriter.h [DiskWriterEntry](enabled): Removed.
|
|
(pieceLength): New variable.
|
|
* src/main.cc (printDownloadCompeleteMessage): New function.
|
|
(torrentHandler): Use diskAdaptor instead of diskWriter.
|
|
(main): Renamed torrent-show-files to show-files.
|
|
Rewritten file contents listing.
|
|
* src/TorrentMan.h (FileEntry): Removed.
|
|
(multiFileTopDir): Removed.
|
|
(multiFileEntries): Removed.
|
|
(diskWriter): Removed.
|
|
(diskAdaptor): New variable.
|
|
* src/DefaultDiskWriter.h (totalLength): New variable.
|
|
* src/DefaultDiskWriter.cc (initAndOpenFile): Added ftruncate.
|
|
* src/TorrentDownloadEngine.cc (onEndOfRun): Use diskAdaptor instead of
|
|
diskWriter.
|
|
* src/TorrentConsoleDownloadEngine.h
|
|
(partialDownloadLengthDiff): Renamed as selectedDownloadLengthDiff.
|
|
(partialTotalLength): Renamed as selectedTotalLength.
|
|
* src/AbstractDiskWriter.cc (openFile): If file exists, call
|
|
openExistingFile, otherwise call initAndOpenFile.
|
|
(closeFile): fd > 0, not fd != 0.
|
|
* src/DirectDiskAdaptor.h: New class.
|
|
* src/DirectDiskAdaptor.cc: New class.
|
|
* src/MultiDiskAdaptor.h: New class.
|
|
* src/MultiDiskAdaptor.cc: New class.
|
|
* src/CopyDiskAdaptor.h: New class.
|
|
* src/CopyDiskAdaptor.cc: New class.
|
|
* src/DiskAdaptor.h: New class.
|
|
* src/DiskAdaptor.cc: New class.
|
|
|
|
* src/prefs.h (PREF_TORRENT_SHOW_FILES): Renamed as PREF_SHOW_FILES
|
|
(PREF_SHOW_FILES): New definition.
|
|
|
|
2006-04-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To add the ability to download multi torrent into respective files
|
|
directly:
|
|
|
|
* src/DiskWriter.h (openFile): New function.
|
|
(seek): Removed.
|
|
* src/MultiDiskWriter.h: New class.
|
|
* src/MultiDiskWriter.cc: New class.
|
|
* src/AbstractDiskWriter.h (seek): Changed its scope from public to
|
|
protected.
|
|
(openFile): New function.
|
|
* src/AbstractDiskWriter.cc (openFile): New function.
|
|
* src/prefs.h (V_FALSE): New definition.
|
|
(PREF_DIRECT_FILE_MAPPING): New definition.
|
|
* src/TorrentMan.h (setupDiskWriter): New function.
|
|
(setAllMultiFileRequestedState): New function.
|
|
(onDownloadComplete): New function.
|
|
* src/TorrentMan.cc : Included MultiDiskWriter.h
|
|
(setupDiskWriter): New function.
|
|
(getFilePath): Updated.
|
|
(getTempFilePath): Updated.
|
|
(getSegmentFilePath): Updated.
|
|
(fixFilename): Updated.
|
|
(deleteTempFile): Updated.
|
|
(setAllMultiFileRequestedState): New function.
|
|
(setFileEntriesToDownload): Use setAllMultiFileRequestedState().
|
|
(finishPartialDownloadingMode): Reset requested flags.
|
|
(onDownloadComplete): New function.
|
|
* src/main.cc: Added --direct-file-mapping option.
|
|
Use TorrentMan::setupDiskWriter().
|
|
* src/TorrentDownloadEngine.cc (afterEachIteration): Use TorrentMan::
|
|
onDownloadComplete().
|
|
|
|
|
|
To fix ETA bug:
|
|
|
|
* src/Util.h (difftvsec): New function.
|
|
* src/Util.cc (difftvsec): New function.
|
|
* src/TorrentConsoleDownloadEngine.cc (calculateSpeed): Use int for the
|
|
type of "elapsed" instead of long long int.
|
|
(calculateStatistics): Use Util::difftvsec instead of Util::difftv.
|
|
The updates of statistics takes place every 1 seconds.
|
|
* src/TorrentConsoleDownloadEngine.h (lastElapsed): Changed its type.
|
|
(calculateSpeed): Changed its argument signature.
|
|
|
|
* src/PeerMessage.cc (toString): Fixed message.
|
|
|
|
2006-04-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To print ETA:
|
|
|
|
* src/TorrentDownloadEngine.cc (afterEachIteration): Added download
|
|
completion handling when dealing with
|
|
TorrentMan::isPartialDownloadingMode() == true.
|
|
* src/TorrentDownloadEngine.h (onPartialDownloadingCompletes):
|
|
New function.
|
|
* src/TorrentConsoleDownloadEngine.h (startup): New variable.
|
|
(sessionDownloadLength): New variable.
|
|
(avgSpeed): New variable.
|
|
(eta): New variable.
|
|
* src/TorrentConsoleDownloadEngine.cc (initStatistics): Initialized
|
|
new variables: eta, avgSpeed, startup.
|
|
(calculateSpeed): Calculate average speed and ETA.
|
|
(printStatistics): Added ETA.
|
|
|
|
* src/Util.h (secfmt): New function.
|
|
* src/Util.cc (secfmt): New function.
|
|
|
|
2006-04-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
To detect "keep alive" flooding:
|
|
|
|
* src/PeerInteractionCommand.h (keepAliveCount): New variable
|
|
* src/PeerInteractionCommand.cc (Constructor): Initialized new
|
|
variable: keepAliveCount.
|
|
(detectMessageFlooding): Added "keep alive" flooding detection.
|
|
(receiveMessage): Increase keepAliveCount when "keep alive" message
|
|
received.
|
|
|
|
To add the ability to download only specified files in multi-file
|
|
torrent:
|
|
|
|
* src/BitfieldMan.h (filterBitfield): New variable.
|
|
(filterEnabled): New variable.
|
|
(setFilterBit): New function.
|
|
(enableFilter): New function.
|
|
(disableFilter): New function.
|
|
(isFilterEnabled): New function.
|
|
(getFilteredTotalLength): New function.
|
|
(getCompletedLength): New function.
|
|
* src/BitfieldMan.cc (Constructor): Initialized new variable:
|
|
filterBitfield, filterEnabled.
|
|
(CopyConstructor): Added filterBitfield and filterEnabled.
|
|
(operator==): Added filterBitfield and filterEnabled.
|
|
(Destructor): Added filterBitfield.
|
|
(getMissingIndex): Use filterBitfield.
|
|
(getMissingUnusedIndex): Use filterBitfield.
|
|
(getFirstMissingUnusedIndex): Use filterBitfield.
|
|
(getFirstMissingUnusedIndex): Use filterBitfield.
|
|
(getAllMissingIndexes): Use filterBitfield.
|
|
(countMissingBlock): Use filterBitfield.
|
|
(countBlock): Use filterBitfield.
|
|
(setBitInternal): Added new argument on.
|
|
(setUseBit): Use setBitInternal.
|
|
(unsetUseBit): Use setBitInternal.
|
|
(setBit): Use setBitInternal.
|
|
(unsetBit): Use setBitInternal.
|
|
(isAllBitSet): Use filterBitfield.
|
|
(setFilterBit): New function.
|
|
(addFilter): New function.
|
|
(enableFilter): New function.
|
|
(disableFilter): New function.
|
|
(clearFilter): New function.
|
|
(isFilterEnabled): New function.
|
|
(getFilteredTotalLength): New function.
|
|
(getCompletedLength): New function.
|
|
|
|
* src/TorrentMan.h [FileEntry](Constructor): Updated signature.
|
|
Initalized newly added variables.
|
|
[FileEntry](offset): New variable.
|
|
[FileEntry](extracted): New variable.
|
|
[FileEntry](requested): New variable.
|
|
(readFileEntry): New function.
|
|
(option): New variable.
|
|
(splitMultiFile): Removed const qualifier.
|
|
(fixFilename): Removed const qualifier.
|
|
(readFileEntryFromMetaInfoFile): New function.
|
|
(finishPartialDownloadingMode): New function.
|
|
(isPartialDownloadingMode): New function.
|
|
(setFileEntriesToDownload): New function.
|
|
(getCompletedLength): New function.
|
|
(getPartialTotalLength): New function.
|
|
* src/TorrentMan.cc (readFileEntry): New function.
|
|
(setup): Use readFileEntry. If no-preallocation option is specified,
|
|
use DefaultDiskWriter.
|
|
(readFileEntryFromMetaInfoFile): New function.
|
|
(fixFilename): Removed const qualifier.
|
|
(splitMultiFile): Removed const qualifier.
|
|
(setFileEntriesToDownload): New function.
|
|
(isPartialDownloadingMode): New function.
|
|
(finishPartialDownloadingMode): New function.
|
|
(getCompletedLength): New function.
|
|
(getPartialTotalLength): New function.
|
|
|
|
* src/TorrentConsoleDownloadEngine.h (partialDownloadLengthDiff):
|
|
New variable.
|
|
(partialTotalLength): New variable.
|
|
(downloadLength): New variable.
|
|
(totalLength): New variable.
|
|
* src/TorrentConsoleDownloadEngine.cc (onPartialDownloadingCompletes):
|
|
Added log.
|
|
(initStatistics): Initialized new variables: partialDownloadLengthDiff,
|
|
partialTotalLength, downloadLength, totalLength.
|
|
(calculate): Calculate downloadLength and totalLength.
|
|
|
|
* src/prefs.h :New definition PREF_NO_PREALLOCATION
|
|
|
|
* src/main.cc (addCommand): Changed argument signature.
|
|
(main): Added new variable: args. Added new option "torrent-show-files"
|
|
"no-preallocation". Usage is not updated yet.
|
|
|
|
2006-04-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerMessage.cc (setBitfield): Fixed invalid memory de-allocation.
|
|
|
|
2006-04-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Attempt to add the ability to listing file entries in a .torrent file.
|
|
This feature is not yet complete.
|
|
|
|
* src/prefs.h (PREF_TORRENT_SHOW_FILES): New definition
|
|
* src/TorrentMan.cc (getMultiFileEntries): New function.
|
|
(getName): New function.
|
|
* src/TorrentMan.h (getMultiFileEntries): New function.
|
|
(getName): New function.
|
|
* src/main.cc (main): Use above 2 funtion.
|
|
|
|
* Release 0.3.2
|
|
|
|
2006-03-31 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* src/PeerInteractionCommand.cc (checkInactiveConnection): New function
|
|
(detectMessageFlooding): Updated threshold value.
|
|
(checkLongTimePeerChoking): Updated timeout value.
|
|
(getNewPieceAndSendInterest): Added debug log.
|
|
* src/PeerInteractionCommand.h (checkInactiveConnection): New function
|
|
|
|
* src/TorrentMan.cc (deleteOldErrorPeers): Updated.
|
|
(getPeer): Updated.
|
|
* src/TorrentMan.h: Added MAX_PEER_ERROR.
|
|
|
|
* src/PeerAbstractCommand.cc (onAbort): Increment error counter.
|
|
|
|
* src/PeerListenCommand.cc (execute): Close connection if incoming peer
|
|
is localhost.
|
|
|
|
* src/main.cc (main): Updated PREF_PEER_CONNECTION_TIMEOUT to 60.
|
|
|
|
* src/PendingMessage.cc (processMessage): Not to send piece message
|
|
if peer is not interested in the pieces localhost has.
|
|
|
|
* src/Peer.cc (shouldChoke): Updated.
|
|
|
|
* src/SendMessageQueue.cc (cancelAllRequest): Fixed.
|
|
|
|
* src/Util.cc (isPowerOf): New function.
|
|
* src/Util.h (isPowerOf): New function.
|
|
* src/PeerMessageUtil.cc (checkLength): Added a check for length
|
|
whether or not it is power of 2.
|
|
|
|
2006-03-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
Added new class SendMessageQueue that includes PendingMessages and
|
|
RequestSlotMan.
|
|
|
|
* src/SendMessageQueue.h: New class.
|
|
* src/SendMessageQueue.cc: New class.
|
|
* src/PendingMessage.h: Added new member variable blockIndex and its
|
|
accessors.
|
|
(createRequestMessage): Updated.
|
|
* src/PendingMessage.cc (createRequestMessage): Updated.
|
|
* src/PeerInteractionCommand.cc (executeInternal): Updated with
|
|
SendMessageQueue.
|
|
(checkLongTimePeerChoking): Updated with SendMessageQueue.
|
|
(receiveMessage): Updated with SendMessageQueue.
|
|
(deletePendingPieceMessage): Removed.
|
|
(getNewPieceAndSendInterest): Updated with SendMessageQueue.
|
|
(sendInterest): Updated with SendMessageQueue.
|
|
(createRequestPendingMessage): Updated with SendMessageQueue.
|
|
(sendMessages): Updated with SendMessageQueue.
|
|
(onAbort): Updated with SendMessageQueue.
|
|
(keepAlive): Updated with SendMessageQueue.
|
|
(beforeSocketCheck): Updated SendMessageQueue.
|
|
|
|
* src/PeerInteractionCommand (sendMessages): Shuffle
|
|
missingBLockIndexes before using it.
|
|
|
|
Added its own timeout for peer connection.
|
|
|
|
* src/PeerAbstractCommand.h: Added member variable timeout and its
|
|
setter.
|
|
* src/prefs.h: Added PREF_PEER_CONNECTION_TIMEOUT.
|
|
* src/PeerInteractionCommand.cc (PeerInteractionCommand):
|
|
Added setTimeout() call.
|
|
(executeInternal): Added setTimeout() call.
|
|
* src/PeerAbstractCommand.cc (PeerAbstractCommand):
|
|
Added timeout.
|
|
(isTimeoutDetected): Updated.
|
|
* src/main.cc (main): Added PREF_PEER_CONNECTION_TIMEOUT entry to
|
|
option.
|
|
|
|
Added *simple* message flooding checker.
|
|
|
|
* src/PeerInteractionCommand.cc (executeInternal):
|
|
Added detectMessageFlooding() call.
|
|
(detectMessageFlooding): New function.
|
|
(receiveMessage): Count up CHOKE, UNCHOKE, HAVE message.
|
|
(beforeSocketCheck): Added detectMessageFlooding() call.
|
|
* src/PeerInteractionCommand.h: Added sendMessageQueue,
|
|
chokeUnchokeCount, haveCount, detectMessageFlooding().
|
|
Removed deletePendingPieceMessage(), getRequestSlot(),
|
|
deleteRequestSlot(), deleteAllRequestSlot().
|
|
|
|
* src/PeerInteractionCommand.cc (beforeSocketCheck):
|
|
Added checkLongTimePeerChoking() call.
|
|
|
|
* src/RequestSlotMan.h: Renamed deleteTimeoutRequestSlot().
|
|
|
|
* src/TorrentMan.cc (addPeer): Delete at most MAX_PEER_LIST_SIZE peers
|
|
if duplicate == false.
|
|
|
|
The parameter "uploaded" and "downloaded" in the tracker request are
|
|
the size since the client sent the "started" event to the tracker.
|
|
|
|
* src/TorrentMan.cc (setup): Assigned saved downloaded Size and
|
|
uploaded size to preDownloadedSize, preUploadedSize respectively.
|
|
* src/TorrentMan.h: Added preDownloadedSize, preUploadedSize,
|
|
getSessionDownloadedSize(), getSessionUploadedSize().
|
|
* src/TrackerInitCommand.cc (execute): Use getSessionDownloadedSize(),
|
|
getSessionUploadedSize() instead of getDownloadedSize(),
|
|
getUploadedSize().
|
|
|
|
* src/PendingMessage.cc (processMessage): Do not send request message
|
|
if the peer is choking the client.
|
|
|
|
* src/TrackerUpdateCommand.cc (execute): Check wtheher minInterval is
|
|
less than interval.
|
|
|
|
2006-03-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* configure.in: Added gnutls support. Added several CPP macros.
|
|
* m4/openssl.m4: Added.
|
|
* src/SocketCore.{h,cc}: Drop const quarifier from writeData(),
|
|
readData(), peekData(). Added gnutls support.
|
|
* src/HttpDownloadCommand.cc: Removed SleepCommand.h
|
|
* src/TrackerWatcherCommand.{h,cc}: Added. This command creates
|
|
TrackerInitCommand periodicaly(TorrentMan::minInterval).
|
|
* src/TorrentMan.cc: Remove downloadedSize == 0 check from save().
|
|
Instead, added a check for whether setup method has executed
|
|
successfully.
|
|
* src/TorrentMan.h: Added member vaiable setupComplete. Updated
|
|
DEFAULT_ANNOUNCE_INTERVAL and DEFAULT_ANNOUNCE_MIN_INTERVAL to 300.
|
|
* src/Makefile.am: Updated.
|
|
* src/messageDigest.h: Added. This is a macro calculating SHA1 digest
|
|
using whether OpenSSL or gcrypt, depending on the result of configure
|
|
script.
|
|
* src/ShaVisitor.{h,cc}: Removed direct dependency on OpenSSL by using
|
|
messageDigest.h.
|
|
* src/TorrentAutoSaveCommand.h: Removed unused variable cuid.
|
|
* src/PeerListenCommand.cc: Added log about port binded successfully.
|
|
Fixed memory leak.
|
|
* src/main.cc: Added gnutls support. Replaced LIB_SSL with
|
|
ENABLE_BITTORRENT where they are not related to OpenSSL but BitTorrent.
|
|
Removed instantiation of TrackerInitCommand. Instead,
|
|
TrackerWatcherCommand is instantiated and pushed to the command queue.
|
|
* src/InitiateConnectionCommandFactory.cc: Replaced HAVE_LIBSSL with
|
|
ENABLE_SSL.
|
|
* src/Request.cc: Replaced HAVE_LIBSSL with ENABLE_SSL.
|
|
* src/RequestSlotMan.cc (deleteCompletedRequestSlot):
|
|
If a piece is already acquired by another command, delete the request
|
|
slots for the piece.
|
|
* src/TrackerUpdateCommand.cc (execute):
|
|
Changed log level of MSG_TRACKER_WARNING_MESSAGE from info to warn.
|
|
Added a check whether peer list is null.
|
|
Fixed the bug that causes sending completed event to the tracker
|
|
several times.
|
|
* src/TrackerInitCommand.cc (execute):
|
|
Fixed the bug that causes sending completed event to the tracker
|
|
several times.
|
|
* src/AbstractDiskWriter.{h,cc}: Removed direct dependency on OpenSSL
|
|
by using messageDigest.h.
|
|
|
|
2006-03-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* PeerConnection.cc: Replaced log message "keep-alive" with
|
|
"keep alive".
|
|
* PeerInteractionCommand.{h,cc}: Close connection if peer is choking
|
|
localhost long time.
|
|
* TorrentMan.cc: When adding new peer with duplicate = true, if the
|
|
number of peer list is equal to or grater than MAX_PEER_LIST, delete
|
|
at most 100 failure entry from the list. If with duplicate = false,
|
|
MAX_PEER_LIST is not checked.
|
|
* PeerListenCommand.cc: Fixed the argument order of log message.
|
|
|
|
2006-03-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Logger.h: Moved enum LEVEL from SimpleLogger.h to here.
|
|
Added warn().
|
|
* SimpleLogger.h: Moved enum LEVEL to Logger.h.
|
|
Implemented warn().
|
|
Defined 2 macros(WRITE_LOG, WRITE_LOG_EX) to avoid duplicated code.
|
|
|
|
2006-03-24 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Request.h: Added AFTER_COMPLETED event.
|
|
* TorrentDownloadEngine.cc: Prints "Download complete" message
|
|
instead of downloaded size and progress(%) after download completes.
|
|
* PeerInteractionCommand.cc: After download completes, sends unchoke
|
|
message to the peer if it is interested in what localhost has
|
|
downloaded.
|
|
* TorrentMan.cc: In single-file mode, copy temporary file to the final
|
|
destination instead of just renaming it.
|
|
* TorrentMan.cc: Added deleteTempFile().
|
|
* PeerAbstractCommand.cc: do not stop execution after download
|
|
completes. This makes localhost a seeder.
|
|
* Util.{h,cc}: Added fileCopy().
|
|
* PeerListenCommand.cc: do not stop execution after download completes.
|
|
This makes localhost a seeder.
|
|
* main.cc: Do not call TorrentMan::fixFilename() in torrentHandler.
|
|
Added TorrentMan::deleteTempFile() to torrentHandler.
|
|
Initialized the variable dir as ".".
|
|
* TorrentMan.h: Changed DEFAULT_ANNOUNCE_INTERVAL to 120 seconds.
|
|
Deleted renameSingleFile().
|
|
Added copySingleFile(), deleteTempFile().
|
|
* DownloadEngine.h: Added virtual function afterEachIteration().
|
|
* TorrentDownloadEngine.cc: Move a call to TorrentMan::fixFilename()
|
|
in onEndOfRun() to afterEachIteration().
|
|
In onEndOfRun(), changed if condition to check whether filenameFixed is
|
|
true.
|
|
* Util.cc: Implemented fileCopy() using rangedFileCopy().
|
|
In rangedFileCopy(), added try-catch block to properly close file
|
|
descriptors.
|
|
* TorrentDownloadEngine.cc: Added a member variable filenameFixed.
|
|
Added afterEachIteration(), isFilenameFixed().
|
|
* Peer.cc: Changed choking strategy.
|
|
* PreAllocationDiskWriter.cc: Drop O_DIRECT flag.
|
|
* TrackerInitCommand.cc: Send completed event only once.
|
|
* DownloadEngine.cc: Added a call to afterEachIteration().
|
|
* TrackerUpdateCommand.cc: Do not stop execution after download
|
|
completes.
|
|
* TorrentMan.h: Defined MAX_PEER_UPDATE as 15. aria2 attempts to
|
|
connect the peers at most MAX_PEER_UPDATE when a peer list is
|
|
received from a tracker.
|
|
* TrackerUpdateCommand.cc: Implemented above mentioned behavior.
|
|
Decreased the number of failure peers to delete to 0(just comment out
|
|
the line).
|
|
* Release 0.3.1
|
|
|
|
2006-03-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* PeerInteractionCommand.cc: added a call to
|
|
TorrentMan::unadvertisePiece in Destructor.
|
|
* PeerInteractionCommand.cc: make have message sent immediately
|
|
if the size of pending message queue is zero.
|
|
* TorrentMan.cc: set the maximum size of peer list to 250.
|
|
* TorrentMan.h: changed the container type of Peers and UsedPieces
|
|
to deque.
|
|
* Util.cc: fixed rangedFileCopy.
|
|
* AbstractDiskWriter.{h,cc}: moved digest context initialization
|
|
to Constructor. Also, moved digest cleanup to Destructor.
|
|
* MetaFileUtil.cc: fixed memory leak
|
|
* replaced std::vector with std::deque.
|
|
* AbstractCommand.cc: casted timeout value to long long int.
|
|
* ChunkedEncoding.cc: fixed memory leak.
|
|
* PeerInteractionCommand.cc: casted timeout value to long long int.
|
|
* SleepCommand.cc: casted timeout value to long long int.
|
|
* Data.cc: fixed memory leak.
|
|
* Data.cc: fixed toLLInt().
|
|
* BitfieldMan.cc: fixed memory leak.
|
|
* TorrentMan.cc: initialized storeDir to ".".
|
|
* TorrentMan.cc: fixed memory leak.
|
|
* TorrentMan.cc: corrected file paths of splitted files.
|
|
* PeerAbstractCommand.cc: casted timeout to long long int.
|
|
* main.cc: added delete(req) and delete(te->diskWriter).
|
|
* RequestSlot.cc: casted timeout value to long long int.
|
|
* Request.cc: fixed memory leak.
|
|
* PendingMessage.cc: make HAVE messages sent only when peer does not
|
|
have the piece.
|
|
* Peer.{h,cc}: added hasPiece(int index).
|
|
* main.cc: corrected addCommand.
|
|
|
|
2006-03-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* BitTorrent protocol support added.
|
|
* Release 0.3.0
|
|
|
|
2006-03-17 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* SocketCore.cc: remove the assignment of addrinfo.ai_addr.
|
|
|
|
2006-03-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* ChunkedEncoding.{h,cc}: fixed the bug that if chunk data is binary,
|
|
decoding did not work properly.
|
|
|
|
2006-03-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* DownloadEngine.h: included sys/time.h
|
|
* DownloadEngine.cc: remove sys/time.h
|
|
* Makefile.am (SUBDIRS): Add intl.
|
|
* configure.in (AC_CONFIG_FILES): Add intl/Makefile.
|
|
|
|
2006-03-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* main.cc: correct help message for --http-auth-scheme.
|
|
* main.cc: changed e-mail address for bug reports.
|
|
* ja.po: added japanese translation.
|
|
|
|
2006-03-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* SimpleLogger.cc: flush log file instead of stdout.
|
|
|
|
2006-03-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* main.cc: Fixed command-line option: max-tries
|
|
* HttpResponseCommand.cc: Make the request re-sent only if req->seg.sp
|
|
does not equal to seg.sp.
|
|
* DownloadCommand.cc: If EOF is got from the server and the total size
|
|
of file is not zero, then throw DlRetryEx.
|
|
* main.cc: Set the minium value of min-segment-size to 1024.
|
|
* HttpResponseCommand.cc: Fixed the bug that http segmented downloading
|
|
fails because of a regression since 0.2.0 release.
|
|
|
|
2006-03-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* HttpConnection.cc:
|
|
* common.h: defined the user agent name as macro
|
|
* DownloadEngine.{h, cc}:
|
|
* ConsoleDownloadEngine.{h, cc}: Console output message(size, speed)
|
|
is now generated by ConsoleDownloadEngine not by DownloadEngine.
|
|
* main.cc: Download complete/abort message is now generated by main.
|
|
* Makefile.am (SUBDIRS): Add m4.
|
|
(ACLOCAL_AMFLAGS): New variable.
|
|
(EXTRA_DIST): New variable.
|
|
* configure.in (AC_CONFIG_FILES): Add po/Makefile.in,
|
|
* gettext: added gettext functionality
|
|
|
|
2006-03-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* AbstractCommand.cc:
|
|
* DownloadCommand.{h, cc}: Aborted downloading commands now properly
|
|
unregister its cuid from SegmentMan.
|
|
* DownloadEngine.cc: .aria2 file was written when a downloading
|
|
failed with errors.
|
|
* HttpConnection.cc: Added "Proxy-Connection" header to proxy request.
|
|
Added "User-Agent" header to CONNECT proxy request.
|
|
Fixed "Proxy-Authorization" header. Now proxy authorization works
|
|
properly.
|
|
* Logger.h:
|
|
* SimpleLogger.{h,cc}: Changed the type of msg to const char*.
|
|
* ChunkedEncoding.cc: Added #include directive for strings.h
|
|
* Release 0.2.1
|
|
|
|
2006-02-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Util.{h,cc}: added startsWith().
|
|
* CookieBox.cc: rewrited criteriaFind() using Util::startsWith() and
|
|
Util::endsWith().
|
|
* SocketCore.cc: struct addrinfo is now zero-initialized.
|
|
* common.h: added #include directive of limit.h.
|
|
* DownloadEngine.cc: added #include directive of sys/time.h and
|
|
algorithm.
|
|
* Exception.h: added #include directive of stdio.h.
|
|
* AbstractCommand.h: added #include directive of sys/time.h.
|
|
* DownloadCommand.h: added #include directive of sys/time.h.
|
|
* *.h: added #include directive of common.h to all base classes.
|
|
subclasses' one was removed.
|
|
* common.h: defined LONG_LONG_MAX and LONG_LONG_MIN if a compiler
|
|
does not define these macros.
|
|
|
|
2006-02-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* Release 0.2.0
|
|
* main.cc:
|
|
* HttpInitiateConnectionCommand.{h,cc}:
|
|
* prefs.h:
|
|
* HttpConnection.{h,cc}: added --http-proxy-method option.
|
|
We can now use GET command in http proxy.
|
|
|
|
2006-02-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* SplitSlowestSegmentSplitter.{h,cc}: This class provies algorithm
|
|
that splits slowest segment of SegmentMan::commands vector.
|
|
This is the default split algorithm of aria2.
|
|
* SplitFirstSegmentSplitter.{h,cc}: This class provides algorithm
|
|
that splits first segment of SegmentMan::commands vector.
|
|
* SegmentSplitter.{h,cc}: Added. This class provides split algorithm.
|
|
* DownloadCommand.{h,cc}: Added downloading speed calculation.
|
|
* Segment.h:
|
|
* SegmentMan.cc: Added speed field to Segment.h
|
|
* main.cc: -s option now affects all URLs in command-line arguemtns.
|
|
* HttpResponseCommand.cc: Fixed bug that segment file is not loaded.
|
|
* message.h: Change file size related %d to %lld.
|
|
|
|
2006-02-21 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* FtpInitiateConnectionCommand.{h,cc}:
|
|
* FtpNegotiationCommand.{h,cc}:
|
|
* FtpDownloadCommand.{h,cc}:
|
|
* FtpConnection.{h,cc}: Added FTP support
|
|
* SimpleLogger.cc: Log message now includes time information.
|
|
* main.cc: The value of --http-auth-scheme option is chagned from
|
|
'BASIC' to 'basic'
|
|
* main.cc: Added --timeout command-line option.
|
|
* main.cc: Added --min-segment-size command-line option.
|
|
* main.cc: Added --max-retries command-line option.
|
|
* prefs.h: option string constants are now defined in prefs.h
|
|
|
|
2006-02-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* AbstractCommand.cc: Fixed timeout bug in AbstractCommand
|
|
* SegmentMan.cc: Added totalSize entry to .aria2 file. No compatibility
|
|
with version 0.1.0's one.
|
|
|
|
2006-02-18 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
|
|
|
* configure.in: Added --enable-ssl option to configure script.
|
|
* HttpConnection.cc: Make Request-URI an absolute path. Some servers
|
|
cannot permit absoluteURI as Request-URI.
|
|
* HttpConnection.cc: Added Referer support.
|
|
* main.cc: Added referer command-line option.
|
|
* main.cc: Added rety-wait command-line option.
|
|
* Exception.h: Fixed formating bug in Exception::setMsg()
|
|
* SocketCore.{h,cc}:
|
|
* Socket.{h, cc}:
|
|
* Request.cc:
|
|
* InitiateConnectionCommandFactory.cc:
|
|
* HttpRequestCommand.cc: Added HTTPS support.
|
|
* SocketCore.{h,cc}: Added SocketCore. Socket becomes a handle class
|
|
for SocketCore.
|
|
* ChunkedEncoding.cc: Fixed bug in ChunkedEncoding: expanding buffer
|
|
size is wrong
|
|
* DownloadCommand.cc: Fixed bug in DownloadCommand: In Chunked
|
|
Encoding, it wrongly adds to Segment.ds buff length from the socket.
|
|
|
|
2006-02-17 Tatsuhiro Tsujikawa <tsujikawa at rednoah dot com>
|
|
|
|
* Release 0.1.0
|
|
|