diff options
Diffstat (limited to 'ChangeLog.old')
| -rw-r--r-- | ChangeLog.old | 27745 |
1 files changed, 27745 insertions, 0 deletions
diff --git a/ChangeLog.old b/ChangeLog.old new file mode 100644 index 00000000..dc72dbef --- /dev/null +++ b/ChangeLog.old @@ -0,0 +1,27745 @@ +************************************************************************ +* We no longer update this file. Revision log can be obtained with the * +* following command: * +* git log --pretty=fuller --date=short * +************************************************************************ + +2010-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + For MINGW32 build, percent-encode non-ASCII characters in + filename. + * src/util.cc + +2010-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Include last '/' to directory name to create. This will avoid to + create directory 'C:' in Windows. + * src/File.cc + +2010-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused FileEntry::setupDir() + * src/FileEntry.cc + * src/FileEntry.h + * test/FileEntryTest.cc + +2010-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed MultiDiskAdaptor::mkdir() because directory structure is + created at AbstractDiskWriter::createFile(). + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + +2010-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unittest error + * test/OptionHandlerTest.cc + +2010-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made strings which are only used in comparison plain C strings. + * src/HttpHeader.cc + * src/HttpHeader.h + * src/Netrc.cc + * src/Netrc.h + * test/HttpHeaderTest.cc + +2010-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added white space after ',' when enumerating valid parameters. + * src/OptionHandlerImpl.cc + +2010-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Cleaned up Possible Values in usage help. More than 2 values are + delimited by ", ". + * src/NameMatchOptionHandler.h + * src/OptionHandler.cc + * src/OptionHandler.h + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.cc + * test/OptionHandlerTest.cc + +2010-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made --allow-overwrite, --allow-piece-length-change, + --realtime-chunk-checksum and --bt-require-crypto take optional + argument. Fixed usage doc for --metalink-enable-unique-protocol. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/usage_text.h + +2010-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made --continue, --daemon, --no-conf, --no-netrc and --show-files + option take optional argument. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/usage_text.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BtSeederStateChoke::PeerEntry::swap(). Also added + non-member swap for it, which is friend function for + BtSeederStateChoke because PeerEntry is private. + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BtLeecherStateChoke::PeerEntry::swap(). Also added + non-member swap for it, which is friend function for + BtLeecherStateChoke because PeerEntry is private. + * src/BtLeecherStateChoke.cc + * src/BtLeecherStateChoke.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added CookieStorage::DomainEntry::swap(). Also added non-member + swap for it. + * src/CookieStorage.cc + * src/CookieStorage.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made LogFactory::logger_ as SharedHandle<Logger> to make dtor of + Logger called at the program exit. Rewritten A2_LOG_* macro and + moved them to LogFactory.h + * src/LogFactory.cc + * src/LogFactory.h + * src/Logger.cc + * src/Logger.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed cuid as cuid_t in DefaultBtMessageDispatcher. + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use format specifier %lld for cuid_t. Defined cuid_t as long long + int instead of int64_t, since g++ complains int64_t is not + suitable for %lld. + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced StringFormat with fmt + +2010-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Logger interface. Logger now writes source file name and + line number in log file. + +2010-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made DHTBucketTreeNode non-copyable. + * src/DHTBucketTree.h + +2010-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enter 'end game' mode from the beginning when getting torrent + metadata for quick data retrieval. + * src/HandshakeExtensionMessage.cc + +2010-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced BNode with DHTBucketTreeNode which is 2 times efficient. + * src/BNode.cc: Removed + * src/BNode.h: Removed + * src/DHTBucketTree.cc + * src/DHTBucketTree.h + * src/DHTRoutingTable.cc + * src/DHTRoutingTable.h + * src/Makefile.am + * test/BNodeTest.cc: Removed + * test/DHTBucketTreeTest.cc + * test/Makefile.am + +2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added non-member swap() for SharedHandle. + * src/SharedHandle.h + +2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced HttpHeader::responseStatus_ with HttpHeader::statusCode_. + statusCode_ is of type int. + * src/AbstractProxyResponseCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpHeader.cc + * src/HttpHeader.h + * src/HttpHeaderProcessor.cc + * src/HttpResponse.cc + * src/HttpResponse.h + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/util.cc + * src/util.h + * test/HttpHeaderProcessorTest.cc + * test/HttpHeaderTest.cc + * test/HttpResponseTest.cc + * test/UtilTest.cc + +2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use SharedHandle::swap() in some places. + * src/RequestGroup.cc + +2010-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added SharedHandle::swap + * src/SharedHandle.h + +2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use --max-connection-per-server option value for Metalink. + * src/Metalink2RequestGroup.cc + +2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on opensolaris + * src/util.cc + +2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't catch Exception. + * src/RealtimeCommand.cc + +2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused includes. + +2010-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added .cc file for classes/structs that only provided by header + file. Defined non-POD classes' ctor, dtor in .cc file. Moved + implementation code in header file to .cc file for major + classes/strucsts. + +2010-11-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed SharedHandle::isNull(). Instead we added operator* and + operator unspecified_bool_type. Removed use of WeakHandle and + replaced with raw pointer. + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed memory leak + * src/ExpatMetalinkProcessor.cc + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + To match the behavior of friend operator functions in + SharedHandle.h to std::tr1::shared_ptr, we intentionally broke + these functions and modified code so that our code does not depend + on old behavior. + * src/AbstractCommand.cc + * src/DHTAbstractNodeLookupTask.h + * src/DHTBucket.cc + * src/DHTMessageReceiver.cc + * src/DHTNodeLookupEntry.cc + * src/DHTRoutingTable.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/DownloadContext.cc + * src/EpollEventPoll.cc + * src/Event.h + * src/HttpConnection.cc + * src/KqueueEventPoll.cc + * src/MultiDiskAdaptor.cc + * src/PeerAbstractCommand.cc + * src/PieceStatMan.cc + * src/PollEventPoll.cc + * src/PortEventPoll.cc + * src/SegmentMan.cc + * src/SelectEventPoll.cc + * src/SelectEventPoll.h + * src/ServerStatMan.cc + * src/SharedHandle.h + * src/UnknownLengthPieceStorage.cc + * src/a2functional.h + * src/option_processing.cc + * src/version_usage.cc + * test/BNodeTest.cc + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTBucketTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTIDCloserTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTPingMessageTest.cc + * test/DefaultBtRequestFactoryTest.cc + * test/DefaultPeerStorageTest.cc + * test/SequentialPickerTest.cc + * test/SingletonHolderTest.cc + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Create SharedHandle outside of function call to avoid unexpected + memory leak. + * src/AnnounceList.cc + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/UTMetadataPostDownloadHandler.cc + * src/download_helper.cc + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated supported hash functions. + * README + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added sha-224, sha-384, sha-512 hash function support. + * m4/openssl.m4 + * src/MessageDigest.cc + * src/LibgcryptMessageDigestImpl.cc + * src/LibsslMessageDigestImpl.cc + +2010-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced MessageDigestContext with MessageDigest. Cleaned up + unnecessary functions in MessageDigestHelper. + * src/BtPieceMessage.cc + * src/Checksum.h + * src/DHTTokenTracker.cc + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/HashFuncEntry.h + * src/IteratableChecksumValidator.cc + * src/IteratableChecksumValidator.h + * src/IteratableChunkChecksumValidator.cc + * src/IteratableChunkChecksumValidator.h + * src/LibgcryptMessageDigestImpl.cc + * src/LibgcryptMessageDigestImpl.h + * src/LibsslMessageDigestImpl.cc + * src/LibsslMessageDigestImpl.h + * src/MSEHandshake.cc + * src/MSEHandshake.h + * src/Makefile.am + * src/MessageDigest.cc + * src/MessageDigest.h + * src/MessageDigestHelper.cc + * src/MessageDigestHelper.h + * src/MessageDigestImpl.h + * src/MetalinkParserController.cc + * src/Piece.cc + * src/Piece.h + * src/UTMetadataDataExtensionMessage.cc + * src/bittorrent_helper.cc + * src/messageDigest.cc: Removed + * src/messageDigest.h: Removed + * src/util.cc + * src/version_usage.cc + * test/BittorrentHelperTest.cc + * test/GZipDecoderTest.cc + * test/GZipDecodingStreamFilterTest.cc + * test/IteratableChecksumValidatorTest.cc + * test/IteratableChunkChecksumValidatorTest.cc + * test/Makefile.am + * test/MessageDigestHelperTest.cc + * test/MessageDigestTest.cc + * test/Metalink2RequestGroupTest.cc + * test/MetalinkProcessorTest.cc + * test/PieceTest.cc + * test/TestUtil.cc + * test/TestUtil.h + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataPostDownloadHandlerTest.cc + +2010-11-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print IP protocol version when setting up XML-RPC server failed. + * src/HttpListenCommand.cc + +2010-11-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Retry open(2) and fallocate(2) when they are interrupted by + signal. + * src/AbstractDiskWriter.cc + +2010-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Capture errno right after system/library call to avoid it to get + overwritten. Use util::safeStrerror instead of strerror directly + because strerror might return NULL. We don't check errno for + std::fstream anymore. + * src/AbstractDiskWriter.cc + * src/CookieStorage.cc + * src/DHTAutoSaveCommand.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DefaultBtProgressInfoFile.cc + * src/EpollEventPoll.cc + * src/IteratableChunkChecksumValidator.cc + * src/KqueueEventPoll.cc + * src/Logger.cc + * src/MessageDigestHelper.cc + * src/PortEventPoll.cc + * src/SelectEventPoll.cc + * src/SocketCore.cc + * src/message.h + * src/util.cc + * src/util.h + +2010-11-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use const reference + * src/UnionSeedCriteria.h + +2010-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.6 + +2010-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian and Greek translation. Thanks to all + translators. + * po/el.po + * po/uk.po + +2010-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated translation template. + * po + +2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.6 + * configure.ac + * doc/aria2c.1.txt + +2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC examples. + * doc/aria2c.1.txt + +2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return empty range if byte-range-resp-spec or instance-length is + "*" in Content-Range header to prevent aria2 from emitting error + failing to convert "*" to a integer. + * src/HttpHeader.cc + * test/HttpHeaderTest.cc + +2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made #include guard consistent for c++ header files. + +2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that downloading > 4GB file fails on 32bit systems. + * src/HttpRequest.cc + * src/HttpRequestCommand.cc + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use unnamed namespace instead of static keyword. + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/Base64.cc + * src/BitfieldMan.cc + * src/BtDependency.cc + * src/ConsoleStatCalc.cc + * src/ContentTypeRequestGroupCriteria.cc + * src/CookieStorage.cc + * src/DHTMessageFactoryImpl.cc + * src/DHTRoutingTableDeserializer.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/EpollEventPoll.cc + * src/ExpatMetalinkProcessor.cc + * src/ExpatXmlRpcRequestProcessor.cc + * src/FileEntry.cc + * src/HttpRequest.cc + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/KqueueEventPoll.cc + * src/LongestSequencePieceSelector.cc + * src/MetalinkParserStateV3Impl.cc + * src/MetalinkParserStateV4Impl.cc + * src/MultiDiskAdaptor.cc + * src/MultiUrlRequestInfo.cc + * src/OptionParser.cc + * src/PeerSessionResource.cc + * src/PortEventPoll.cc + * src/Request.cc + * src/RequestGroupMan.cc + * src/SelectEventPoll.cc + * src/SessionSerializer.cc + * src/SimpleLogFormatter.cc + * src/Sqlite3CookieParser.cc + * src/TrackerWatcherCommand.cc + * src/XML2SAXMetalinkProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/XmlRpcMethod.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcResponse.cc + * src/base32.cc + * src/bencode2.cc + * src/bittorrent_helper.cc + * src/download_helper.cc + * src/main.cc + * src/messageDigest.cc + * src/option_processing.cc + * src/util.cc + * test/AnnounceListTest.cc + * test/BtRegistryTest.cc + * test/DHTBucketTest.cc + * test/DHTRoutingTableTest.cc + * test/DefaultBtAnnounceTest.cc + * test/FileEntryTest.cc + * test/FtpConnectionTest.cc + * test/MSEHandshakeTest.cc + * test/MagnetTest.cc + * test/XmlRpcMethodTest.cc + * test/array_funTest.cc + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added '// namespace' after end of unnamed namespace. + * src/AbstractCommand.cc + * src/AnnounceList.cc + * src/BtSeederStateChoke.cc + * src/ConsoleStatCalc.cc + * src/CookieStorage.cc + * src/DHTBucket.cc + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceStorage.cc + * src/DHTTaskQueueImpl.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/ExpatMetalinkProcessor.cc + * src/ExpatXmlRpcRequestProcessor.cc + * src/FeedbackURISelector.cc + * src/FileEntry.cc + * src/GZipEncoder.cc + * src/Metalink2RequestGroup.cc + * src/MetalinkEntry.cc + * src/MetalinkParserStateV3Impl.cc + * src/MetalinkParserStateV4Impl.cc + * src/Metalinker.cc + * src/MultiDiskAdaptor.cc + * src/Netrc.cc + * src/NsCookieParser.cc + * src/OptionParser.cc + * src/PieceStatMan.cc + * src/RarestPieceSelector.cc + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/ServerStatMan.cc + * src/SocketCore.cc + * src/XML2SAXMetalinkProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/XmlRpcMethodImpl.cc + * src/cookie_helper.cc + * src/download_helper.cc + * src/messageDigest.cc + * src/util.cc + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unnecessary unnamed namespace + * src/a2functional.h + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added cross reference in XML-RPC method section. Also added cross + reference for remaining -i list options. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added cross reference in Input File section. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made XML-RPC method section more readable by adding indents and + titles. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added command-line options cross reference in HTML man page. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved -x and -k option to HTTP/FTP option. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Tagged -x and -k option as #basic + * src/OptionHandlerFactory.cc + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC code example for options. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added internal cross reference for sections and subsections. + * doc/aria2c.1.txt + +2010-10-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC client code example using Python(I have not added + them for every methods yet). Added -x and -k example. + * doc/aria2c.1.txt + +2010-10-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning with --disable-bittorrent and + --disable-metalink. + * src/download_helper.cc + +2010-10-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning about printf format. + * src/AdaptiveURISelector.cc + * src/BtPieceMessage.cc + * src/DHTAbstractNodeLookupTask.h + * src/DHTMessageFactoryImpl.cc + * src/DHTPeerLookupTask.cc + * src/DHTReplaceNodeTask.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultExtensionMessageFactory.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/FileAllocationCommand.cc + * src/FileEntry.cc + * src/HandshakeExtensionMessage.cc + * src/IteratableChunkChecksumValidator.cc + * src/LibgcryptDHKeyExchange.h + * src/LibsslDHKeyExchange.h + * src/LpdDispatchMessageCommand.cc + * src/MSEHandshake.cc + * src/MessageDigestHelper.cc + * src/MultiDiskAdaptor.cc + * src/PeerConnection.cc + * src/SegmentMan.cc + * src/TimedHaltCommand.cc + * src/UTMetadataRequestExtensionMessage.cc + * src/UTPexExtensionMessage.cc + * src/bencode2.cc + * src/bittorrent_helper.cc + * src/message.h + +2010-10-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning when checking c-ares version. + * m4/libcares.m4 + +2010-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused variable r. + * src/StringFormat.cc + +2010-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added printf format check attribute. + * src/Logger.h + * src/StringFormat.h + +2010-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use std::numeric_limits<time_t> instead of checking of + sizeof(time_t). + * src/NsCookieParser.cc + * src/Sqlite3CookieParser.cc + * src/cookie_helper.cc + * test/CookieHelperTest.cc + * test/CookieStorageTest.cc + * test/NsCookieParserTest.cc + +2010-10-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed improper use of vsnprintf + * src/StringFormat.cc + +2010-10-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that dht.dat file could not be saved. This is + because a directory denoting temporary file path is wrongly + created and thus aria2 fails to open the file as regular file. + * src/DHTAutoSaveCommand.cc + +2010-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enclosed dht.dat path with single quote. + * doc/aria2c.1.txt + +2010-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed formatting errors. Added toc list to aria2c.1.html. Escaped + URI properly. + * doc/aria2c.1.txt + * doc/makeman + +2010-10-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.5 + +2010-10-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.5 + * configure.ac + * doc/aria2c.1.txt + +2010-10-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't reuse socket which is readable because we assume that if + socket is readable it means peer shutdowns connection and the + socket will receive EOF. Added default timeout value to + DownloadEngine::poolSocket(). + * src/DownloadEngine.cc + * src/DownloadEngine.h + +2010-10-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that file allocation is enabled in HTTP even if + --file-allocation=none is specified. + * src/HttpResponseCommand.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.4 + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian, Simplified Chinese and French translation. Thanks + to all translators. + * po/fr.po + * po/ru.po + * po/zh_CN.po + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added keys parameter to tellStatus, tellActive, tellStopped and + tellWaiting. + * doc/xmlrpc/aria2rpc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added testcase for File::mkdirs(). + * test/FileTest.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten AbstractDiskWriter::openFile() without File::exists(). + * src/AbstractCommand.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added errno member variable to Exception. + * src/DlAbortEx.cc + * src/DlAbortEx.h + * src/Exception.cc + * src/Exception.h + * src/RecoverableException.cc + * src/RecoverableException.h + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Simplified directory creation. + * src/DHTAutoSaveCommand.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Skip ";" after name value pair. + * src/cookie_helper.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::mkdirs() + * src/util.cc + +2010-10-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten File::mkdirs() + * src/File.cc + +2010-10-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use RFC1123 date format in debug log of MDTM response and + last-modified time and creation date of .torrent file printed + using -S. + * src/FtpNegotiationCommand.cc + * src/RequestGroup.cc + * src/bittorrent_helper.cc + +2010-10-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.4 + * configure.ac + * doc/aria2c.1.txt + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without sqlite3 + * test/CookieStorageTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Retrieve last access time from sqlite3 cookie database. + * src/CookieStorage.cc + * src/Sqlite3CookieParser.cc + * src/Sqlite3CookieParser.h + * src/Sqlite3CookieParserImpl.cc + * test/Sqlite3CookieParserTest.cc + * test/chromium_cookies.sqlite + * test/cookies.sqlite + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Remove expired cookies first when cookies_ is full. + * src/CookieStorage.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::split() + * src/util.h + * test/UtilTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/cookie_helper.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced util::split(a,b,c) and util::split(a,b) with + util::divide() + * src/ExpatMetalinkProcessor.cc + * src/FtpConnection.cc + * src/HttpHeader.cc + * src/HttpResponse.cc + * src/HttpServer.cc + * src/OptionParser.cc + * src/ParameterizedStringParser.cc + * src/ServerStatMan.cc + * src/magnet.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Append 'u' to hex mask. + * src/Base64.cc + * src/BitfieldMan.cc + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessage.h + * src/DHTBucket.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DefaultBtProgressInfoFile.cc + * src/MSEHandshake.h + * src/MultiUrlRequestInfo.cc + * src/Platform.cc + * src/SpeedCalc.cc + * src/UTPexExtensionMessage.cc + * src/a2netcompat.h + * src/base32.cc + * src/bitfield.h + * src/bittorrent_helper.cc + * src/cookie_helper.cc + * src/util.h + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added util::lowercase() and util::uppercase(). + * src/cookie_helper.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test cases for util::parseUIntNoThrow() and + util::parseLLIntNoThrow(). + * test/UtilTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use util::strip() instead of util::trim() + * src/ExpatXmlRpcRequestProcessor.cc + * src/FeatureConfig.cc + * src/HttpHeader.cc + * src/MetalinkParserStateV3Impl.cc + * src/OptionHandlerImpl.h + * src/ServerStatMan.cc + * src/UriListParser.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/bittorrent_helper.cc + * src/cookie_helper.cc + * src/messageDigest.cc + * src/util.cc + * src/util.h + * test/FeatureConfigTest.cc + * test/HttpRequestTest.cc + * test/UriListParserTest.cc + * test/UtilTest.cc + +2010-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added util::strip() + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-10-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tests to HttpRequestTest about trailing slash of cookie + path. + * test/HttpRequestTest.cc + +2010-10-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't append slash in CookieStorage::criteriaFind(). Append file + part of URI to request-uri in HttpRequest::createRequest(). This + change reverts the part of the previous change:"The + request-path must be ends with '/' so that request-path '/foo/' + path-matches cookie-path '/foo' and '/foo/' in the proposed + algorithm." + * src/CookieStorage.cc + * src/HttpRequest.cc + +2010-10-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Cookie class and Cookie parser based on + http://tools.ietf.org/html/draft-ietf-httpstate-cookie-14 with + some modifications. When parsing cookie date, match time first so + that it parses asctime() format. The request-path must be ends + with '/' so that request-path '/foo/' path-matches cookie-path + '/foo' and '/foo/' in the proposed algorithm. + * src/Cookie.cc + * src/Cookie.h + * src/CookieParser.cc: Removed + * src/CookieParser.h: Removed + * src/CookieStorage.cc + * src/CookieStorage.h + * src/HttpResponse.cc + * src/Makefile.am + * src/Makefile.in + * src/MultiUrlRequestInfo.cc + * src/NsCookieParser.cc + * src/NsCookieParser.h + * src/Sqlite3CookieParser.cc + * src/Sqlite3CookieParser.h + * src/a2functional.h + * src/cookie_helper.cc + * src/cookie_helper.h + * src/util.cc + * src/util.h + * test/CookieBoxFactoryTest.cc: Removed + * test/CookieHelperTest.cc + * test/CookieParserTest.cc: Removed + * test/CookieStorageTest.cc + * test/CookieTest.cc + * test/HttpRequestTest.cc + * test/Makefile.am + * test/Makefile.in + * test/NsCookieParserTest.cc + * test/Sqlite3CookieParserTest.cc + * test/TestUtil.cc + * test/TestUtil.h + * test/a2functionalTest.cc + * test/chromium_cookies.sqlite + * test/cookies.sqlite + * test/nscookietest.txt + +2010-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Supported ANSI C's asctime() format in Time::parseHTTPDate(). + Added Time::parseAsctime(). Changed order of application of parse + functions. I could not remember why parseRFC850() was tried first. + * src/TimeA2.cc + * src/TimeA2.h + * test/TimeTest.cc + +2010-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use inet_ntoa if inet_ntop is not available. Since inet_ntoa does + not handle IPv6 address, IPv6 support is limited in this + case. Fixed unit test error under mingw32. + * configure.ac + * src/AsyncNameResolver.cc + * src/SocketCore.cc + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTRoutingTableDeserializerTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/DefaultBtAnnounceTest.cc + * test/Metalink2RequestGroupTest.cc + * test/UTPexExtensionMessageTest.cc + +2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted the previous change in src/MultiUrlRequestInfo.cc. + Change log level of warning message about CA certificates to info. + * src/MultiUrlRequestInfo.cc + +2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed warning message when CA certificates are not imported. + --ca-certificate and --check-certificate option were added to the + error message displayed when certificate verification failed. + * src/MultiUrlRequestInfo.cc + * src/message.h + +2010-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print message when performing slow file allocation at first time. + * src/SingleFileAllocationIterator.cc + * src/SingleFileAllocationIterator.h + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on OpenBSD4.7(i386). In openssl.m4, we first + search libcrypto and then libssl because libssl depends on + libcrypto on OpenBSD. + * src/Netrc.cc + * src/Netrc.h + * src/Triplet.h + * src/openssl.m4 + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Execute 5 DHT tasks concurrently in each task queue. + * src/DHTTaskExecutor.cc + * src/DHTTaskExecutor.h + * src/DHTTaskQueueImpl.cc + * src/DHTTaskQueueImpl.h + * src/Makefile.am + * test/DHTTaskExecutorTest.cc + * test/Makefile.am + * test/MockDHTTask.h + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that FtpFinishDownloadCommand does not handle + timeout. This means it waits for the remote server to send "226 + Transfer Complete" message *without* its own timeout until the + remote server shutdowns connection(we can detect EOF in this + case). + * src/AbstractCommand.h + * src/FtpFinishDownloadCommand.cc + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup util::percentEncode() + * src/util.cc + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made string literal static std::string in + util::detectDirTraversal(). + * src/util.cc + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::escapePath(). Now it does not replace bad chars:it + performs percent-encode against them. util::fixTaintedBasename() + now replaces "/" with "%2F". Added 0x7f as bad chars in + util::detectDirTraversal(). + * src/util.cc + * test/UtilTest.cc + +2010-10-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Non-UTF8 filenames are now percent-encoded. For example, filename + for http://example.org/%90%A2%8AE will be %90%A2%8AE because it is + Shift_JIS. The comments and name in .torrent file in XML-RPC + response are percent-encoded if they are not UTF-8. + * src/FtpNegotiationCommand.cc + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/XmlRpcMethodImpl.cc + * src/bittorrent_helper.cc + * src/util.cc + * src/util.h + * test/BittorrentHelperTest.cc + * test/UtilTest.cc + +2010-09-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed TripletGet as TupleGet. Renamed TripletNthType as + TupleNthType. Renamed Triplet2Pair as Tuple2Pair. + * src/RequestGroupMan.cc + * src/Triplet.h + * test/TripletTest.cc + +2010-09-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use class instead of typename for Triplet template parameter. + * src/Triplet.h + +2010-09-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten TripletGet. + * src/Triplet.h + +2010-09-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten TripletNthType. + * src/Triplet.h + * test/TripletTest.cc + +2010-09-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Sort usedHosts by least used and faster download speed. + * src/Makefile.am + * src/RequestGroupMan.cc + * src/Triplet.h + * test/Makefile.am + * test/TripletTest.cc + +2010-09-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made small optimization. + * src/DownloadCommand.cc + +2010-09-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reset download start time of PeerStat because it is started before + file allocation begins. Without reset, we have incorrect download + time and aria2 wrongly determines that download speed is too low + if --lowest-speed-limit is used. + * src/StreamFileAllocationEntry.cc + +2010-09-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added keys parameter to aria2.tellStatus, aria2.tellActive, + aria2.tellWaiting and aria2.tellStopped XML-RPC method. 'keys' is + array of string. If it is specified, the response contains only + keys in 'keys' array. If 'keys' is empty or not specified, the + response contains all keys. This is useful when you just want + specific keys and avoid unnecessary transfers. For example, + *aria2.tellStatus*("1", ["gid", "status"]) returns 'gid' and + 'status' key. Made get*Param() functions XmlRpcRequest's + methods and changed portions of the code that were affected by + this change. + * doc/aria2c.1.txt + * src/Makefile.am + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/XmlRpcRequest.cc + * src/XmlRpcRequest.h + * test/XmlRpcMethodTest.cc + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.3 + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added note to --enable-http-pipelining option. + * doc/aria2c.1.txt + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print a message in console when download is not complete. + * src/RequestGroupMan.cc + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't set error in ServerStat just because resource is not + there. We can still use the server for other resources. + * src/AbstractCommand.cc + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Disabled --dry-run in multi-file download for now. + * src/RequestGroup.cc + +2010-09-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that a file gets overwritten if -V is given and no + hash is provided. Fixed the bug that --dry-run leads download + error. Added RequestGroup::createCheckIntegrityEntry() which + correctly creates CheckIntegrityEntry objects and open files based + on -V option and the existence of control file. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/ChecksumCheckIntegrityEntry.cc + * src/DownloadContext.cc + * src/DownloadContext.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/PieceHashCheckIntegrityEntry.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupEntry.cc + * src/RequestGroupEntry.h + +2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without zlib + * test/Makefile.am + +2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without zlib + * src/HttpResponseCommand.cc + +2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed ChunkedDecoder. Moved GZipDecodingStreamFilter to under + 'if HAVE_LIBZ'. + * src/ChunkedDecoder.cc + * src/ChunkedDecoder.h + * src/Makefile.am + * test/ChunkedDecoderTest.cc + * test/Makefile.am + +2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + +2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that error occurs when downloading zero-length file. + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + +2010-09-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without OpenSSL/GnuTLS. + * src/DownloadCommand.cc + +2010-09-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without BitTorrent support and OpenSSL/GnuTLS. + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/RequestGroup.cc + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing MockSegment.h to test/Makefile.am + * test/Makefile.am + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced V_TRUE with A2_V_TRUE. Replaced V_FALSE with A2_V_FALSE. + * src/AbstractCommand.cc + * src/HttpResponseCommand.cc + * src/Option.cc + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/TrackerWatcherCommand.cc + * src/download_helper.cc + * src/main.cc + * src/prefs.cc + * src/prefs.h + * test/AuthConfigFactoryTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DownloadHelperTest.cc + * test/HttpRequestTest.cc + * test/OptionHandlerTest.cc + * test/UTMetadataPostDownloadHandlerTest.cc + * test/XmlRpcMethodTest.cc + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated autoconf 2.67 + * configure.ac + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.3 + * configure.ac + * doc/aria2c.1.txt + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page according to changes in options. + * doc/aria2c.1.txt + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added short option -k for --min-split-size option and -x for + --max-connection-per-server option. Raised maximum value of + --max-connection-per-server up to 16. + * src/OptionHandlerFactory.cc + * src/usage_text.h + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use uri::parse instead of Request::setUri() where just URI parser + is needed. + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/DefaultBtAnnounce.cc + * src/FeedbackURISelector.cc + * src/FileEntry.cc + * src/HttpResponseCommand.cc + * src/ProtocolDetector.cc + * src/Request.cc + * src/RequestGroupMan.cc + +2010-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved URI parser code to uri.h, uri.cc to provide fast URI parser + without Request object initialization. + * src/Makefile.am + * src/Request.cc + * src/uri.cc + * src/uri.h + * test/Makefile.am + * test/RequestTest.cc + * test/UriTest.cc + +2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Store last error of removed download result so that it can be used + as exit status. + * src/RequestGroupMan.cc + +2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --max-download-result=NUM option. This option sets maximum + number of download result kept in memory. The download results are + completed/error/ removed downloads. The download results are + stored in FIFO queue and it can store at most NUM download + results. When queue is full and new download result is created, + oldest download result is removed from the front of the queue and + new one is pushed to the back. Setting big number in this option + may result high memory consumption after thousands of + downloads. Specifying 0 means no download result is kept. Default + value is 1000. + * src/OptionHandlerFactory.cc + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check hash(hash for entire file, not piece hash) if + --check-integrity option is given and file is + downloaded(determined by file length). If it fails, re-download + file. + * src/AbstractCommand.cc + * src/ChecksumCheckIntegrityEntry.cc + * src/ChecksumCheckIntegrityEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + +2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Make finished() return true only when offset == totalLength. + * src/AdaptiveFileAllocationIterator.cc + * src/SingleFileAllocationIterator.cc + +2010-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved connectedHostname, connectedAddr and connectedPort to + Request object. Mark cached IP address bad on timeout to allow + aria2 to renew IP address cache. + * src/AbstractCommand.cc + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyRequestCommand.h + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/HttpInitiateConnectionCommand.cc + * src/HttpRequestCommand.cc + * src/HttpRequestCommand.h + * src/InitiateConnectionCommand.cc + * src/InitiateConnectionCommand.h + * src/Request.cc + * src/Request.h + +2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call RequestGroupMan::fillRequestGroupFromReserver() repeatedly + while RequestGroupMan::requestQueueCheck() is true. + * src/FillRequestGroupCommand.cc + +2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use const ref + * src/MultiUrlRequestInfo.cc + +2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2 reports error and exits with non-zero + status when file is already downloaded. + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + +2010-09-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Allow '@' in username and password embedded in URI. It should be + percent-encoded but many people use their mail address as an + username and forget about PE. + * src/Request.cc + * test/RequestTest.cc + +2010-09-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Parse original URI when removing same host. + * src/HttpResponseCommand.cc + +2010-09-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Data from remote server in HTTP/FTP download are now written to + the disk(or memory) through StreamFilter. Decoding chunked and + gziped streams are done cascading StreamFilter. + Removed inefficient 1byte read code. + * src/ChunkedDecodingStreamFilter.cc + * src/ChunkedDecodingStreamFilter.h + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/GZipDecodingStreamFilter.cc + * src/GZipDecodingStreamFilter.h + * src/HttpConnection.cc + * src/HttpDownloadCommand.cc + * src/HttpResponse.cc + * src/HttpResponse.h + * src/HttpResponseCommand.cc + * src/HttpResponseCommand.h + * src/HttpSkipResponseCommand.cc + * src/HttpSkipResponseCommand.h + * src/Makefile.am + * src/NullSinkStreamFilter.cc + * src/NullSinkStreamFilter.h + * src/RequestGroup.cc + * src/SinkStreamFilter.cc + * src/SinkStreamFilter.h + * src/StreamFilter.cc + * src/StreamFilter.h + * test/ChunkedDecodingStreamFilterTest.cc + * test/GZipDecodingStreamFilterTest.cc + * test/HttpResponseTest.cc + * test/Makefile.am + * test/MockSegment.h + +2010-09-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.2 + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.2 + * configure.ac + * doc/aria2c.1.txt + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enclosed classes and structs declared in *.cc files unnamed + namespace. Added static keyword for function template in *.cc + files(TODO we should use unnamed namespace instead of static). + * src/AbstractCommand.cc + * src/AnnounceList.cc + * src/BtLeecherStateChoke.cc + * src/BtLeecherStateChoke.h + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + * src/ConsoleStatCalc.cc + * src/ContentTypeRequestGroupCriteria.cc + * src/CookieStorage.cc + * src/DHTBucket.cc + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceStorage.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/ExpatMetalinkProcessor.cc + * src/ExpatXmlRpcRequestProcessor.cc + * src/FeedbackURISelector.cc + * src/FileEntry.cc + * src/Metalink2RequestGroup.cc + * src/MetalinkEntry.cc + * src/Metalinker.cc + * src/MultiDiskAdaptor.cc + * src/Netrc.cc + * src/OptionParser.cc + * src/PieceStatMan.cc + * src/RarestPieceSelector.cc + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/ServerStatMan.cc + * src/XML2SAXMetalinkProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/XmlRpcResponse.cc + * src/a2algo.h + * src/download_helper.cc + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * doc/aria2c.1.txt + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test for previous change + * test/NetrcTest.cc + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In .netrc file, if machine name starts ".", aria2 performs domain + match instead of exact match. This is an extension of aria2. + * src/Netrc.h + +2010-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug which prevents HTTP redirection from working when + downloading multiple files from same host. + * src/AbstractCommand.cc + * src/FileEntry.cc + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.1 + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Polish and Turkish translations. Thanks to all + translators. + * po/pl.po + * po/tr.po + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added a note about the number of connections to help message. + * src/version_usage.cc + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Run PeerLookupTask more frequently when the number of peer is low. + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Drop connection when bad ut_metadata is received.. + * src/UTMetadataDataExtensionMessage.cc + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Drop connection when BtRuntime::isHalt() is true. + * src/PeerReceiveHandshakeCommand.cc + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed getMissingFastPiece(piece) and getMissingFastPiece(piece, + excludedIndexes) from PieceStorage. Done some code cleanup. + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Pass excludedIndexes when getting metadata piece. + * src/UTMetadataRequestFactory.cc + * test/UTMetadataRequestFactoryTest.cc + +2010-08-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added a sets of overloaded functions for + PieceStorage::getMissingPiece() and getMissingFastPiece() to get + multiple pieces more efficiently. + * src/DefaultBtInteractive.cc + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/DefaultPieceStorageTest.cc + * test/MockPieceStorage.h + +2010-08-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed signature of util::executeHook(). + * src/RequestGroupMan.cc + * src/util.cc + * src/util.h + +2010-08-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Wait data arrives at clientSocket_ in + FtpConnectionTest::testReceiveEpsvResponse(). + * test/FtpConnectionTest.cc + +2010-08-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bt-tracker and bt-exclude-tracker to -i list option. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/download_helper.cc + +2010-08-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't listen on IPv6 socket for BitTorrent, DHT, XML-RPC if + --disable-ipv6 is true. + * src/BtSetup.cc + * src/DownloadEngineFactory.cc + * src/RequestGroup.cc + +2010-08-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused debug log. + * src/DefaultBtInteractive.cc + +2010-08-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enter end game mode as soon as all pieces are assigned to peer to + avoid substantial slow down at the very last stage of download. + * src/DefaultBtInteractive.cc + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated IPv6 DHT usage. + * doc/aria2c.1.txt + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Quoted sample tracker URIs. + * doc/aria2c.1.txt + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-tracker and --bt-exclude-tracker option in man + page. + * doc/aria2c.1.txt + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set max outstanding request size to 100. Set stepping to 6. + * src/BtConstants.h + * src/DefaultBtInteractive.cc + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number 1.10.1 + * configure.ac + * doc/aria2c.1.txt + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up DHT version to 2. + * src/DHTConstants.h + +2010-08-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added error message when given address and resolved address do not + match in SocketCore::bind(). + * src/SocketCore.cc + +2010-08-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-tracker and --bt-exclude-tracker option. In + --bt-tracker option, you can specify comma separated list of + additional BitTorrent tracker's announce URI. These URIs are not + affected by --bt-exclude-tracker option because they are added + after URIs in --bt-exclude-tracker option are removed. In + --bt-exclude-tracker option, you can specify comma separated list + of BitTorrent tracker's announce URI to remove. You can use + special value '*' which matches all URIs, thus removes all + announce URIs. When specifying '*' in shell command-line, don't + forget to escape or quote it. + * src/BtDependency.cc + * src/OptionHandlerFactory.cc + * src/UTMetadataPostDownloadHandler.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/download_helper.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/BittorrentHelperTest.cc + * test/DownloadHelperTest.cc + +2010-08-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/DefaultPeerStorage.cc + +2010-08-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --dht-entry-porint6, --dht-file-path6, + --dht-listen-addr6 and --enable-dht6 option. Updated other things + too. + * doc/aria2c.1.txt + +2010-08-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README + * README + +2010-08-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated usage. + * src/usage_text.h + +2010-08-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README + * README + +2010-08-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed uitos(). Use util::uitos() instead. + * src/SocketCore.cc + +2010-08-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't try to send empty string. + * src/SocketBuffer.cc + * src/SocketBuffer.h + +2010-08-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Listen both IPv4 and IPv6 for BitTorrent protocol. + * src/BtSetup.cc + * src/PeerListenCommand.cc + * src/PeerListenCommand.h + +2010-08-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added debug log + * src/DHTPeerLookupTask.cc + +2010-08-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Initialized cur_ with values_.end() + * src/Sequence.h + +2010-08-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Listen both IPv4 and IPv6 for xml-rpc request. + * src/DownloadEngineFactory.cc + * src/HttpListenCommand.cc + * src/HttpListenCommand.h + +2010-08-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated malformed message handling. + * src/DHTMessageTracker.cc + * src/DHTMessageTracker.h + +2010-08-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Evaluate callback is non-null. + * src/DHTMessageTracker.cc + +2010-08-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added IPv6 DHT. Added --dht-entry-porint6, --dht-file-path6, + --dht-listen-addr6 and --enable-dht6 option. IPv6 DHT is disabled + by default. To use IPv6 DHT, you need to use --enable-dht6 and + specify a global unicast address to --dht-listen-addr6. IPv6 DHT + is highly experimental. + * src/BtSetup.cc + * src/DHTAutoSaveCommand.cc + * src/DHTAutoSaveCommand.h + * src/DHTConnectionImpl.cc + * src/DHTConnectionImpl.h + * src/DHTEntryPointNameResolveCommand.cc + * src/DHTFindNodeReplyMessage.cc + * src/DHTFindNodeReplyMessage.h + * src/DHTGetPeersMessage.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTGetPeersReplyMessage.h + * src/DHTMessageFactory.h + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageFactoryImpl.h + * src/DHTMessageTracker.cc + * src/DHTRegistry.cc + * src/DHTRegistry.h + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableDeserializer.h + * src/DHTRoutingTableSerializer.cc + * src/DHTRoutingTableSerializer.h + * src/DHTSetup.cc + * src/DHTSetup.h + * src/FtpConnection.cc + * src/LpdMessageReceiver.cc + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/PeerInteractionCommand.cc + * src/RequestGroup.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DHTConnectionImplTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTRoutingTableDeserializerTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/LpdMessageDispatcherTest.cc + * test/MockDHTMessageFactory.h + +2010-08-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed AI_V4MAPPED from DEFAULT_AI_FLAGS + * src/a2netcompat.h + +2010-08-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added support for peers6 key in tracker response. Added added6, + added6.f and dropped6 in ut_pex. + * src/BtAnnounce.cc + * src/BtAnnounce.h + * src/DefaultBtAnnounce.cc + * src/UTPexExtensionMessage.cc + * src/UTPexExtensionMessage.h + * test/DefaultBtAnnounceTest.cc + * test/UTPexExtensionMessageTest.cc + +2010-08-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added AI_V4MAPPED to DEFAULT_AI_FLAGS + * src/a2netcompat.h + +2010-08-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Add only gracefully disconnected peer to ut_pex dropped list. Add + incoming dropped list to PeerStorage. + * src/DefaultBtInteractive.cc + * src/DefaultPeerStorage.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/Peer.cc + * src/Peer.h + * src/PeerConnection.cc + * src/PeerConnection.h + * src/PeerInteractionCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + * src/UTPexExtensionMessage.cc + * test/DefaultPeerStorageTest.cc + * test/UTPexExtensionMessageTest.cc + +2010-08-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't use pre-calculate hash value when end-game mode. Throw + exception if bad piece is received. + * src/BtPieceMessage.cc + * src/DownloadCommand.cc + +2010-08-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten ut_pex peer selection. + * src/DefaultBtInteractive.cc + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/PeerStorage.h + * src/UTPexExtensionMessage.h + * test/DefaultPeerStorageTest.cc + * test/MockPeerStorage.h + * test/UTPexExtensionMessageTest.cc + +2010-08-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bittorrent::packcompact() which replaces + bittorrent::createcompact() and supports IPv6 addresses. Rewritten + bittorrent::unpackcompact() and bittorrent::extractPeer() to + support IPv6 addresses. Fixed added.f flags in ut_pex. + * src/BtConstants.h + * src/DHTFindNodeReplyMessage.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTMessageFactoryImpl.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DHTTokenTracker.cc + * src/DefaultBtAnnounce.cc + * src/UTPexExtensionMessage.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/UTPexExtensionMessageTest.cc + +2010-08-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --enable-async-dns6 option. This option enables IPv6 name + resolution in asynchronous DNS resolver. This option will be + ignored when --async-dns=false. + * doc/aria2c.1.txt + * src/AbstractCommand.cc + * src/AsyncNameResolver.cc + * src/AsyncNameResolver.h + * src/DHTEntryPointNameResolveCommand.cc + * src/OptionHandlerFactory.cc + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-07-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use hostname of original URI when counting hostname in + inFlightRequest. + * src/FileEntry.cc + +2010-07-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that + AdaptiveFileAllocationIterator::getCurrentLength() does not return + updated allocated bytes. + * src/AdaptiveFileAllocationIterator.h + +2010-07-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added FTP EPSV and EPRT command support. aria2 issues these + commands when address family of local socket is AF_INET6. + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/SocketCore.cc + * src/SocketCore.h + * test/FtpConnectionTest.cc + +2010-07-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that if hostname is numeric, + AbstractCommand::resolveHostname() does not add its address to + given addrs. This makes pooled socket is not used for that + address. + * src/AbstractCommand.cc + +2010-07-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set milliseconds in DownloadEngine::refreshInterval_. Because + there is difference in accuracy between epoll and clock_gettime(), + we set DEFAULT_REFRESH_INTERVAL 900ms just lower than default + timeout 1 sec for epoll. Also set update interval of + ConsoleStatCalc to 900ms by the same reason. + * src/ConsoleStatCalc.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + +2010-07-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten check for fallocate using AC_COMPILE_IFELSE. + * configure.ac + * m4/fallocate.m4 + +2010-07-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that HAVE_SOME_FALLOCATE gets undefined if fallocate + is not available even if posix_fallocate is available. This causes + FallocFileAllocationIterator.cc is out of compile targets and + linker error. + * configure.ac + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.10.0 + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added hidden select-least-used-host option. + * src/CreateRequestCommand.cc + * src/OptionHandlerFactory.cc + * src/TrackerWatcherCommand.cc + * src/prefs.cc + * src/prefs.h + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for --split option. + * src/usage_text.h + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for --min-split-size option. + * doc/aria2c.1.txt + * src/usage_text.h + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added max-connection-per-server, min-split-size and + conditional-get option to -i list option and aria2rpc. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/download_helper.cc + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed double free bug + * src/Sqlite3CookieParserImpl.cc + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with OSX g++ 4.0.1 + * src/FileEntry.h + * test/FileEntryTest.cc + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted default value of -j from 2 to 5. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Metadata download may take very long time. If URIs are + available, give up metadata download in at most 30 seconds. + * src/Metalink2RequestGroup.cc + +2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call RequestGroup::setForceHaltRequested(true) from + BtStopDownloadCommand to avoid long delay of tracker request. + * src/BtStopDownloadCommand.cc + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Pass maxSplitSize as an argument, instead of member variable of + DefaultPieceStorage. SegmentMan::getSegment(cuid_t,size_t index) + was renamed to SegmentMan::getSegmentWithIndex(...) + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/DownloadCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/PieceStorage.h + * src/RequestGroup.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + * test/SegmentManTest.cc + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed prepareForRetry from CreateRequestCommand + * src/CreateRequestCommand.cc + * src/CreateRequestCommand.h + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set PREF_REUSE_URI=V_FALSE for tracker request. + * src/TrackerWatcherCommand.cc + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.10.0 + * configure.ac + * doc/aria2c.1.txt + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Count the number of command used in HTTP(S)/FTP and the number of + connections in HTTP(S)/FTP independently. The former is used to + determin whether additional command is needed. The latter is used + to report user to how many connections are used in a download. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/CreateRequestCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2010-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check status values: 200 and 206. + * src/HttpResponse.cc + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted previous change and fixed it in a right way. + * src/HttpDownloadCommand.cc + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Make sure that all decoders are finished to pool socket + * src/HttpDownloadCommand.cc + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed indent of --conditional-get option. + * src/usage_text.h + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --on-bt-download-complete=COMMAND option. For BitTorrent, a + command specified in --on-download-complete is called when + download completes and seeding is over. On the other hand, this + option set the command to be executed when download completes but + before seeding. + * doc/aria2c.1.txt + * src/DefaultPieceStorage.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * src/util.cc + * src/util.h + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc of --split option. + * doc/aria2c.1.txt + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved executeHook and executeHookByOptName to util. + * src/RequestGroupMan.cc + * src/util.cc + * src/util.h + +2010-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --conditional-get option. Download file only when the local + file is older than remote file. This function only works with + HTTP(S) downloads only. It does not work if file size is specified + in Metalink. It also ignores Content-Disposition header. If a + control file exists, this option will be ignored. This function + uses If-Modified-Since header to get only newer file + conditionally. When getting modification time of local file, it + uses user supplied filename(see --out option) or filename part in + URI if --out is not specified. + * doc/aria2c.1.txt + * src/HttpHeader.cc + * src/HttpHeader.h + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/OptionHandlerFactory.cc + * src/TimeA2.cc + * src/TimeA2.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/HttpResponseTest.cc + * test/TimeTest.cc + +2010-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + FeedbackURISelector now tries to select URI whose host is least + used in aria2 globally. Reverted the previous change. + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + * src/CreateRequestCommand.cc + * src/FeedbackURISelector.cc + * src/FeedbackURISelector.h + * src/FileEntry.cc + * src/FileEntry.h + * src/InOrderURISelector.cc + * src/InOrderURISelector.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/URISelector.h + * src/a2algo.h + * test/FeedbackURISelectorTest.cc + * test/InOrderURISelectorTest.cc + +2010-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Prefer untested server in FeedbackURISelector + * src/FeedbackURISelector.cc + +2010-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --min-split-size option in man page. + * doc/aria2c.1.txt + +2010-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --min-split-size=SIZE option. aria2 does not split less + than 2*SIZE byte range. For example, let's consider downloading + 20MiB file. If SIZE is 10M, aria2 can split file into 2 range + [0-10MiB) and [10MiB-20MiB) and download it using 2 sources(if + --split >= 2, of course). If SIZE is 15M, since 2*15M > 20MiB, + aria2 does not split file and download it using 1 source. + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/BitfieldManTest.cc + * test/SegmentManTest.cc + +2010-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + FeedbackURISelector now tries to chooses URI which is not used in + aria2 globally. If it is possible, it may return used URI. + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + * src/CreateRequestCommand.cc + * src/FeedbackURISelector.cc + * src/FeedbackURISelector.h + * src/FileEntry.cc + * src/FileEntry.h + * src/InOrderURISelector.cc + * src/InOrderURISelector.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/URISelector.h + * test/FeedbackURISelectorTest.cc + * test/InOrderURISelectorTest.cc + +2010-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for options. + * doc/aria2c.1.txt + +2010-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --max-connection-per-server=NUM option. The default value of + NUM is 1. This option limits the number of connections allowed to + one server for each download. This means when NUM is 2 and 1 URI + is provided, even if you specified -s 5, aria2 establishes 2 + connections. Default value of -j option is changed from 5 to 2. + * src/BtDependency.cc + * src/CreateRequestCommand.cc + * src/FileEntry.cc + * src/FileEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/Metalink2RequestGroup.cc + * src/OptionHandlerFactory.cc + * src/TrackerWatcherCommand.cc + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DownloadHelperTest.cc + * test/FileEntryTest.cc + +2010-07-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set end byte in Range header if start byte > 0 to get more chance + to pool socket. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/DownloadCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.h + * test/DefaultPieceStorageTest.cc + * test/HttpRequestTest.cc + * test/MockPieceStorage.h + +2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved segment empty check before socket check. + * src/AbstractCommand.cc + +2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that segments are not filled to + Request::getMaxPipelinedRequest(). + Make sure that trailing data of transfer encoding is read propery, + after file data is received. + * src/AbstractCommand.cc + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/FtpDownloadCommand.cc + * src/FtpDownloadCommand.h + * src/HttpDownloadCommand.cc + * src/HttpDownloadCommand.h + +2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + After change request to faster one, wait at least 10 seconds. + * src/FileEntry.cc + * src/FileEntry.h + +2010-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed ChunkedDecoder. It does not read trailer and final CRLF. + * src/ChunkedDecoder.cc + * src/ChunkedDecoder.h + * test/ChunkedDecoderTest.cc + +2010-07-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unusable typedefs + * src/FileAllocationIterator.h + * src/MultiDiskAdaptor.cc + * src/MultiFileAllocationIterator.h + * src/SingleFileAllocationIterator.h + +2010-07-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that DownloadContext::resetDownloadStartTime() never + be called in downloads whose total length is unknown. This causes + avg speed in Download Results is always 0 for these downloads. + * src/RequestGroup.cc + * src/BtFileAllocationEntry.cc + * src/StreamFileAllocationEntry.cc + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that AdaptiveFileAllocationIterator::finished() + returns false even if offset_ >= totalLength_. This causes + ftruncate error for seeding torrents. + * src/AdaptiveFileAllocationIterator.cc + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Send each CWD component of FTP URI in separate CWD command as + described in RFC1738. + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * test/FtpConnectionTest.cc + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented that aria2 supports Chromium/Google Chrom cookies file. + * doc/aria2c.1.txt + * README + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2 cannot handle %2F in FTP URI properly. + If directory component starts with %2F which percent-encode of + '/', client should issue CWD to absolute path, but aria2 does not + do that. It just issues relative path and download fails. + * src/FtpConnection.cc + * test/FtpConnectionTest.cc + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Increased DOMAIN_EVICTION_TRIGGER to 2000 + * src/CookieStorage.cc + * test/CookieStorageTest.cc + +2010-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Chromium/Google Chrome Cookies file support. Thanks to + gotrunks for original patch. + * src/CookieStorage.cc + * src/Makefile.am + * src/Sqlite3CookieParser.cc + * src/Sqlite3CookieParser.h + * src/Sqlite3CookieParserImpl.cc + * src/Sqlite3CookieParserImpl.h + * src/Sqlite3MozCookieParser.cc: Removed + * src/Sqlite3MozCookieParser.h: Removed + * test/Makefile.am + * test/Sqlite3CookieParserTest.cc + * test/Sqlite3MozCookieParserTest.cc: Removed + * test/chromium_cookies.sqlite + +2010-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + When allocating disk space, for Linux system with fallocate() + system call, first check file system supports fallocate. This + just run fallocate with small chunk and see it succeeds or fails. + If it succeeds, use fallocate() to allocate entire file otherwise + fall back to traditional slower method: writing zeros. This + behavior is enabled in --file-allocation=prealloc, so this is + enabled by default for most modern Linux. + * configure.ac + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/AdaptiveFileAllocationIterator.cc + * src/AdaptiveFileAllocationIterator.h + * src/DefaultPieceStorage.cc + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/FallocFileAllocationIterator.cc + * src/Makefile.am + * src/MultiFileAllocationIterator.cc + * src/OptionHandlerFactory.cc + * test/FallocFileAllocationIteratorTest.cc + * test/Makefile.am + +2010-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.5 + +2010-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without ssl library. + * test/Metalink2RequestGroupTest.cc + +2010-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning without ssl library. + * src/DownloadEngineFactory.cc + +2010-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.5 + * configure.ac + * doc/aria2c.1.txt + +2010-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for aria2.addUri + * doc/aria2c.1.txt + +2010-06-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't set previousUri_ to "" on redirect. + * src/Request.cc: redirectUri() + +2010-06-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return given hostname if hostname is numeric host. + * src/AbstractCommand.cc: resolveHostname() + +2010-06-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed Peer::updateSeeder() to reflect current bitfield. + * src/Peer.cc + +2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/util.cc + +2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused getOverflow(). Added assertion in + PiecedSegment::updateWrittenLength() to check updated written + length does not exceed piece length. + * src/GrowSegment.h + * src/PiecedSegment.cc + * src/PiecedSegment.h + * src/Segment.h + * test/SegmentTest.cc + +2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return null if written length > 0 even if SegmentEntry->cuid + equals given cuid. + * src/SegmentMan.cc + +2010-06-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning without bittorrent support + * src/RequestGroup.cc + +2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Run whole checksum check when download file name and size are + determined and download is already completed. Related to r2221. + Guarded ENABLE_MESSAGE_DIGEST where necessary. + * src/AbstractCommand.cc + * src/RequestGroup.cc + * src/message.h + +2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made log and log-level option modifiable using + aria2.changeGlobalOption. This means you can dynamically start or + stop logging and change log file and log level. + * doc/aria2c.1.txt + * src/LogFactory.cc + * src/LogFactory.h + * src/LogFormatter.h + * src/Logger.cc + * src/Logger.h + * src/Makefile.am + * src/Makefile.in + * src/SimpleLogFormatter.cc + * src/SimpleLogFormatter.h + * src/SimpleLogger.cc: Removed + * src/SimpleLogger.h: Removed + * src/XmlRpcMethod.cc + * src/XmlRpcMethodImpl.cc + * src/main.cc + +2010-06-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Request ut_metadata in end-game mode(in other words, more + aggresively) + * src/HandshakeExtensionMessage.cc + * src/Peer.cc + * src/Peer.h + * src/PeerSessionResource.cc + * src/PeerSessionResource.h + * src/UTMetadataRequestFactory.cc + * test/UTMetadataRequestFactoryTest.cc + +2010-06-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing parameter to log message. + * src/UTMetadataRequestFactory.cc + +2010-06-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made test code not use /tmp + * test/CookieStorageTest.cc + * test/DirectDiskAdaptorTest.cc + * test/FallocFileAllocationIteratorTest.cc + * test/FileEntryTest.cc + * test/FileTest.cc + * test/GZipDecoderTest.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/RequestGroupManTest.cc + * test/SignatureTest.cc + * test/SingleFileAllocationIteratorTest.cc + * test/UtilTest.cc + +2010-06-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed that bug that when aria2 is stopped before whole hash + check(not piece hash check) is done, aria2 reports its file is + downloaded successfully. It should report the download is + in-progress and next invocation of aria2 should check hash. + * src/ChecksumCheckIntegrityEntry.cc + * src/DownloadCommand.cc + * src/DownloadContext.cc + * src/DownloadContext.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + +2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/PiecedSegment.cc + +2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that corrups file if segment returned from + SegmetnMan::getCleanSegmentIfOwnerIsIdle() has writtenLength > 0. + * src/DownloadCommand.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * test/SegmentManTest.cc + +2010-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed naming standards for class member variable: now it looks + like var_ instead of _var. + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + When wrong type DHT reply message is received for a transaction + ID, assume the message timed out. + * src/DHTNodeLookupTaskCallback.cc + * src/DHTNodeLookupTaskCallback.h + * src/DHTPeerLookupTaskCallback.cc + * src/DHTPeerLookupTaskCallback.h + * src/DHTPingReplyMessageCallback.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed PeerListProcessor. Its functionality is now moved to + bittorrent_helper.h + * src/DefaultBtAnnounce.cc + * src/Makefile.am + * src/PeerListProcessor.h: Removed + * src/UTPexExtensionMessage.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/Makefile.am + * test/PeerListProcessorTest.cc: Removed + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included util.h + * src/LpdReceiveMessageCommand.cc + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved non-trivial functions to *.cc file + * src/Logger.cc + * src/Logger.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added separete *.cc files for exception classes. + * src/DlAbortEx.cc + * src/DlAbortEx.h + * src/DlRetryEx.cc + * src/DlRetryEx.h + * src/DownloadFailureException.cc + * src/DownloadFailureException.h + * src/FatalException.cc + * src/FatalException.h + * src/Makefile.am + * src/RecoverableException.cc + * src/RecoverableException.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved non-trivial functions to *.cc file + * src/DownloadContext.cc + * src/DownloadContext.h + * src/FileEntry.cc + * src/FileEntry.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused contants + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use auto_delete_container to delete created Command when exception + is thrown rather than deleting them in catch block. + * src/AbstractCommand.cc + * src/CheckIntegrityCommand.cc + * src/DHTSetup.cc + * src/FileAllocationCommand.cc + * src/TrackerWatcherCommand.cc + * src/a2functional.h + +2010-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed BDE and bencode + +2010-06-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Introduced ValueBase class, which is a replacement of BDE. In + this change ValueBase is used instead of BDE except DHT messages, + UTMetadata messages and XML-RPC. They'll be replaced in the later + commits. DownloadContext::_attrs is now ContextAttribute rather + than BDE. + * src/ActivePeerConnectionCommand.cc + * src/AnnounceList.cc + * src/AnnounceList.h + * src/BtDependency.cc + * src/BtRegistry.cc + * src/BtSetup.cc + * src/ConsoleStatCalc.cc + * src/ContextAttribute.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtInteractive.cc + * src/DownloadContext.cc + * src/DownloadContext.h + * src/HandshakeExtensionMessage.cc + * src/InitiateConnectionCommand.cc + * src/LpdReceiveMessageCommand.cc + * src/MSEHandshake.cc + * src/Makefile.am + * src/Makefile.in + * src/PeerInteractionCommand.cc + * src/PeerListProcessor.h + * src/ProtocolDetector.cc + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/TorrentAttribute.h + * src/TrackerWatcherCommand.cc + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataPostDownloadHandler.cc + * src/UTMetadataRequestExtensionMessage.cc + * src/ValueBase.cc + * src/ValueBase.h + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/bencode2.cc + * src/bencode2.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/magnet.cc + * src/magnet.h + * test/AnnounceListTest.cc + * test/Bencode2Test.cc + * test/BencodeTest.cc + * test/BittorrentHelperTest.cc + * test/BtDependencyTest.cc + * test/BtRegistryTest.cc + * test/DefaultBtAnnounceTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/MSEHandshakeTest.cc + * test/MagnetTest.cc + * test/Makefile.am + * test/Makefile.in + * test/RequestGroupManTest.cc + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataPostDownloadHandlerTest.cc + * test/UTMetadataRequestExtensionMessageTest.cc + * test/ValueBaseTest.cc + * test/XmlRpcMethodTest.cc + +2010-06-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed assertion error if updateTransferStatFor is called with peer + X before calculateStat() after peer X is added. + * src/DefaultPeerStorage.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten DHTMessageCallback using Visitor pattern. Eliminated + dynamic_pointer_cast. + * src/DHTMessageCallbackImpl.cc: Removed + * src/DHTMessageReceiver.cc + * src/DHTAbstractNodeLookupTask.h + * src/DHTAnnouncePeerReplyMessage.h + * src/DHTReplaceNodeTask.h + * src/DHTFindNodeReplyMessage.cc + * src/DHTGetPeersReplyMessage.h + * src/DHTPeerLookupTask.h + * src/DHTMessageCallbackImpl.h: Removed + * src/DHTMessageFactory.h + * src/DHTNodeLookupTaskCallback.h + * src/DHTMessageTracker.h + * src/DHTMessageCallbackListener.h: Removed + * src/DHTGetPeersReplyMessage.cc + * src/DHTMessageCallback.h + * src/DHTAnnouncePeerReplyMessage.cc + * src/DHTNodeLookupTask.h + * src/DHTReplaceNodeTask.cc + * src/DHTPeerLookupTaskCallback.cc + * src/DHTMessageTracker.cc + * src/DHTPingReplyMessage.cc + * src/DHTPingTask.cc + * src/DHTMessageFactoryImpl.h + * src/Makefile.am + * src/DHTNodeLookupTask.cc + * src/DHTPeerLookupTaskCallback.h + * src/DHTPeerLookupTask.cc + * src/DHTMessageReceiver.h + * src/DHTMessageFactoryImpl.cc + * src/DHTResponseMessage.h + * src/DHTFindNodeReplyMessage.h + * src/DHTPingReplyMessageCallback.h + * src/Makefile.in + * src/DHTBucketRefreshTask.cc + * src/DHTNodeLookupTaskCallback.cc + * src/DHTPingTask.h + * src/DHTPingReplyMessage.h + * src/DHTAbstractNodeLookupTask.cc: Removed + * test/DHTMessageTrackerTest.cc + * test/DHTPingMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/MockDHTMessage.h + * test/MockDHTMessageFactory.h + * test/DHTFindNodeMessageTest.cc + * test/MockDHTMessageCallback.h + * test/DHTAnnouncePeerMessageTest.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced dynamic_pointer_cast with static_pointer_cast + * src/DHTSetup.cc + * src/DefaultBtMessageReceiver.cc + * src/SharedHandle.h + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted changes which deleted peerConnection from + DefaultBtInteractive. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/PeerInteractionCommand.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten DHTRegistry + * src/BtSetup.cc + * src/DHTRegistry.cc + * src/DHTRegistry.h + * src/DHTSetup.cc + * src/PeerInteractionCommand.cc + * src/RequestGroup.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables of XmlRpcResponse + * src/XmlRpcMethodImpl.cc + * src/XmlRpcResponse.cc + * src/XmlRpcResponse.h + * test/XmlRpcMethodTest.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/HttpServerBodyCommand.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/XmlRpcRequest.h + * test/XmlRpcMethodTest.cc + * test/XmlRpcRequestProcessorTest.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made DownloadResult struct + * src/DownloadResult.h + * src/RequestGroup.h + * src/RequestGroupMan.h + * src/XmlRpcMethodImpl.h + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made DHTMessageEntry struct + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageDispatcherImpl.h + * src/DHTMessageEntry.cc + * src/DHTMessageEntry.h + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made DHTNodeLookupEntry struct + * src/DHTAbstractNodeLookupTask.cc + * src/DHTIDCloser.h + * src/DHTNodeLookupEntry.cc + * src/DHTNodeLookupEntry.h + * src/DHTPeerLookupTask.cc + * test/DHTIDCloserTest.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/ActivePeerConnectionCommand.cc + * src/BtLeecherStateChoke.cc + * src/BtPieceMessage.cc + * src/BtPortMessage.cc + * src/BtSeederStateChoke.cc + * src/DHTGetPeersReplyMessage.cc + * src/DefaultBtInteractive.cc + * src/DefaultPeerStorage.cc + * src/HandshakeExtensionMessage.cc + * src/LpdReceiveMessageCommand.cc + * src/Peer.cc + * src/Peer.h + * src/PeerAbstractCommand.cc + * src/PeerInitiateConnectionCommand.cc + * src/PeerListenCommand.cc + * src/SimpleBtMessage.cc + * src/UTPexExtensionMessage.cc + * src/XmlRpcMethodImpl.cc + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTPeerAnnounceEntryTest.cc + * test/DHTPeerAnnounceStorageTest.cc + * test/DefaultPeerStorageTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/LpdMessageReceiverTest.cc + * test/PeerListProcessorTest.cc + * test/PeerTest.cc + * test/UTPexExtensionMessageTest.cc + +2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made DHTNode::getIPAddress() return const reference. + * src/DHTNode.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/SocketCore.cc + * src/SocketCore.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made public member variable in Metalinker private + * src/MetalinkParserController.cc + * src/Metalinker.cc + * src/Metalinker.h + * test/MetalinkParserControllerTest.cc + * test/MetalinkProcessorTest.cc + * test/MetalinkerTest.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/SharedHandle.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/messageDigest.cc + * src/messageDigest.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. + * src/XmlRpcMethod.h + * src/XmlRpcMethodImpl.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataExtensionMessage.h + * src/UTMetadataRejectExtensionMessage.cc + * src/UTMetadataRequestExtensionMessage.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/TimeSeedCriteria.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/TimeA2.cc + * src/TimeA2.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/SpeedCalc.cc + * src/SpeedCalc.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables in SegmentMan + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * src/XmlRpcMethodImpl.cc + * test/BtDependencyTest.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/RequestSlot.cc + * src/RequestSlot.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/Range.cc + * src/Range.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/Piece.cc + * src/Piece.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/PeerStat.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/PeerConnection.cc + * src/PeerConnection.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/Option.cc + * src/Option.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/Netrc.cc + * src/Netrc.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/LogFactory.cc + * src/LogFactory.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/HttpResponse.cc + * src/HttpResponse.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/HttpRequest.cc + * src/HttpRequest.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/HttpHeader.cc + * src/HttpHeader.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. Removed unused member variable. + * src/AbstractProxyRequestCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpConnection.cc + * src/HttpConnection.h + * src/HttpInitiateConnectionCommand.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed HandleRegistry + * src/HandleRegistry.h + * src/Makefile.am + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/FtpConnection.cc + * src/FtpConnection.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/FileEntry.cc + * src/FileEntry.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/File.cc + * src/File.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/BtPostDownloadHandler.cc + * src/DownloadHandler.h + * src/MetalinkPostDownloadHandler.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/DownloadEngine.cc + * src/DownloadEngine.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. Removed unused member variable. + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/RequestGroup.cc + * test/DefaultPeerStorageTest.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. Removed unused member variable. + * src/DefaultBtRequestFactory.cc + * src/DefaultBtRequestFactory.h + * src/PeerInteractionCommand.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. Removed unused member variables. + * src/DefaultBtMessageReceiver.cc + * src/DefaultBtMessageReceiver.h + * src/PeerInteractionCommand.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/DefaultBtMessageFactory.cc + * src/DefaultBtMessageFactory.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables. Removed member variable peerConnection. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/PeerInteractionCommand.cc + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/DHTAbstractNodeLookupTask.cc + * src/DHTAbstractNodeLookupTask.h + * src/DHTAbstractTask.h + * src/DHTBucketRefreshTask.cc + * src/DHTNodeLookupTask.cc + * src/DHTNodeLookupTask.h + * src/DHTPeerLookupTask.cc + * src/DHTPeerLookupTask.h + * src/DHTPingTask.cc + * src/DHTPingTask.h + * src/DHTReplaceNodeTask.cc + * src/DHTReplaceNodeTask.h + +2010-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/DHTAbstractMessage.cc + * src/DHTAbstractMessage.h + * 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.h + * 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 + * test/MockDHTMessage.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused member variable uuid and uuidGen + * src/Command.cc + * src/Command.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/ByteArrayDiskWriter.cc + * src/ByteArrayDiskWriter.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/BtRuntime.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessage.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/BtBitfieldMessageValidator.h + * src/BtHandshakeMessageValidator.h + * src/BtPieceMessageValidator.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variables + * src/BtAbortOutstandingRequestEvent.h + * src/BtCancelSendingPieceEvent.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variable + * src/BitfieldMan.cc + * src/BitfieldMan.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variable + * src/AsyncNameResolver.cc + * src/AsyncNameResolver.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed member variable + * src/AnnounceList.cc + * src/AnnounceList.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/DirectDiskAdaptor.cc + * src/DirectDiskAdaptor.h + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/MultiFileAllocationIterator.cc + * src/MultiFileAllocationIterator.h + * test/BtBitfieldMessageTest.cc + * test/BtHaveAllMessageTest.cc + * test/BtHaveMessageTest.cc + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AbstractAuthResolver.h + * src/DefaultAuthResolver.cc + * src/DefaultAuthResolver.h + * src/NetrcAuthResolver.cc + * src/NetrcAuthResolver.h + +2010-06-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/BtAllowedFastMessage.cc + * src/BtAllowedFastMessage.h + * src/BtBitfieldMessage.cc + * src/BtBitfieldMessage.h + * src/BtCancelMessage.cc + * src/BtCancelMessage.h + * src/BtChokeMessage.cc + * src/BtChokeMessage.h + * src/BtExtendedMessage.cc + * src/BtHaveAllMessage.cc + * src/BtHaveAllMessage.h + * src/BtHaveMessage.cc + * src/BtHaveMessage.h + * src/BtHaveNoneMessage.cc + * src/BtHaveNoneMessage.h + * src/BtInterestedMessage.cc + * src/BtInterestedMessage.h + * src/BtNotInterestedMessage.cc + * src/BtNotInterestedMessage.h + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtPortMessage.cc + * src/BtPortMessage.h + * src/BtRejectMessage.cc + * src/BtRejectMessage.h + * src/BtRequestMessage.cc + * src/BtRequestMessage.h + * src/BtUnchokeMessage.cc + * src/BtUnchokeMessage.h + * src/SimpleBtMessage.cc + * src/SimpleBtMessage.h + +2010-06-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/BtCheckIntegrityEntry.cc + * src/BtFileAllocationEntry.cc + * src/CheckIntegrityEntry.cc + * src/CheckIntegrityEntry.h + * src/ChecksumCheckIntegrityEntry.cc + * src/FileAllocationEntry.cc + * src/PieceHashCheckIntegrityEntry.cc + * src/RequestGroupEntry.h + * src/StreamCheckIntegrityEntry.cc + * src/StreamFileAllocationEntry.cc + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/CheckIntegrityDispatcherCommand.cc + * src/DHTEntryPointNameResolveCommand.h + * src/DHTInteractionCommand.h + * src/FileAllocationDispatcherCommand.cc + * src/LpdReceiveMessageCommand.h + * src/PeerChokeCommand.cc + * src/PeerChokeCommand.h + * src/PeerListenCommand.cc + * src/PeerListenCommand.h + * src/SeedCheckCommand.cc + * src/SeedCheckCommand.h + * src/SequentialDispatcherCommand.h + * src/SleepCommand.cc + * src/SleepCommand.h + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/CheckIntegrityCommand.cc + * src/FileAllocationCommand.cc + * src/RealtimeCommand.h + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AutoSaveCommand.cc + * src/BtStopDownloadCommand.cc + * src/DHTAutoSaveCommand.cc + * src/DHTBucketRefreshCommand.cc + * src/DHTPeerAnnounceCommand.cc + * src/DHTTokenUpdateCommand.cc + * src/HaveEraseCommand.cc + * src/TimeBasedCommand.h + * src/TimedHaltCommand.cc + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/InitiatorMSEHandshakeCommand.cc + * src/PeerAbstractCommand.cc + * src/PeerAbstractCommand.h + * src/PeerInitiateConnectionCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/AbstractCommand.cc + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variable private. Added accessor funcs. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyRequestCommand.h + * src/AbstractProxyResponseCommand.cc + * src/AbstractProxyResponseCommand.h + * src/CreateRequestCommand.cc + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/FtpDownloadCommand.cc + * src/FtpDownloadCommand.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/FtpTunnelRequestCommand.cc + * src/FtpTunnelResponseCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpProxyRequestCommand.cc + * src/HttpProxyResponseCommand.cc + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/HttpResponseCommand.h + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommand.cc + +2010-06-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made protected member variables of Command private. Added accessor + funcs. + +2010-06-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made public member variables of DownloadEngine private. Added + accessor funcs. + +2010-06-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.4 + +2010-06-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Italian translation. Added Korean translation. + Thanks to all translators. + * LINGUAS + * it.po + * ko.po + +2010-06-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that reading Metalink from pipe fails on older + libxml2. It only accepts "-" as a special keyword to read stdin. + * src/XML2SAXMetalinkProcessor.cc + +2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added log message when cookies are loaded. Added filename to log + message when serializing session. + * src/MultiUrlRequestInfo.cc + +2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Treat SIGHUP and SIGTERM signal as emergency shutdown because they + are usually issued by system or other process. + * src/MultiUrlRequestInfo.cc + +2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use downloadresultcode::IN_PROGRESS for + RequestGroup::SHUTDOWN_SIGNAL. + * src/RequestGroup.cc + +2010-06-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call requestForceHalt() instead of _requestGroupMan->forceHalt(). + * src/DownloadEngine.cc + +2010-06-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Mentioned RFC 5854 in README and man page. + * README + * doc/aria2c.1.txt + +2010-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.4 + * configure.ac + * doc/aria2c.1.txt + +2010-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't throw exception when Metalink document is empty(no file + element). It is a valid Metalink document anyway. + * src/MetalinkHelper.cc + * src/download_helper.cc + +2010-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed double memory free when Exception raised from + AbstractCommand::prepareForNextAction() called by + HttpResponseCommand::handleDefaultEncoding(). + * src/AbstractCommand.cc + * src/HttpResponseCommand.cc + +2010-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added _logger->info() guard + * src/IteratableChunkChecksumValidator.cc + +2010-05-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that feeding Metalink XML via pipe (-M- option) does + not work when aria2 is built with expat. Fixed the bug that when + Metalink XML is fed via pipe and --save-session is used, entry + "/dev/stdin" is saved in session file. + * src/ExpatMetalinkProcessor.cc + * src/ExpatMetalinkProcessor.h + * src/Metalink2RequestGroup.cc + +2010-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/aria2c.1.txt + +2010-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added totalLength, completedLength, uploadLength, bitfield, + downloadSpeed, uploadSpeed, infoHash, numSeeders, pieceLength, + numPieces, connections and dir to the response of + aria2.tellStopped XML-RPC method. aria2.tellWaiting now always + returns numSeeders for BitTorrent download. + * src/DownloadResult.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2010-05-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that connection pooling does not take into account + proxy. This means that when connection A via proxy X is pooled, + it will be wrongly reused in the download using proxy Y. + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + +2010-05-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that FTP download may fail when control connection + is reused. This happens because FTP server can offer different + root directory for different account. If pooled connections has + different root directory, then download will fail. + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + +2010-05-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed DownloadResult's ctor because it has many args. + * src/DownloadResult.h + * src/RequestGroup.cc + * test/XmlRpcMethodTest.cc + +2010-05-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup. + * src/RequestGroupMan.cc + * src/UTMetadataPostDownloadHandler.cc + * src/XmlRpcMethodImpl.cc + +2010-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Store both whole checksum and piece hash in metalink file. + Dispatch whole checksum verification only when piece hash is not + set. + * src/DownloadCommand.cc + * src/Metalink2RequestGroup.cc + * test/Metalink2RequestGroupTest.cc + +2010-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Left only IANA hash function textual name in messageDigest.cc. + Assign only IANA hash function textual name to Checksum and + ChunkChecksum. Fixed the value of MessageDigestContext::MD5. + * src/Checksum.h + * src/MetalinkParserController.cc + * src/messageDigest.cc + * src/messageDigest.h + * test/IteratableChecksumValidatorTest.cc + * test/IteratableChunkChecksumValidatorTest.cc + * test/MessageDigestHelperTest.cc + * test/Metalink2RequestGroupTest.cc + * test/MetalinkProcessorTest.cc + +2010-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo in log message + * src/AbstractCommand.cc + +2010-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.3 + +2010-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return const reference. + * src/DefaultPieceStorage.h + * src/DownloadContext.h + * src/FeatureConfig.cc + * src/FeatureConfig.h + * src/OptionParser.cc + * src/OptionParser.h + * src/SimpleRandomizer.cc + * src/SimpleRandomizer.h + +2010-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.3. + * configure.ac + +2010-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return const reference. + * src/LpdMessageReceiver.h + * src/LpdReceiveMessageCommand.h + +2010-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed useless pathJoin + * src/MetalinkParserController.cc + +2010-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that name attribute of file element in Metalink file + is not properly sanitized. + * src/Metalink2RequestGroup.cc + * src/MetalinkParserController.cc + * test/Makefile.am + * test/Metalink2RequestGroupTest.cc + * test/metalink4-dosdirtraversal.xml + +2010-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that if filename in Content-Disposition header + includes ';', aria2 cuts filename after ';'. + * src/util.cc + * test/UtilTest.cc + +2010-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.2 + +2010-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning on opensolaris. + * src/StringFormat.h + * src/XORCloser.h + +2010-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * test/array_funTest.cc + +2010-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed segmentation fault when running unit tests on opensolaris. + * src/SocketCore.cc + * src/bittorrent_helper.cc + +2010-04-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian translation. Thanks to all translators. + * po/ru.po + +2010-04-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print warning when trying to add file descriptor >= FD_SET or < 0 + to fd_set for other than MinGW32 build. For MinGW32 build, print + warning when trying to add file descriptor to fd_set when it + already contains FD_SET file descriptors. + * src/SelectEventPoll.cc + * src/SocketCore.cc + +2010-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for --event-poll option. + * doc/aria2c.1.txt + +2010-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.2 + * configure.ac + * doc/aria2c.1.txt + +2010-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined FD_SETSIZE 1024 for MinGW32. + * src/a2netcompat.h + +2010-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on the system which lacks poll() + * src/DownloadEngineFactory.cc + +2010-04-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In SocketCore::isReadable()/isWritable(), use poll() if it is + available otherwise use select(). Removed epoll/port from there + because poll() does the good enough job for single socket event + notification. + * src/SocketCore.cc + * src/SocketCore.h + * src/main.cc + +2010-04-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added kqueue support. We use poll() for + SocketCore::isReadable()/isWritable() when kqueue is used. + * configure.ac + * src/DownloadEngineFactory.cc + * src/KqueueEventPoll.cc + * src/KqueueEventPoll.h + * src/Makefile.am + * src/Makefile.in + * src/OptionHandlerFactory.cc + * src/main.cc + * src/prefs.cc + * src/prefs.h + +2010-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing timespec.h to SRCS + * src/Makefile.am + +2010-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2.unpause fails with -s1. + * src/FileEntry.cc + * src/XmlRpcMethodImpl.cc + +2010-04-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing #ifdef HAVE_PORT_ASSOCIATE + * src/DownloadEngineFactory.cc + +2010-04-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added opensolaris port_associate() support. + * src/DownloadEngineFactory.cc + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/PortEventPoll.cc + * src/PortEventPoll.h + * src/SocketCore.cc + * src/SocketCore.h + * src/configure.ac + * src/main.cc + * src/prefs.cc + * src/prefs.h + +2010-04-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that _e is passed where e should be passed. + * src/HttpListenCommand.cc + +2010-04-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Increased _epEvents size if necessary. + * src/EpollEventPoll.cc + * src/EpollEventPoll.h + +2010-04-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed EventRType template parameter + * src/EpollEventPoll.cc + * src/EpollEventPoll.h + * src/Event.h + * src/PollEventPoll.cc + * src/PollEventPoll.h + +2010-04-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use Event in EpollEventPoll + * src/EpollEventPoll.cc + * src/EpollEventPoll.h + +2010-04-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Externalized Event, CommandEvent, ADNSEvent, SocketEntry and + AsyncNameResolverEntry class. + * src/Event.h + * src/Makefile.am + * src/PollEventPoll.cc + * src/PollEventPoll.h + +2010-04-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Supported poll() for socket event notification. --event-poll can + take value "poll". Fixed the bug that timeout for + SocketCore::isReadable()/isWritable() is ignored when epoll is + used. + * src/OptionHandlerFactory.cc + * src/a2io.h + * src/prefs.h + * src/SocketCore.h + * src/Makefile.am + * src/main.cc + * src/PollEventPoll.h + * src/SocketCore.cc + * src/DownloadEngineFactory.cc + * src/PollEventPoll.cc + * src/prefs.cc + * configure.ac + +2010-04-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted previous change to DownloadCommand.cc with additional + commentary. + * src/DownloadCommand.cc + +2010-04-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with openssl 1.1.0 and mingw32. + * src/AsyncNameResolver.cc + * src/LogFactory.cc + * src/Logger.cc + * src/Logger.h + * src/SocketCore.cc + * src/SocketCore.h + * src/a2netcompat.h + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.1 + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.0 + * doc/aria2c.1.txt + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian, Russian, Simplified Chinese, German and Greek + translation. Thanks to all translators. + * po/de.po + * po/el.po + * po/ru.po + * po/uk.po + * po/zh_CN.po + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added AC_SEARCH_LIBS for inet_aton on opensolaris. opensolaris + needs -lnsl for inet_aton. + * configure.ac + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.pause, aria2.forcePause, aria2.pauseAll, + aria2.forcePauseAll, aria2.unpause, aria2.unpauseAll XML-RPC + method to aria2rpc + * doc/xmlrpc/aria2rpc + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use elapsed time between two mach_absolute_time() calls. + Fixed compile error in Mac OS X. + * src/clock_gettime_osx.cc + * src/timespec.h + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Implemented clock_gettime() using mach_absolute_time in Mac OS X. + * configure.ac + * src/Makefile.am + * src/a2time.h + * src/clock_gettime_osx.cc + * src/clock_gettime_osx.h + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Implemented clock_gettime() using timeGetTime in mingw. + * configure.ac + * src/Makefile.am + * src/a2time.h + * src/clock_gettime_mingw.cc + * src/clock_gettime_mingw.h + * src/timespec.h + * test/Makefile.am + +2010-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Ensure that std::ofstream is destroyed before renaming. + * src/SessionSerializer.cc + * src/util.cc + +2010-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that user specified path is escaped using + util::escapePath() where it should not. + * src/DownloadContext.cc + * src/DownloadContext.h + +2010-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Hold reference to PieceStorage when paused in order to provide + progress information via XML-RPC. + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined struct timespec if it is not available. + * src/a2time.h + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing serialize_session.meta4 to EXTRA_DIST + * test/Makefile.am + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without BitTorrent support. + * src/Metalink2RequestGroup.cc + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on Mac OS X + * src/TimerA2.h + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added warning for the system which lacks clock_gettime with + CLOCK_MONOTONIC. + * src/MultiUrlRequestInfo.cc + * src/TimerA2.cc + * src/TimerA2.h + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed redundant method call for DownloadEngine. + * src/DownloadCommand.cc + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that hash check hangs when aria2.pause is issued + while aria2 is checking piece hashes. Fixed the bug that the + download is paused after file allocation completion even if + aria2.pause is issued during file allocation. + * src/CheckIntegrityCommand.cc + * src/FileAllocationCommand.cc + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added nsl to search-libs for getaddrinfo on opensolaris + * configure.ac + +2010-04-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on opensolaris + * configure.ac + * src/Logger.h + * src/GZipEncoder.h + +2010-04-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.pauseAll, aria2.forcePauseAll and aria2.unpauseAll + XML-RPC method. + * doc/aria2c.1.txt + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2010-04-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.forcePause XML-RPC command. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2010-04-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use global::wallclock + * src/DHTBucket.cc + * src/DHTMessageTrackerEntry.cc + * src/DHTMessageTrackerEntry.h + * src/DefaultBtInteractive.cc + * src/Peer.cc + * src/PeerAbstractCommand.cc + * src/PeerStat.h + * src/RequestSlot.h + * src/TimeBasedCommand.cc + +2010-04-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use clock_gettime(CLOCK_MONOTONIC, ...) if it is available and + usable to prevent from aria2 from being affected by system time + change. + +2010-04-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.pause and aria2.unpause XML-RPC method. aria2.pause + pauses the download denoted by gid. gid is of type string. The + status of paused download becomes "paused" and the download is + placed on the first position of waiting queue. As long as the + status is "paused", the download is not started. To change status + to "waiting", use aria2.unpause method. This method returns GID of + paused download. aria2.unpause changes the status of the download + denoted by gid from "paused" to "waiting". This makes the download + eligible to restart. gid is of type string. This method returns + GID of unpaused download. + * doc/aria2c.1.txt + * src/DownloadContext.cc + * src/FileEntry.cc + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-04-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --save-session=FILE option. This option saves + error/unfinished downloads to FILE on exit. You can pass this + output file to aria2c with -i option on restart. Please note that + downloads added by aria2.addTorrent and aria2.addMetalink XML-RPC + method are not saved. + * src/BtPostDownloadHandler.cc + * src/DownloadResult.h + * src/Makefile.am + * src/MetadataInfo.cc + * src/MetadataInfo.h + * src/Metalink2RequestGroup.cc + * src/MetalinkPostDownloadHandler.cc + * src/MultiUrlRequestInfo.cc + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/SessionSerializer.cc + * src/SessionSerializer.h + * src/UTMetadataPostDownloadHandler.cc + * src/download_helper.cc + * src/download_helper.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/Makefile.am + * test/SessionSerializerTest.cc + * test/XmlRpcMethodTest.cc + * test/serialize_session.meta4 + +2010-04-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that FTP data connection is not established via + proxy when --ftp-proxy is defined and --ftp-pasv=true and + --proxy-method=tunnel. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/InitiateConnectionCommand.cc + +2010-04-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-04-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.1 + * configure.ac + +2010-04-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added shutdown and forceShutdown to aria2rpc + * doc/xmlrpc/aria2rpc + +2010-04-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed error message. + * src/XmlRpcMethod.cc + +2010-04-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bt-tracker-timeout, bt-tracker-connect-timeout, + always-resume, max-resume-failure-tries and http-accept-gzip to -i + list options. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/download_helper.cc + +2010-04-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that web-seed URI is not percent-encoded. + * src/a2functional.h + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + * test/url-list-multiFile.torrent + * test/url-list-singleFileEndsWithSlash.torrent + +2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.shutdown and aria2.forceShutdown XML-RPC method. + These methods, as their name implies, shutdown aria2. These + methods are useful for Windows because it lacks signal mechanism. + * doc/aria2c.1.txt + * src/TimedHaltCommand.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added forceHalt argument to TimedHaltCommand. + Added requestForceHalt() to DownloadEngine. + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/TimedHaltCommand.cc + * src/TimedHaltCommand.h + +2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Possible fix for chunked encoding with Content-Length. + * src/HttpResponseCommand.cc + +2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't send "Accept: default, gzip" by default. This is because + some server responds with "Content-Encoding: gzip" for files which + itself is gzipped file and aria2 inflates them. This is a problem + if user don't want to inflate the file. Apparently this is server + configuration error, but I cannot do anything about this. So turn + this off. Added --http-accept-gzip option. If true is given to + this option, aria2 sends 'Accept: deflate, gzip' request header + and inflates response if remote server responds with + 'Content-Encoding: gzip' or 'Content-Encoding: deflate'. This + indicates we removed extension tgz hack in order not to inflate + files with tgz extensions. + * doc/aria2c.1.txt + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/HttpRequestTest.cc + +2010-04-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made aria2 not send + "application/metalink4+xml,application/metalink+xml" in Accept + header for web-seeding URIs and tracker request. + * src/Metalink2RequestGroup.cc + * src/TrackerWatcherCommand.cc + * src/download_helper.cc + * src/util.cc + * src/util.h + +2010-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added download_helper.{cc,h} to SRCS + * src/Makefile.am + * test/Makefile.am + +2010-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --dht-message-timeout option. + * doc/aria2c.1.txt + * src/DHTConstants.h + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageDispatcherImpl.h + * src/DHTMessageTracker.cc + * src/DHTMessageTracker.h + * src/DHTReplaceNodeTask.h + * src/DHTSetup.cc + * src/DHTTaskFactoryImpl.cc + * src/DHTTaskFactoryImpl.h + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DHTMessageTrackerTest.cc + +2010-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-tracker-connect-timeout and --bt-tracker-timeout + option. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/TrackerWatcherCommand.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented that specifying --seed-time=0 disables seeding after + download completed. + * doc/aria2c.1.txt + +2010-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/BtSetup.cc + +2010-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Drop connection if same Peer ID has been already seen. + * src/DefaultBtInteractive.cc + +2010-03-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that waiting download unintentionally starts when + URIs are added to it using aria2.changeUri XML-RPC method. This + also fixes the bug that causes segmentation fault when adding URIs + to waiting download, which is a regression introduced by the + previous change made to src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.cc + +2010-03-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with g++-4.4 on FreeBSD. + * src/util.h + +2010-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that added URI using aria2.changeUri XML-RPC method + is not used immediately if there is no URIs remaining before + calling aria2.changeUri and the number of connection is less than + the value in -s(or -C for Metalink downloads). + * src/XmlRpcMethodImpl.cc + +2010-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --always-resume and --max-resume-failure-tries option + and exit status 8 in man page. Fixed typo. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + +2010-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --always-resume and --max-resume-failure-tries option. If + --always-resume=false is given, when all given URIs does not + support resume or aria2 encounters N URIs which does not support + resume + (N is the value specified using --max-resume-failure-tries + option), aria2 download file from scratch. The default behavior + is --always-resume=true, which means if all URIs do not support + resume, download fails. I think this is OK because user normally + don't like to see that partially downloaded file is + overwritten(this is particularly true if file size is big). This + option is useful when aria2 is used as download backend and + graceful falling back to overwritten behavior is preferable. + Added exit status value 8, which means download failed because + server did not support resume. + * src/AbstractCommand.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/DownloadResultCode.h + * src/FileEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/SegmentMan.cc + * src/SegmentMan.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DefaultPieceStorageTest.cc + * test/SegmentManTest.cc + +2010-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --remove-control-file option to -i list options. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/download_helper.cc + +2010-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --remove-control-file option. This option removes control + file(*.aria2 file) before download. Using with + --allow-overwrite=true, download always starts from scratch. This + will be useful for users behind proxy server which disables + resume. For such proxy user, -C1 is also recommended for Metalink + downloads to avoid establishing unnecessary connections. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed arrayLength. Defined A2_ARRAY_LEN as macro to calculate + size of array at compile time. + * src/array_fun.h + * test/BitfieldManTest.cc + * test/BtPortMessageTest.cc + * test/DHTRoutingTableDeserializerTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/DownloadHelperTest.cc + * test/LongestSequencePieceSelectorTest.cc + * test/MultiDiskAdaptorTest.cc + * test/OptionParserTest.cc + * test/PriorityPieceSelectorTest.cc + * test/array_funTest.cc + +2010-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added vbegin() and vend() for fixed sized array. + * src/DownloadHandlerConstants.cc + * src/FeatureConfig.cc + * src/OptionHandlerFactory.cc + * src/ServerStat.cc + * src/TimeA2.cc + * src/XmlRpcMethod.cc + * src/array_fun.h + * src/download_helper.cc + * src/messageDigest.cc + * src/util.cc + * test/BittorrentHelperTest.cc + * test/DHTRoutingTableDeserializerTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/DefaultBtAnnounceTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DownloadContextTest.cc + * test/DownloadHelperTest.cc + * test/FeatureConfigTest.cc + * test/FeedbackURISelectorTest.cc + * test/HttpRequestTest.cc + * test/InOrderURISelectorTest.cc + * test/MSEHandshakeTest.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/PriorityPieceSelectorTest.cc + * test/RequestGroupManTest.cc + * test/UtilTest.cc + * test/XmlRpcMethodTest.cc + * test/a2algoTest.cc + * test/array_funTest.cc + +2010-03-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Simplified code using lastByteMask + * src/BitfieldMan.cc + * src/PieceStatMan.cc + +2010-03-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten lastByteMask + * src/bitfield.h + +2010-03-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Redefined the maximum length of buffer used for HTTP header. + * src/HttpHeaderProcessor.cc + +2010-03-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/SleepCommand.cc + +2010-03-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Do exact match if IP address is specified in --no-proxy. + * src/AbstractCommand.cc + +2010-03-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that socket is added to EventPoll object twice. This + is because derived class FtpFinishDownloadCommand adds socket to + EventPoll object while base class AbstractCommand does that + already. + * src/FtpFinishDownloadCommand.cc + * src/FtpFinishDownloadCommand.h + +2010-03-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined gid_t as int64_t. + * src/BtDependency.cc + * src/BtStopDownloadCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/TrackerWatcherCommand.cc + * src/XmlRpcMethodImpl.cc + * src/message.h + * test/XmlRpcMethodTest.cc + +2010-03-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined cuid_t as int64_t. Removed texts containing "CUID#%D" from + translatable texts because it is used in log and debugging + purpose. + * src/AbstractCommand.cc + * src/ActivePeerConnectionCommand.cc + * src/BtPieceMessage.cc + * src/CUIDCounter.h + * src/CheckIntegrityCommand.cc + * src/CheckIntegrityDispatcherCommand.cc + * src/Command.h + * src/CreateRequestCommand.cc + * src/DHTEntryPointNameResolveCommand.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageDispatcher.cc + * src/DownloadCommand.cc + * src/FileAllocationCommand.cc + * src/FileAllocationDispatcherCommand.cc + * src/FtpConnection.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpConnection.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpListenCommand.cc + * src/HttpResponse.cc + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/HttpServerResponseCommand.cc + * src/InitiateConnectionCommand.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/MSEHandshake.cc + * src/PeerAbstractCommand.cc + * src/PeerConnection.cc + * src/PeerInitiateConnectionCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerListenCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/SegmentMan.cc + * src/SimpleBtMessage.cc + * src/TrackerWatcherCommand.cc + * src/message.h + +2010-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use gid_t type for gid. + * src/BtRegistry.cc + * src/BtRegistry.h + * src/DownloadResult.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodImpl.cc + +2010-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use cuid_t type for cuid. + +2010-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added v key in DHT message. aria2's DHT version is independent of + the package version and we defined it as 1 at the moment. It is + defined as DHT_VERSION in src/DHTConstants.h. aria2's DHT version + scheme is "A2"+2bytes DHT version number in network byte order. + * src/DHTAbstractMessage.cc + * src/DHTConstants.h + * src/DHTMessage.cc + * src/DHTMessage.h + * src/DHTMessageFactoryImpl.cc + * src/DHTQueryMessage.cc + * src/DHTResponseMessage.cc + * src/util.h + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTAnnouncePeerReplyMessageTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTPingMessageTest.cc + * test/DHTPingReplyMessageTest.cc + +2010-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that value of numSeeders in aria2.tellStatus XML-RPC + method response is integer, while manual says it is string. When + peer's port is not listening port, set '0' to port in + aria2.getPeers response. + * src/XmlRpcMethodImpl.cc + +2010-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Lines starting "#" in -i list are treated as comments. + Example: + # this is comment + http://example.org/file + http://example.org/file2 + dir=/tmp + # another comment + out=myfile + * doc/aria2c.1.txt + * src/UriListParser.cc + * test/filelist1.txt + +2010-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Accept IPv4 network address with CIDR block in --no-proxy option + and no_proxy environment variable. Current implementation does + not resolve hostname in URI to compare network address. So it is + only effecive if URI has numeric IP addresses. + * doc/aria2c.1.txt + * src/AbstractCommand.cc + * src/OptionHandlerFactory.cc + * src/bitfield.h + * src/usage_text.h + * src/util.cc + * src/util.h + * test/UtilTest.cc + * test/bitfieldTest.cc + +2010-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reduced interval for metadatagetmode to quickly gather metadata. + * src/BtSetup.cc + +2010-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.9.0 + +2010-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * doc/aria2c.1.txt + +2010-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented about Metalink4 and LPD in README + * RADME + +2010-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Few adjustment for timeouts in DHT. DHT message timeout is changed + from 15 to 10. The interval of PeerLookup is first 5 seconds and + it adds another 5 seconds in each retry. + * src/DHTConstants.h + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed log level from error to info for DHT message send error. + * src/DHTMessageDispatcherImpl.cc + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Inspect all xt in magnet to find urn:btih. + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use global option for DHTSetup. + * src/DHTSetup.cc + * src/DHTSetup.h + * src/RequestGroup.cc + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bt-enable-lpt, reuse-uri + and {http,https,ftp,all}-proxy-{user,passwd} options to -i list + options. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/download_helper.cc + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use global option for PREF_LISTEN_PORT and PREF_BT_LPD_INTERFACE. + * src/BtSetup.cc + +2010-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Resurrected --http-proxy-user and --http-proxy-passwd option. + Added --https-proxy-user, --https-proxy-passwd, --ftp-proxy-user, + --ftp-proxy-passwd, --all-proxy-user, --all-proxy-passwd option. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/OptionHandlerTest.cc + +2010-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian and Simplified Chinese translation. Thanks to all + translators. + * po/ru.po + * po/zh_CN.po + +2010-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-03-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + For LPD sockets, bind IN_ADDRANY because binding multicast address + fails under Windows. + * src/LpdMessageReceiver.cc + * test/LpdMessageDispatcherTest.cc + +2010-03-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that error message is not propagated to Exception. + * src/SocketCore.cc + +2010-03-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-lpd-interface option in man page. + * doc/aria2c.1.txt + +2010-03-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.0 + * configure.ac + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that FillRequestGroupCommand is not invoked when + RequestGroupMan::createInitialCommand() creates no Command object. + * src/FillRequestGroupCommand.cc + * src/RequestGroupMan.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added debug logs. + * src/FileEntry.cc + * src/SegmentMan.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unit test error with mingw32 build. + * test/LpdMessageReceiverTest.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated automake-1.11.1 + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error and unit test error without openssl and + gnutls. + * src/MetalinkParserController.cc + * test/MetalinkProcessorTest.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unitest fails if openssl doesn't support sha-256. + * src/MetalinkParserStateV4Impl.cc + * test/MetalinkProcessorTest.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Wait until message arrives(again) + * test/LpdMessageReceiverTest.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing wallclock.h to SRCS. + * src/Makefile.am + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with --disable-bittorrent + * test/Metalink2RequestGroupTest.cc + * test/MetalinkParserControllerTest.cc + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --reuse-uri option. This option has existed quite long, but + been hidden. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/usage_text.h + +2010-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Ignore filename parameter if it contains directory traversal + directives. + * src/util.cc + * test/UtilTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + urldecode -> percentDecode + * src/FtpConnection.cc + * src/FtpNegotiationCommand.cc + * src/HttpResponse.cc + * src/Request.cc + * src/magnet.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + urlencode -> percentEncode, + torrentUrlencode -> torrentPercentEncode + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessageValidator.h + * src/DHTMessageFactoryImpl.cc + * src/DefaultBtAnnounce.cc + * src/HandshakeExtensionMessage.cc + * src/HttpRequest.cc + * src/XmlRpcMethodImpl.cc + * src/bittorrent_helper.cc + * src/util.cc + * src/util.h + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/UTPexExtensionMessageTest.cc + * test/UtilTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that filename is percent encoded where it must be + percent decoded in sendMdtm(). + * src/FtpConnection.cc + * test/FtpConnectionTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + url -> uri in Request class. + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/DefaultBtAnnounce.cc + * src/FeedbackURISelector.cc + * src/FileEntry.cc + * src/FileEntry.h + * src/HttpRequest.h + * src/HttpResponse.cc + * src/InitiateConnectionCommandFactory.cc + * src/Metalink2RequestGroup.cc + * src/OptionHandlerImpl.h + * src/ProtocolDetector.cc + * src/Request.cc + * src/Request.h + * src/XmlRpcMethodImpl.cc + * test/AuthConfigFactoryTest.cc + * test/FtpConnectionTest.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + * test/RequestTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added getServers XML-RPC method. + * doc/aria2c.1.txt + * src/FileEntry.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Pool request when download finished. + * src/DownloadCommand.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made 'fileIndex' parameter in aria2.changeUri XML-RPC method + 1-based. + * doc/aria2c.1.txt + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call RequestGroupMan::requestQueueCheck() when + max-concurrent-downloads option is changed or new downloads are + added/inserted into reserved list. + * src/RequestGroupMan.cc + * src/XmlRpcMethodImpl.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.forceRemove XML-RPC method. + * doc/aria2c.1.txt + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added debug log. + * src/AbstractCommand.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Create CreateRequestCommand to the number of -s/-C when URIs are + added by XML-RPC. + * src/RequestGroup.cc + * src/RequestGroup.h + * src/XmlRpcMethodImpl.cc + +2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added 'status' key to the response of getUri XML-RPC method. + * doc/aria2c.1.txt + * src/XmlRpcMethodImpl.cc + +2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced Time::reset() call with assigning of global::wallclock. + * src/BtLeecherStateChoke.cc + * src/BtSeederStateChoke.cc + * src/PeerSessionResource.cc + * src/RequestSlot.cc + * src/ServerStat.cc + * src/SpeedCalc.cc + +2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added changeUri XML-RPC method. This method removes/adds URIs + dynamically. + * doc/aria2c.1.txt + * src/AbstractCommand.cc + * src/DownloadContext.cc + * src/DownloadContext.h + * src/FileEntry.cc + * src/FileEntry.h + * src/Request.cc + * src/Request.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/FileEntryTest.cc + * test/XmlRpcMethodTest.cc + +2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten copy ctor of RequestSlot to use initialization list. + * src/RequestSlot.h + +2010-03-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Time global::wallclock to cache "current time" to reduce the + call gettimeofday(). Global variables are now in namespace global. + * src/AbstractCommand.cc + * src/ActivePeerConnectionCommand.cc + * src/AdaptiveURISelector.cc + * src/BtLeecherStateChoke.cc + * src/BtLeecherStateChoke.h + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + * src/BtStopDownloadCommand.cc + * src/ConsoleStatCalc.cc + * src/DHTBucket.cc + * src/DHTGetPeersCommand.cc + * src/DHTMessageTrackerEntry.cc + * src/DHTNode.cc + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceStorage.cc + * src/DHTSetup.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/FileEntry.cc + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/HttpServerResponseCommand.cc + * src/LpdMessageDispatcher.cc + * src/MultiUrlRequestInfo.cc + * src/Peer.cc + * src/Peer.h + * src/PeerAbstractCommand.cc + * src/PeerStat.h + * src/RequestSlot.cc + * src/RequestSlot.h + * src/SegmentMan.cc + * src/ServerStatMan.cc + * src/SleepCommand.cc + * src/SpeedCalc.cc + * src/SpeedCalc.h + * src/TimeA2.cc + * src/TimeA2.h + * src/TimeBasedCommand.cc + * src/TimeSeedCriteria.h + * src/UTMetadataRequestTracker.h + * src/UTPexExtensionMessage.cc + * src/wallclock.h + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that util::itos(INT64_MIN) fails. + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed memory leak in SocketBuffer when _bufq is not empty when + SocketBuffer is deleted. Added BufEntry constructor and deleted + static factory functions. + * src/SocketBuffer.cc + * src/SocketBuffer.h + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Only execute RequestGroupMan::fillRequestGroupFromReserver() when + queue maintenance is requested by RequestGroup to avoid to call + the function unnecessarily. + * src/FillRequestGroupCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't use hash for Peer::id. Simple concatenation of ip address + and port is enough. + * src/Peer.cc + * test/PeerTest.cc + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enclosed log of DHTMessage::toString() with Logger::info(). + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageReceiver.cc + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::toHex(). + * src/util.cc + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed SocketBuffer::feedAndSend(). Renamed + SocketBuffer::feedSendBuffer() as SocketBuffer::pushStr(). + * src/FtpConnection.cc + * src/HttpConnection.cc + * src/HttpServer.cc + * src/MSEHandshake.cc + * src/PeerConnection.cc + * src/SocketBuffer.cc + * src/SocketBuffer.h + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused PeerConnection::sendMessage(). Updated doc. + * src/PeerConnection.cc + * src/PeerConnection.h + +2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reduced copying/std::string instantiation in sending/receiving + BitTorrent messages. + * src/BtBitfieldMessage.cc + * src/BtBitfieldMessage.h + * src/BtExtendedMessage.cc + * src/BtExtendedMessage.h + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessage.h + * src/BtKeepAliveMessage.cc + * src/BtKeepAliveMessage.h + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtPortMessage.cc + * src/BtPortMessage.h + * src/BtUnchokeMessage.h + * src/DefaultBtMessageReceiver.cc + * src/IndexBtMessage.cc + * src/IndexBtMessage.h + * src/PeerConnection.cc + * src/PeerConnection.h + * src/RangeBtMessage.cc + * src/RangeBtMessage.h + * src/SimpleBtMessage.cc + * src/SimpleBtMessage.h + * src/SocketBuffer.cc + * src/SocketBuffer.h + * src/ZeroBtMessage.cc + * src/ZeroBtMessage.h + * test/BtAllowedFastMessageTest.cc + * test/BtBitfieldMessageTest.cc + * test/BtCancelMessageTest.cc + * test/BtChokeMessageTest.cc + * test/BtExtendedMessageTest.cc + * test/BtHandshakeMessageTest.cc + * test/BtHaveAllMessageTest.cc + * test/BtHaveMessageTest.cc + * test/BtHaveNoneMessageTest.cc + * test/BtInterestedMessageTest.cc + * test/BtKeepAliveMessageTest.cc + * test/BtNotInterestedMessageTest.cc + * test/BtPieceMessageTest.cc + * test/BtPortMessageTest.cc + * test/BtRejectMessageTest.cc + * test/BtRequestMessageTest.cc + * test/BtSuggestPieceMessageTest.cc + * test/BtUnchokeMessageTest.cc + +2010-03-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten SocketBuffer. Old implementation uses single std::string + to store data and erase sent data, which is costly. New + implementation uses deque to hold each data to avoid to mutate + string. + * src/SocketBuffer.cc + * src/SocketBuffer.h + +2010-03-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused FileEntry::extracted + * src/FileEntry.cc + * src/FileEntry.h + +2010-03-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Wait until data arrives. + * test/LpdMessageReceiverTest.cc + +2010-03-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In Metalink4, if size element contains invalid size, discard whole + document. Added strict hash value check for metalink3/4. + * src/MetalinkParserController.cc + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MetalinkParserStateV3Impl.cc + * src/MetalinkParserStateV4Impl.cc + * src/util.cc + * src/util.h + * test/MetalinkParserControllerTest.cc + * test/MetalinkProcessorTest.cc + * test/metalink4.xml + +2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added strict attribute validation for metalink4. When + specification violation is found, discard the whole document. + * src/ExpatMetalinkProcessor.cc + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MetalinkParserStateV4Impl.cc + * src/XML2SAXMetalinkProcessor.cc + * test/Makefile.am + * test/MetalinkProcessorTest.cc + * test/metalink4-attrs.xml: Removed + * test/metalink4-dirtraversal.xml: Removed + +2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test for Metaurl transaction. + * src/MetalinkParserController.cc + * test/MetalinkParserControllerTest.cc + +2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid costly BtMessage::toString() if info level log is not + required. + * src/DefaultBtInteractive.cc + * src/Logger.h + * src/SimpleBtMessage.cc + +2010-03-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reserved vector elements based on profiler results. + * src/DefaultBtInteractive.cc + * src/DefaultBtProgressInfoFile.cc + +2010-03-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid to calculate end() iterator in each loop. std::deque is + particularly slow. Make sure that recalculate end iterator if + element is erased during loop. + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use vector instead of deque for containers which is used for + mostly read-only purpose. + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * test/Makefile.am + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added metalink4-groupbymetaurl.xml to EXTRA_DIST + * test/Makefile.am + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Small optimization: In updateTransferStatFor(), don't search peer + ID twice. + * src/DefaultPeerStorage.cc + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use vector instead of deque for MetalinkEntry and MetalinkResource + objects. + * src/Metalink2RequestGroup.cc + * src/Metalink2RequestGroup.h + * src/MetalinkEntry.cc + * src/MetalinkEntry.h + * src/MetalinkHelper.cc + * src/MetalinkHelper.h + * src/Metalinker.cc + * src/Metalinker.h + * src/main.cc + * test/MetalinkEntryTest.cc + * test/MetalinkHelperTest.cc + * test/MetalinkProcessorTest.cc + * test/MetalinkerTest.cc + +2010-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that grouped FileEntry objects are not used but + instead all FileEntry objects are used for each metaurl group. + * src/Metalink2RequestGroup.cc + * test/Metalink2RequestGroupTest.cc + * test/metalink4-groupbymetaurl.xml + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use vector instead of deque for ChunkChecksum. + * src/ChunkChecksum.h + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added MessageDigest::isStronger(). Now aria2 selects stronger hash + algorithm in Metalink properly + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + * src/messageDigest.cc + * src/messageDigest.h + * test/MetalinkProcessorTest.cc + * test/metalink4.xml + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced null or control characters in file path with '_'. For + MinGW32 build, additional characters which is not allowed in + Windows kernel are also replaced. util::detectDirTraversal() now + returns true if given string contains null or control characters. + * src/DownloadContext.cc + * src/DownloadContext.h + * src/Metalink2RequestGroup.cc + * src/MetalinkParserController.cc + * src/bittorrent_helper.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Discard metalink:file if its name attribute is empty string. + Removed FileEntry instantiation in + MetalinkParserController::setFileLengthOfEntry() + * src/MetalinkParserController.cc + * src/MetalinkParserStateV3Impl.cc + * src/MetalinkParserStateV4Impl.cc + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Discard torrent file if path data in it contains directory + traversal directives. Discard metalink:file element in Metalink3 + format if its name attribute contains directory traversal + directives. Ignore name attribute of metalink:signature element + in Metalink3 format if it contains directory traversal directives. + * src/MetalinkParserStateV3Impl.cc + * src/bittorrent_helper.cc + * src/message.h + * test/BittorrentHelperTest.cc + * test/Makefile.am + * test/MetalinkProcessorTest.cc + * test/metalink3-dirtraversal.xml + * test/test.xml + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed useless comment + * src/MetalinkParserStateV4Impl.cc + +2010-02-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Supported name attribute of metalink::metaurl element and + multi-file torrent with Metalink4. Files with same metaurl are + grouped and downloaded in one RequestGroup. + * src/BtDependency.cc + * src/FileEntry.h + * src/Metalink2RequestGroup.cc + * src/Metalink2RequestGroup.h + * src/MetalinkEntry.cc + * src/MetalinkEntry.h + * src/MetalinkHelper.cc + * src/MetalinkHelper.h + * src/MetalinkMetaurl.cc + * src/MetalinkMetaurl.h + * src/MetalinkParserController.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + * test/BtDependencyTest.cc + * test/MetalinkHelperTest.cc + +2010-02-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Store name attribute of metalink:metaurl element in MetalinkMetaurl. + * src/MetalinkMetaurl.h + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MetalinkParserStateV4Impl.cc + * test/MetalinkProcessorTest.cc + * test/metalink4-dirtraversal.xml + +2010-02-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added MetalinkMetaurl class. It corresponds to metalink:metaurl + element. + * src/Makefile.am + * src/Metalink2RequestGroup.cc + * src/MetalinkEntry.cc + * src/MetalinkEntry.h + * src/MetalinkMetaurl.cc + * src/MetalinkMetaurl.h + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MetalinkParserStateV4Impl.cc + * src/MetalinkParserStateV4Impl.h + * test/MetalinkProcessorTest.cc + +2010-02-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Metalink4 support. Currently, name attribute of + metalink::metaurl is ignored and multi-file torrent cannot be used + with Metalink4. + * doc/aria2c.1.txt + * src/DownloadHandlerConstants.cc + * src/ExpatMetalinkProcessor.cc + * src/Makefile.am + * src/Metalink2RequestGroup.cc + * src/MetalinkEntry.cc + * src/MetalinkEntry.h + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + * src/MetalinkParserState.h + * src/MetalinkParserStateImpl.cc + * src/MetalinkParserStateImpl.h + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MetalinkParserStateV3Impl.cc + * src/MetalinkParserStateV3Impl.h + * src/MetalinkParserStateV4Impl.cc + * src/MetalinkParserStateV4Impl.h + * src/MetalinkResource.cc + * src/MetalinkResource.h + * src/Metalinker.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/XML2SAXMetalinkProcessor.cc + * src/messageDigest.cc + * src/util.cc + * src/util.h + * test/Makefile.am + * test/MetalinkEntryTest.cc + * test/MetalinkParserControllerTest.cc + * test/MetalinkProcessorTest.cc + * test/MetalinkerTest.cc + * test/UtilTest.cc + * test/metalink4-attrs.xml + * test/metalink4-dirtraversal.xml + * test/metalink4.xml + +2010-02-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aiFlags argument to getInterfaceAddress(). Use + AI_NUMERICHOST to find interface specified using + --bt-lpd-interface option to avoid time-consuming address lookup. + * src/BtSetup.cc + * src/SocketCore.cc + * src/SocketCore.h + +2010-02-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return SharedHandle<LpdMessage>(new LpdMessage()) if received data + is bad in LpdMessageReceiver. + * src/LpdMessage.h + * src/LpdMessageReceiver.cc + * src/LpdMessageReceiver.h + * src/LpdReceiveMessageCommand.cc + * test/LpdMessageReceiverTest.cc + +2010-02-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-lpd-interface option to specify the interface to use + for Local Peer Discovery. LpdMessageDispatcher object now has its + own socket. LpdMessageReceiver's socket is binded to multicast + address to only receive multicast packets. + * src/BtSetup.cc + * src/LpdMessageDispatcher.cc + * src/LpdMessageDispatcher.h + * src/LpdMessageReceiver.cc + * src/LpdMessageReceiver.h + * src/LpdReceiveMessageCommand.cc + * src/LpdReceiveMessageCommand.h + * src/OptionHandlerFactory.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/LpdMessageDispatcherTest.cc + * test/LpdMessageReceiverTest.cc + +2010-02-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Put the portion of code to get interface addresses in + SocketCore::bindAddress() into newly added getInterfaceAddress(). + * src/SocketCore.cc + * src/SocketCore.h + +2010-02-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::parseInt() and parseUInt() + * src/util.cc + +2010-02-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with mingw32 cross compiler. Defined + a2_sockopt_t as void* for the target systems other than mingw32. + * src/SocketCore.cc + * src/a2netcompat.h + +2010-02-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed 'always true' condition + * src/util.cc + +2010-02-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-enable-lpd option in man page. + * doc/aria2c.1.txt + +2010-02-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Local Peer Discovery. It is disabled by default. Use + --bt-enable-lpd to enable the function. + * src/BtConstants.h + * src/BtSetup.cc + * src/LpdDispatchMessageCommand.cc + * src/LpdDispatchMessageCommand.h + * src/LpdMessage.h + * src/LpdMessageDispatcher.cc + * src/LpdMessageDispatcher.h + * src/LpdMessageReceiver.cc + * src/LpdMessageReceiver.h + * src/LpdReceiveMessageCommand.cc + * src/LpdReceiveMessageCommand.h + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/Peer.cc + * src/Peer.h + * src/PeerInteractionCommand.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * src/util.cc + * src/util.h + * test/LpdMessageDispatcherTest.cc + * test/LpdMessageReceiverTest.cc + * test/Makefile.am + +2010-02-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + User-defined custom request headers specified by --header option + now override builtin headers if they have same name. + * src/HttpRequest.cc + * src/HttpRequest.h + * test/HttpRequestTest.cc + +2010-02-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewirtten util::isNumber() + * src/util.cc + +2010-02-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted changes in r1893. setlocale(LC_CTYPE, "") is needed + because without it localized error messages are not printed + correctly. + * src/Platform.cc + +2010-02-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added unit tests for util::getContentDispositionFilename() from + http://greenbytes.de/tech/tc2231/ Fixed the function so that added + tests are passed. + * src/util.cc + * test/UtilTest.cc + +2010-02-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed setlocale() for LC_CTYPE. It may affect isxdigit in + util.cc + * src/Platform.cc + +2010-02-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Support RFC2231 "Parameter Value Character Set and Language + Information" in Content-Disposition header. + * src/HttpResponse.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-02-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print CXXFLAGS + * configure.ac + +2010-02-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Small optimization for A2_WOULDBLOCK(e) + * src/SocketCore.cc + +2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed test file + * test/CookieStorageTest.cc + +2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check both EAGAIN and EWOULDBLOCK + * src/SocketCore.cc + +2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed ret == 0 checking for SSL_read(), SSL_write() and + SSL_peek() because the checks are done in the caller. In + SocketBuffer::send(), throw exception if nothing could be written + and socket error was not EWOULDBLOCK + * src/SocketBuffer.cc + * src/SocketCore.cc + +2010-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed error code handling so that it can handle Winsock2 error + code. + * src/SocketCore.cc + * src/SocketCore.h + +2010-02-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.9.0a + * configure.ac + * doc/aria2c.1.txt + +2010-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2 doesn't handle return value if error + occurred before download begins. + * src/MultiUrlRequestInfo.cc + * src/main.cc + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed SegmentManFactory class. + * src/AbstractSegmentManFactory.h + * src/DefaultSegmentManFactory.cc + * src/DefaultSegmentManFactory.h + * src/Makefile.am + * src/RequestGroup.cc + * src/RequestGroup.h + * src/SegmentManFactory.h + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Destroyed digest context after getting calculated hash. + * src/Piece.cc + * src/Piece.h + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed BitfieldManFactory class. + * src/BitfieldManFactory.cc + * src/BitfieldManFactory.h + * src/DefaultPieceStorage.cc + * src/Makefile.am + * src/PeerSessionResource.cc + * src/Piece.cc + * src/main.cc + * test/DefaultPieceStorageTest.cc + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused methods from BitfieldMan class. Moved + getFirstMissingIndex to bitfield.h. Updated doc for BitfieldMan + class. + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/BitfieldManFactory.cc + * src/BitfieldManFactory.h + * src/bitfield.h + * src/main.cc + * test/BitfieldManTest.cc + * test/DefaultPieceStorageTest.cc + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved getFirstNMissingIndex to bitfield.h and made it return the + number of appended indexes. + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/Piece.cc + * src/Piece.h + * src/bitfield.h + * test/BitfieldManTest.cc + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added more tests. + * test/BitfieldManTest.cc + +2010-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BitfieldMan::getFirstNMissingUnusedIndex() to get multiple + unused block indexes at once instead of calling + getFirstMissingUnusedIndex() multiple times. Made use of it in + Piece class and DefaultBtRequestFactory class via Piece class. + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/DefaultBtRequestFactory.cc + * src/Piece.cc + * src/Piece.h + * test/BitfieldManTest.cc + +2010-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use std::make_pair(...) + * src/DHTMessageTracker.cc + +2010-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use std::make_pair(...) + * src/bittorrent_helper.cc + +2010-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + urlencode(removeFragment(...)) in parseUrl(...) + * src/Request.cc + +2010-02-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Wrapped logger->debug(...) with if(logger->debug()) { ... } + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/BtPieceMessage.cc + * src/BtPortMessage.cc + * src/CreateRequestCommand.cc + * src/DHTAbstractNodeLookupTask.cc + * src/DHTBucket.cc + * src/DHTGetPeersCommand.cc + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageTracker.cc + * src/DHTPeerAnnounceStorage.cc + * src/DHTRoutingTable.cc + * src/DHTSetup.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageReceiver.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultPeerStorage.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/EpollEventPoll.cc + * src/FileAllocationCommand.cc + * src/FileEntry.cc + * src/FtpNegotiationCommand.cc + * src/HandshakeExtensionMessage.cc + * src/HttpListenCommand.cc + * src/HttpServer.cc + * src/HttpSkipResponseCommand.cc + * src/IteratableChunkChecksumValidator.cc + * src/Logger.h + * src/MSEHandshake.cc + * src/MetalinkPostDownloadHandler.cc + * src/MultiDiskAdaptor.cc + * src/PeerAbstractCommand.cc + * src/PeerConnection.cc + * src/PeerListenCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/SelectEventPoll.cc + * src/ServerStat.cc + * src/SimpleBtMessage.cc + * src/SocketCore.cc + * src/TrackerWatcherCommand.cc + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataRequestFactory.cc + * src/UTMetadataRequestTracker.cc + * src/XmlRpcMethod.cc + +2010-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed log level from debug to info + * src/BtDependency.cc + * src/BtPostDownloadHandler.cc + +2010-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused PeerSessionResource::_latency. + * src/BtConstants.h + * src/BtPieceMessage.cc + * src/Peer.cc + * src/Peer.h + * src/PeerSessionResource.cc + * src/PeerSessionResource.h + * test/PeerSessionResourceTest.cc + +2010-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that --file-allocation=falloc doesn't work with + single file download. + * src/AbstractSingleDiskAdaptor.cc + +2010-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.8.2 + +2010-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Portuguese translation. Updated Ukrainian and Spanish + translation. Thanks to all translators. + * po/LINGUAS + * po/es.po + * po/pt.po + * po/uk.po + +2010-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Remove fragment from redirected URI. + * src/Request.cc + * test/RequestTest.cc + +2010-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Drop legacy ifdef for ares support and code cleanup. + * src/AsyncNameResolver.cc + * src/AsyncNameResolver.h + +2010-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call ares_library_init and ares_library_cleanup if they are + available. Some code cleanups. + * src/Platform.cc + +2010-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call ares_process_fd() each time after epoll to handle timeout. + * src/EpollEventPoll.cc + * src/EpollEventPoll.h + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Suppressed type-cast compiler warning + * src/CookieStorage.cc + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on Mac OS X. + * src/CookieStorage.h + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed cookietest.txt from Makefile.am + * test/Makefile.am + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated version number in man page. + * doc/aria2c.1.txt + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten help message for --allow-overwrite option. + * doc/aria2c.1.txt + * src/usage_text.h + +2010-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bittorrent key to the response of tellStatus XML-RPC method. + The associated value of the key is a struct and contains data + retrieved from .torrent file, such as name, announce-list, + comment, etc. + * doc/aria2c.1.txt + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2010-01-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed parse(std::istream&) and parse(const std::string&) from + CookieParser. + * src/CookieParser.cc + * src/CookieParser.h + * test/CookieParserTest.cc + * test/cookietest.txt: Removed + +2010-01-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that cookie for domain a.b.c is not sent to the host + a.b.c if no other cookies are stored. Fixed the bug that + Cookie::markOriginServerOnly() is not called when cookies are + loaded from file/sqlite3 database. + * src/Cookie.h + * src/CookieStorage.cc + * src/NsCookieParser.cc + * src/Sqlite3MozCookieParser.cc + * test/CookieStorageTest.cc + * test/NsCookieParserTest.cc + * test/Sqlite3MozCookieParserTest.cc + * test/cookies.sqlite + * test/nscookietest.txt + +2010-01-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed RequestGroup::initSegmentMan(). Guaranteed that either + both _pieceStorage and _segmentMan are initialized or they are + not. + * src/RequestGroup.cc + * src/RequestGroup.h + * test/BtDependencyTest.cc + +2010-01-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.8.2 + * configure.ac + +2010-01-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced "." with A2STR::DOT_C + * src/AbstractCommand.cc + * src/Cookie.cc + * src/DownloadContext.cc + * src/FtpConnection.cc + * src/RequestGroup.cc + * src/util.cc + +2010-01-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced isNumberAndDotsNotation() with isNumericHost(). + isNumericHost() can handle IPv6 address. + * src/Cookie.cc + * src/CookieStorage.cc + * src/util.cc + * src/util.h + * test/CookieTest.cc + * test/UtilTest.cc + +2010-01-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included A2STR.h + * src/CookieStorage.cc + +2010-01-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Cookie storage. + * src/Cookie.cc + * src/Cookie.h + * src/CookieParser.cc + * src/CookieStorage.cc + * src/CookieStorage.h + * src/a2functional.h + * test/CookieParserTest.cc + * test/CookieStorageTest.cc + * test/CookieTest.cc + * test/HttpResponseTest.cc + * test/TestUtil.h + * test/a2functionalTest.cc + +2010-01-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Handle redirected URI which is not properly percent encoded. + * src/Request.cc + * test/RequestTest.cc + +2010-01-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes segmentaiton fault when aria2 sees '404 + not found' in the N times(N is where --max-file-not-found=N, N>0) + in a row without single '200 OK' response. + * src/RequestGroup.cc. + +2010-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with i586-mingw32msvc-g++. Always Cut console + readout by 80 characters in mingw32 build. Catch exception in + DHTMessageReceiver::receiveMessage(). + * src/AbstractDiskWriter.cc + * src/ConsoleStatCalc.cc + * src/DHTMessageReceiver.cc + * src/File.cc + * src/RequestGroupMan.cc + * src/a2io.h + * test/FileTest.cc + +2010-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with intel compiler + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.8.1 + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Swedish, Russian and Italian translations. Thanks to all + translators. + * po/it.po + * po/ru.po + * po/sv.po + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed broken OptionParser::findByName(). + * src/OptionParser.cc + * test/OptionParserTest.cc + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed test error without BitTorrent support. + * test/XmlRpcMethodTest.cc + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without GNUTLS/OpenSSL. + * src/util.cc + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed compression level to Z_DEFAULT_COMPRESSION. + * src/GZipEncoder.cc + +2010-01-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing command line options: --http-no-cache, + --bt-save-metadata and --bt-metadata-only. + * doc/xmlrpc/aria2rpc + +2010-01-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + aria2 now returns gzip compressed XML-RPC response if XML-RPC + client accepts gzip content encoding. + * src/A2STR.cc + * src/A2STR.h + * src/GZipEncoder.cc + * src/GZipEncoder.h + * src/HttpHeader.cc + * src/HttpHeader.h + * src/HttpServer.cc + * src/HttpServer.h + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/Makefile.am + * src/XmlRpcResponse.cc + * src/XmlRpcResponse.h + * test/GZipEncoderTest.cc + * test/Makefile.am + +2010-01-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC client sample code in Python. + * doc/aria2c.1.txt + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.8.1 + * configure.ac + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added version number to man page. Updated copyright year in man + page. + * doc/aria2c.1.txt + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten toTagString + * src/NameMatchOptionHandler.cc + * test/OptionHandlerTest.cc + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added dir and files key to the response struct of aria2.tellStatus + XML-RPC method. The value associated with files key is the list + of files. Its element is the same struct used in aria2.getFiles + XML-RPC method. Added uris key to the response struct of + aria2.getFiles XML-RPC method. The value associated with uris key + is the list of URIs. Its element is the same struct used in + aria2.getUris XML-RPC method. + * doc/aria2c.1.txt + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added aria2.getSessionInfo XML-RPC method. This method returns a + struct containing Session ID, which is generated each time when + aria2 is invoked. + * doc/aria2c.1.txt + * doc/xmlrpc/aria2rpc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved generateRandomKey() from bittorrent_helper to util. + * src/DHTBucket.cc + * src/DHTNode.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/util.cc + * src/util.h + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc about GID. + * doc/aria2c.1.txt + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now offset argument in aria2.tellWaiting and aria2.tellStopped + accepts a negative integer. 'offset' == -1 points last download + in the waiting queue and 'offset' == -2 points the download before + the last download, and so on. The downloads in the response are in + reversed order. + * doc/aria2c.1.txt + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2010-01-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --human-readable option. This option, when true is given, + prints sizes and speed in human readable format(e.g., 1.2Ki, + 3.4Mi) in the console readout. The default value is true and it + looks exactly the same as aria2-1.8.0. So the 'new feature' + appears when false is given. In this case, sizes and speed are + printed without in bytes. No Ki, Mi units conversion is used. + This may be useful for a program to parse the output of aria2. + * doc/aria2c.1.txt + * src/ConsoleStatCalc.cc + * src/ConsoleStatCalc.h + * src/OptionHandlerFactory.cc + * src/main.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-01-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now --all-proxy, --http-proxy, --https-proxy and --ftp-proxy + option accepts empty string "". When "" is given, it erases + previously defined proxy. + * doc/aria2c.1.txt + * src/OptionHandlerImpl.h + * src/usage_text.h + * test/OptionHandlerTest.cc + +2010-01-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup for proxy URI handling. + * src/AbstractCommand.cc + +2010-01-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-metadata-only option. If true is given to this option, + aria2 downloads metadata only. The file(s) described in metadata + will not be downloaded. This option has effect only when + BitTorrent Magnet URI is used. See also --bt-save-metadata option. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + * src/UTMetadataPostDownloadHandler.cc + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-01-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed memory leak. Commands stored in std::deque<Command*> are not + deleted when exception is thrown. Make sure that when passing + std::deque<Command*> to function to store Commands, handle + exception and delete these Commands. + * src/AbstractCommand.cc + * src/CheckIntegrityCommand.cc + * src/FileAllocationCommand.cc + * src/RequestGroup.cc + * src/TrackerWatcherCommand.cc + +2010-01-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced '/' and '_' with '_' in HTTP/FTP filename. + * src/A2STR.cc + * src/A2STR.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-01-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Treat --dir="" as --dir="." + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/Metalink2RequestGroup.cc + * src/UTMetadataPostDownloadHandler.cc + * src/bittorrent_helper.cc + * src/download_helper.cc + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code clean up. + * src/main.cc + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reset GID to 1 when they reach maximum value. Rewritten + CUIDCounter::newID() + * src/CUIDCounter.h + * src/RequestGroup.cc + * src/RequestGroup.h + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --http-no-cache option in man page. + * doc/aria2c.1.txt + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --http-no-cache option. When true is given, aria2 sends + Cache-Control: no-cache and Pragma: no-cache header to avoid + cached content. If false is given , these headers are not sent + and you can add Cache-Control header with a directive you like + using --header option. + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/OptionHandlerFactory.cc + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Logger from OptionParser. When OptionParser is used to + parse options at bootstrap, LogFactory is not configured yet + properly. When LogFactory is used in OptionParser, it initializes + itself to return a logger which has no ability to write log to the + disk. + * src/OptionParser.cc + * src/OptionParser.h + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added following sentance to the help message of --out option: + --out option is ignored when -Z is used. + * doc/aria2c.1.txt + * src/usage_text.h + +2010-01-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-save-metadata option to -i list options. + * doc/aria2c.1.txt + * src/download_helper.cc + +2010-01-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with i586-mingw32msvc-gcc 4.4.2, without any + additional libraries. + * src/MultiUrlRequestInfo.cc + * src/NameResolver.cc + * src/SelectEventPoll.cc + * src/SelectEventPoll.h + * src/SocketCore.cc + * src/SocketCore.h + * src/a2netcompat.h + * src/daemon.cc + * src/main.cc + +2010-01-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo. + * src/DHTMessageReceiver.cc + +2010-01-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes segmentation fault if unknown option is + put in aria2.conf file. BUG#2928303 + * src/OptionParser.cc + * src/OptionParser.h + * src/option_processing.cc + * test/OptionParserTest.cc + +2010-01-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Ignore port message with port=0. + * src/BtPortMessage.cc + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Run autoupdate + * configure.ac + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated autoconf/automake auxiliary files. + * INSTALL + * config.guess + * config.sub + * depcomp + * install-sh + * m4/intldir.m4 + * missing + * mkinstalldirs + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused function. + * src/SharedHandle.h + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Find pooled socket using all cached addresses. + * src/DNSCache.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/InitiateConnectionCommand.cc + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated copyright year. + * src/version_usage.cc + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Pool connection if _contentEncodingDecoder is used and server + supports persistent connection. + * src/HttpDownloadCommand.cc + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * src/DownloadCommand.cc + +2010-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Untabify. Fixed one line in copyright which is longer than 80 + columns. + * src + * test + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.8.0 + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-save-metadata option in man page. + * doc/aria2c.1.txt + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed usage of --bt-save-metadata option. + * src/usage_text.h + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Get rid of AI_ADDRCONFIG when --disable-ipv6 opiton is given. It + causes name resolution error when none of network interface has + IPv4 address. + * src/main.cc + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.8.0. + * configure.ac + +2009-12-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use info hash as a filename when saving BitTorrent metadata. + * src/UTMetadataPostDownloadHandler.cc + * test/UTMetadataPostDownloadHandlerTest.cc + +2009-12-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented system.multicall XML-RPC method in man page. + * doc/aria2c.1.txt + +2009-12-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added signal handler for SIGHUP to save .aria2 file when terminal + is closed. The handler is the same one for SIGINT and SIGTERM. + * src/MultiUrlRequestInfo.cc + +2009-12-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined method name in XmlRpcMethod subclasses. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-12-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added system.multicall XML-RPC method. + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-12-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check structure depth when decoding. + * src/bencode.cc + * src/bencode.h + * test/BencodeTest.cc + +2009-12-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented tellStopped XML-RPC method in man page. + * doc/aria2c.1.txt + +2009-12-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tellStopped XML-RPC method to aria2rpc. + * doc/xmlrpc/aria2rpc + +2009-12-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tellStopped XML-RPC method. This method returns stopped + download in the specified range. It takes same parameters with + tellWaiting XML-RPC method. offset = 0 means the oldest download. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-12-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use AI_ADDRCONFIG flag if it is available. Refactored so that + getaddrinfo calls are not scattered around. Unset AI_ADDRCONFIG + when conducting unit tests because they fail if networking + interface is not configured with IPv4 address. + * src/NameResolver.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/a2netcompat.h + * test/AllTest.cc + +2009-12-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unit test error + * test/UTMetadataPostDownloadHandlerTest.cc + +2009-12-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined static string constants for efficiency. + * src/XmlRpcMethodImpl.cc + +2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-save-metadata option. When true is given, it saves + metadata as .torrent file. This option has effect only when + BitTorrent Magnet URI is used. The filename is name in metadata + with suffix .torrent. The directory to be saved is the same + directory where download file is saved. If the same file already + exists, metdata is not saved. + * src/OptionHandlerFactory.cc + * src/UTMetadataPostDownloadHandler.cc + * src/UTMetadataPostDownloadHandler.h + * src/message.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/UTMetadataDataExtensionMessageTest.cc + +2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added util::saveAs() function. Use it in Signature::save(). + * src/Signature.cc + * src/util.cc + * src/util.h + +2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Upcase info hash in Magnet URI. + * doc/aria2c.1.txt + +2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored RequestGroupMan::changeReservedGroupPosition() + * src/RequestGroupMan.cc + +2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated the description for aria2.addTorrent XML-RPC method. + * doc/aria2c.1.txt + +2009-12-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added changePosition to aria2rpc. + * doc/xmlrpc/aria2rpc + +2009-12-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented changePosition XML-RPC method in man page. + * doc/aria2c.1.txt + +2009-12-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added changePosition XML-RPC method. It takes 3 parameters: gid, + pos and how. This method changes the position of download denoted + by gid. If how is POS_SET, it moves the download to a position + relative to the beginning of the queue. If how is POS_CUR, it + moves the download to a position relative to the current + position. If how is POS_END, it moves the download to a position + relative to the end of the queue. If the destination position is + less than 0 or beyond the end of the queue, it moves the download + to the beginning or the end of the queue respectively. Returns + the destination position. + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/RequestGroupManTest.cc + * test/XmlRpcMethodTest.cc + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added getOption and getGlobalOption to aria2rpc. + * doc/xmlrpc/aria2rpc + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented getOption and getGlobalOption XML-RPC method in man + page + * doc/aria2c.1.txt + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added getOption and getGlobalOption XML-RPC method. getOption + takes GID as a parameter and returns its options as struct. + getGlobalOption takes no parameter and returns global + options. Because global option is used as a template for the + option of newly added downloads, it includes options returned by + getOption. + * src/Option.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Sort _optionHandlers in OptionParser by name in ascending order. + Use vector instead of deque for efficiency. + * src/OptionHandler.h + * src/OptionHandlerFactory.h + * src/OptionParser.cc + * src/OptionParser.h + * src/version_usage.cc + * test/OptionParserTest.cc + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/XmlRpcMethod.cc + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented about followedBy and belongsTo in man page. + * doc/aria2c.1.txt + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added following 2 keys, followedBy and belongsTo, to the response + of tellStatus. + + followedBy: List of GIDs which are generated by the consequence of + this download. For example, when aria2 downloaded Metalink file, + it generates downloads described in it(see *--follow-metalink* + option). This value is useful to track these auto generated + downloads. If there is no such downloads, this key will not be + included in the response. + + belongsTo: GID of a parent download. Some downloads are a part of + another download. For example, if a file in Metalink has + BitTorrent resource, the download of .torrent is a part of that + file. If this download has no parent, this key will not be + included in the response. + * src/BtPostDownloadHandler.cc + * src/DownloadResult.h + * src/Metalink2RequestGroup.cc + * src/MetalinkPostDownloadHandler.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/UTMetadataPostDownloadHandler.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Assigned BObject in BDE() to avoid segmentation fault when calling + methods of BDE::none(). + * src/BDE.cc + +2009-12-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Show info hash in Magnet URI in upper case letters in -S output. + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + +2009-12-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed old useless comment + * src/MultiUrlRequestInfo.cc + +2009-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that if --without-sqlite3 is given, pkg-config is + not properly used in configure script and failed to detect gnutls. + This is because explicit call of PKG_PROG_PKG_CONFIG is missing + and the initialization of pkg-config is done in first occurrence + of PKG_CHECK_MODULES which is not executed because it is inside of + sqlite3.m4. Added explicit PKG_PROG_PKG_CONFIG call. + * configure.ac + +2009-12-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.7.2 + +2009-12-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that RequestGroupMan::downloadFinished() returns + true even if all downloads haven't finished, especially when + PostDownloadHandler is involved. Changed the condition so that it + only returns true if both _requestGroups and _reservedGroups are + empty. + * src/RequestGroupMan.cc + +2009-12-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Log listening port for BitTorrent/DHT in notice level. + * src/DHTConnectionImpl.cc + * src/PeerListenCommand.cc + +2009-12-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2009-12-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.7.2 + * configure.ac + +2009-12-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed default value of --enable-dht from 'false' to 'true'. + * doc/aria2c.1.txt + +2009-12-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enabled DHT by default because of Magnet URI support. To disable + DHT, use --enable-dht=false + * src/OptionHandlerFactory.cc + +2009-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print Magnet URI in -S output. + * src/AnnounceList.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + +2009-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-prioritize-piece option to aria2rpc. + * doc/xmlrpc/aria2rpc + +2009-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refer Magnet URI in --help. Made some cosmetic changes. + * src/version_usage.cc + +2009-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated -T and -M option. + * doc/aria2c.1.txt + +2009-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + +2009-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that line separator is missing in horizontal bar. + * doc/xmlrpc/aria2mon + +2009-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated usage text for --metalink-file option. + * src/usage_text.h + +2009-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + If '-' is given as an argument to --metalink-file option, aria2 + reads Metalink file from stdin. + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/a2io.h + +2009-12-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2 listens wrong port if --interface option + is used. + * src/SocketCore.cc + +2009-12-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that query parameter in magnet URI is not decoded. + * src/magnet.cc + * test/MagnetTest.cc + +2009-12-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Specified defaultSize as an argument for easy testing. + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.7.1 + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.7.1 + * configure.ac + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug --bt-prioritize-piece=tail is not working. + * src/util.cc + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.7.0 + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated help message for --bt-prioritize-piece. Some cosmetic + changes. + * doc/aria2c.1.txt + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set default value for SIZE in --bt-prioritize-piece to 1MiB. + * src/usage_text.h + * src/util.cc + * test/UtilTest.cc + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian, Ukrainian, German and French translations. + Thanks to all translators involved. + * po/de.po + * po/fr.po + * po/ru.po + * po/uk.po + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Mentioned about pkg-config + * README + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo. Referred --index-out option in BitTorrent notes. + * README + +2009-12-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Store all addresses found by getifaddrs() and getaddrinfo(). In + bind, try all addresses until success + * src/SocketCore.cc + * src/SocketCore.h + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated po templates. + * po/aria2.pot + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.7.0 + * configure.ac + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error if ENABLE_BITTORRENT is undefined. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + * test/ProtocolDetectorTest.cc + * test/XmlRpcMethodTest.cc + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented in man page that if getifaddrs() is missing, + --interface option doesn't accept interface name. + * doc/aria2c.1.txt + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use last 8 bytes of peer ID as 'key' parameter for tracker request. + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + * test/DefaultBtAnnounceTest.cc + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that connection is always dropped if handshake + message in extension protocol don't have metadata_size. + src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.cc + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated "URI, MAGNET, TORRENT_FILE, METALINK_FILE" section. Added + text saying DHT is recommended when Magnet URI is provided. + * doc/aria2c.1.txt + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that DHT is always enabled when BitTorrent Magnet + URI is supplied. Notify user that they should consider enabling + DHT if they use Magnet URI. + * src/RequestGroup.cc + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --disable-ipv6 option to disable IPv6. + * doc/aria2c.1.txt + * src/InitiateConnectionCommand.cc + * src/NameResolver.cc + * src/NameResolver.h + * src/OptionHandlerFactory.cc + * src/main.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated usage text for --bt-prioritize-piece option. + * doc/aria2c.1.txt + * src/usage_text.h + +2009-12-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In configure script, if --with-PACKAGE and --enable-FEATURE are + given and PACKAGE is missing in the system or FEATURE cannot be + enabled, print error message and stop the script. + * configure.ac + * m4/aria2_arg.m4 + +2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Halt metadata download immediately when metadata download is done. + Don't wait unresponsive tracker. + * src/ByteArrayDiskWriter.h + * src/DefaultBtInteractive.cc + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/PeerInteractionCommand.cc + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataDataExtensionMessage.h + * src/UTMetadataRequestExtensionMessage.cc + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataRequestExtensionMessageTest.cc + +2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --interface option in man page. + * doc/aria2c.1.txt + +2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Try resolved address in the order received from the resolver. + * src/DNSCache.h + +2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added debug logs. + * src/SocketCore.cc + +2009-12-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed type of tail to uint64_t + * src/util.cc + +2009-12-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --interface option. This feature binds sockets to given + interface. You can specify interface name, IP address and + hostname. + * configure.ac + * src/OptionHandlerFactory.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/main.cc + * src/message.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for bt-prioritize-piece option in -i list. + * doc/aria2c.1.txt + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bt-prioritize-piece option to -i list. + * src/download_helper.cc + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --http-auth-scheme option from man page. + * doc/aria2c.1.txt + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --http-auth-scheme option since it doesn't do nothing. + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Adjusted the number of peer info which get_peers reply message can + carry. + * src/DHTGetPeersReplyMessage.cc + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added extension_message_test_helper.h to aria2c_SOURCES. + * test/Makefile.am + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-prioritize-piece option in man page. + * doc/aria2c.1.txt + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added option --bt-prioritize-piece. This option instruct aria2 to + try to download first and last pieces of each file first. The + argument can contain 2 keywords:head and tail. To include both + keywords, they must be separated by comma. These keywords can take + one parameter, SIZE. For example , if head=SIZE is specified, + pieces in the range of first SIZE bytes of each file get higher + priority. tail=SIZE means the range of last SIZE bytes of each + file. SIZE can include K or M(1K = 1024, 1M = 1024K). + * src/DefaultPieceStorage.h + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/PriorityPieceSelector.cc + * src/PriorityPieceSelector.h + * src/RequestGroup.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * src/util.cc + * src/util.h + * test/Makefile.am + * test/MockPieceSelector.h + * test/PriorityPieceSelectorTest.cc + * test/UtilTest.cc + +2009-11-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * src/HttpRequest.h + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In Magnet URI with tr parameter, put each announce URI in separate + tier. + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed ExtensionMessage::getBencodedData() as + ExtensionMessage::getPayload() + * src/BtExtendedMessage.cc + * src/ExtensionMessage.h + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataDataExtensionMessage.h + * src/UTMetadataRejectExtensionMessage.cc + * src/UTMetadataRejectExtensionMessage.h + * src/UTMetadataRequestExtensionMessage.cc + * src/UTMetadataRequestExtensionMessage.h + * src/UTPexExtensionMessage.cc + * src/UTPexExtensionMessage.h + * test/HandshakeExtensionMessageTest.cc + * test/MockExtensionMessage.h + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataRejectExtensionMessageTest.cc + * test/UTMetadataRequestExtensionMessageTest.cc + * test/UTPexExtensionMessageTest.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for BitTorrent Magnet URI. + * doc/aria2c.1.txt + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call DownloadContext::setOwnerRequestGroup() in + RequestGroup::setDownloadContext(). + * src/BtDependency.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/download_helper.cc + * test/DefaultBtMessageDispatcherTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/HandshakeExtensionMessageTest.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Accept BitTorrent Magnet URI in Metalink resource type bittorrent. + Rewritten UTMetadataPostDownloadHandler. To create torrent data + from metadata, use new metadata2Torrent() function. + * src/BtDependency.cc + * src/UTMetadataPostDownloadHandler.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/BtDependencyTest.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use createRequestGroupForUri to create the download for torrent + file. + * src/Metalink2RequestGroup.cc + * test/Metalink2RequestGroupTest.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * src/DownloadContext.h + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use createRequestGroupForBitTorrent() + * src/BtPostDownloadHandler.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added remove(). + * src/Option.cc + * src/Option.h + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed options which is only valid for URIs specified in + command-line. If they are left, because op is used as a template + for new RequestGroup(such as created in XML-RPC command, + BtPostDownloadHandler etc), they causes unintentional effect. + * src/main.cc + +2009-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refer to option value of PREF_OUT only in download_helper. + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + +2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now addUri XML-RPC method accepts BitTorrent Magnet URI. + * src/download_helper.cc + * src/download_helper.h + * src/XmlRpcMethodImpl.cc + +2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for changeOption XML-RPC method. + * doc/aria2c.1.txt + +2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-max-peers option to changeOption XML-RPC method. + * src/XmlRpcMethod.cc + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test case for PREF_BT_REQUEST_PEER_SPEED_LIMIT + * test/XmlRpcMethodTest.cc + +2009-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed redundant DownloadContext::hasAttribute(...) calls. + * src/ConsoleStatCalc.cc + * src/RequestGroup.cc + * src/XmlRpcMethodImpl.cc + +2009-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the number of tracker request attempt from 5 to 2. + * src/TrackerWatcherCommand.cc + +2009-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use host and protocol in original URI, because URI selector + selects URI based on original URI, not redirected one. + * src/Request.cc + +2009-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug which causes segmentation fault with tellWaiting + XML-RPC method when BitTorrent download is waiting. The key of + BtRegistry is changed from info hash to GID, because it is + registered per RequestGroup, not info hash. + * src/BtRegistry.cc + * src/BtRegistry.h + * src/BtSetup.cc + * src/ConsoleStatCalc.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/PeerInitiateConnectionCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/RequestGroup.cc + * src/XmlRpcMethodImpl.cc + * test/BtRegistryTest.cc + * test/XmlRpcMethodTest.cc + +2009-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for changeOption XML-RPC method. + * doc/aria2c.1.txt + +2009-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-request-peer-speed-limit option to changeOption XML-RPC + method. + * src/XmlRpcMethod.cc + +2009-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented about BitTorrent Magnet URI in man page. + * doc/aria2c.1.txt + +2009-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that trackers in BitTorrent Magnet URI are not + inherited to generated RequestGroup. + * src/UTMetadataPostDownloadHandler.cc + * test/UTMetadataPostDownloadHandlerTest.cc + +2009-11-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Prepended "[METADATA]" before dn. + * src/bittorrent_helper.cc + * test/BittorrentHelperTest.cc + +2009-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Magnet URI parser. + * src/Makefile.am + * src/ProtocolDetector.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/magnet.cc + * src/magnet.h + * test/BittorrentHelperTest.cc + * test/MagnetTest.cc + * test/Makefile.am + * test/ProtocolDetectorTest.cc + +2009-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use hton64 + * src/base32.cc + +2009-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Base32 encoded BitTorrent Magnet Link support. + * src/Makefile.am + * src/base32.cc + * src/base32.h + * src/bittorrent_helper.cc + * test/Base32Test.cc + * test/BittorrentHelperTest.cc + * test/Makefile.am + +2009-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BitTorrent Magnet Link support. Base32 encoded link is not + supported yet. Fixed typo in method name in RequestGroup. In + metadataGetMode, don't show "Your share ratio was ..." message. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DownloadHandlerFactory.cc + * src/DownloadHandlerFactory.h + * src/HandshakeExtensionMessage.cc + * src/Makefile.am + * src/Metalink2RequestGroup.cc + * src/PeerInteractionCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/UTMetadataPostDownloadHandler.cc + * src/UTMetadataPostDownloadHandler.h + * src/download_helper.cc + * test/HandshakeExtensionMessageTest.cc + * test/Makefile.am + * test/UTMetadataPostDownloadHandlerTest.cc + * test/UTMetadataRejectExtensionMessageTest.cc + +2009-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In metadataGetMode, don't show SEEDING. + * src/ConsoleStatCalc.cc + +2009-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed ut_metadata data handling. Implemented + UTMetadataDataExtensionMessage::doReceivedAction(). Initialize + PeerStorage in HandshakeExtensionMessage::doReceivedAction() when + metadata_size is received. + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataDataExtensionMessage.h + * src/UTMetadataRequestExtensionMessage.cc + * src/UTMetadataRequestFactory.cc + * src/UTMetadataRequestFactory.h + * src/UTMetadataRequestTracker.cc + * src/UTMetadataRequestTracker.h + * test/DefaultExtensionMessageFactoryTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/MockBtMessage.h + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataRequestExtensionMessageTest.cc + * test/UTMetadataRequestFactoryTest.cc + * test/UTMetadataRequestTrackerTest.cc + * test/extension_message_test_helper.h + +2009-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Drop connection if ut_metadata reject message is received. + * src/UTMetadataRejectExtensionMessage.cc + +2009-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set thresholdSpeed to 0 in metadataGetMode because speed doesn't + get high enough in that mode. + * src/ActivePeerConnectionCommand.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BitTorrent magnet link support to ProtocolDetector. + * src/ProtocolDetector.cc + * src/ProtocolDetector.h + * test/ProtocolDetectorTest.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't inject validator into BtMessage in metadataGetMode because + most of the checks depends on the total length of download but it + is unknown. Delegate metadataGetMode to BtMessage. + * src/DefaultBtMessageFactory.cc + * src/DefaultBtMessageFactory.h + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added setEndGamePieceNum() pure virtual function to PieceStorage. + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added markTotalLengthIsKnown(). + * src/DownloadContext.h + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't add PeerChokeCommand and SeedCheckCommand if metadata is + missing. If metadata is missing, always use DHT when it is ready. + * src/BtSetup.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added parseMagnetLink(). Hex encoded info hash is supported. + Base32 encoded info hash is not supported yet. + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added FromHex() + * src/util.cc + * src/util.h + * test/UtilTest.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added _metadataGetMode member variable. It toggles the action when + messages are received: usually they almost do nothing if + _metadataGetMode is true. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/BtAllowedFastMessage.cc + * src/BtBitfieldMessage.cc + * src/BtCancelMessage.cc + * src/BtChokeMessage.cc + * src/BtHaveAllMessage.cc + * src/BtHaveMessage.cc + * src/BtInterestedMessage.cc + * src/BtNotInterestedMessage.cc + * src/BtPieceMessage.cc + * src/BtRejectMessage.cc + * src/BtRequestMessage.cc + * src/BtUnchokeMessage.cc + +2009-11-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bencode::decode overload functions. They have extra argument + 'end', passed by reference. 'end' points to the beyond the last + position of data used in decoding process. + * src/bencode.cc + * src/bencode.h + * test/BencodeTest.cc + +2009-11-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Initial support of Extension for Peers to Send Metadata + Files(BEP9). Currently aria2 only serves metadata and cannot get + metadata from swarm. + * src/BtConstants.h + * src/DefaultBtInteractive.cc + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/ExtensionMessage.h + * src/ExtensionMessageRegistry.h + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * src/Makefile.am + * src/PeerConnection.h + * src/PeerInteractionCommand.cc + * src/UTMetadataDataExtensionMessage.cc + * src/UTMetadataDataExtensionMessage.h + * src/UTMetadataExtensionMessage.cc + * src/UTMetadataExtensionMessage.h + * src/UTMetadataRejectExtensionMessage.cc + * src/UTMetadataRejectExtensionMessage.h + * src/UTMetadataRequestExtensionMessage.cc + * src/UTMetadataRequestExtensionMessage.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/Makefile.am + * test/UTMetadataDataExtensionMessageTest.cc + * test/UTMetadataRejectExtensionMessageTest.cc + * test/UTMetadataRequestExtensionMessageTest.cc + +2009-11-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Cancel segment in prepareForRetry() because there is a chance that + the command has segments. + * src/CreateRequestCommand.cc + +2009-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that slow server is not knocked down in favor of + faster one. + * src/AbstractCommand.cc + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + +2009-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that Request object is not added to + _inFlightRequests in findFasterRequest(). + * src/FileEntry.cc + +2009-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the strategry of how to increase the number of outstanding + requests. Now the number is doubled if there are no outstanding + requests after receiving messages. + * src/BtConstants.h + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + +2009-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check socket for reading if there are outstanding requests. + * src/PeerInteractionCommand.cc + +2009-11-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved frequently called methods to header file so they get + inlined. + * src/RequestSlot.cc + * src/RequestSlot.h + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Copied in_addr instead of just casting from char* which might + violate strict aliasing rules. + * src/AsyncNameResolver.cc + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use dynamic_pointer_cast + * test/BtPieceMessageTest.cc + * test/BtRequestMessageTest.cc + * test/DefaultBtRequestFactoryTest.cc + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added testSetUrl20() + * test/RequestTest.cc + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/bittorrent_helper.cc + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use C++ style cast + * src/AsyncNameResolver.cc + * src/Base64.h + * src/BtBitfieldMessage.cc + * src/BtHandshakeMessage.cc + * src/DefaultBtMessageFactory.cc + * src/DefaultBtProgressInfoFile.cc + * src/EpollEventPoll.cc + * src/ExpatMetalinkProcessor.cc + * src/IteratableChecksumValidator.cc + * src/IteratableChunkChecksumValidator.cc + * src/MessageDigestHelper.cc + * src/Platform.cc + * src/RequestGroupMan.cc + * src/SingleFileAllocationIterator.cc + * src/Sqlite3MozCookieParser.cc + * src/XML2SAXMetalinkProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/util.cc + * src/util.h + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed integer potential alignment problem. + * src/bitfield.h + +2009-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied a patch from tizianomueller to fix sigbus errors on Linux + sparc. I modified the patch to eliminate a cast to uint32_t* and + include file ordering. + * src/PeerListProcessor.h + * src/bittorrent_helper.cc + +2009-11-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added util::parseUIntNoThrow(). Use it in Request::parseUrl(). + * src/Request.cc + * src/util.cc + * src/util.h + * test/RequestTest.cc + +2009-11-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten util::uitos() + * src/util.h + +2009-11-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/Request.cc + * src/Request.h + +2009-11-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Request::parseUrl() + * src/Request.cc + * test/RequestTest.cc + +2009-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused macro SAFE_CHARS + * src/Request.cc + +2009-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/DHTRoutingTableDeserializer.cc + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.6.3 + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused function. + * test/DHTPeerAnnounceStorageTest.cc + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Only decrement cols if cols > 0 + * src/ConsoleStatCalc.cc + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Polish, Catalan, French, Italian, Russian and Japanese + translations. Thanks to all translators. + * po/ca.po + * po/fr.po + * po/it.po + * po/ja.po + * po/pl.po + * po/ru.po + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated translation template + * po + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without ssl library. + * src/util.cc + +2009-11-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Logged received nodes in get_peers reply message. + * src/DHTAbstractNodeLookupTask.cc + * src/DHTAbstractNodeLookupTask.h + +2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that DHTAbstractNodeLookupTask never finishes if + error occurred in DHTMessageDispatcherImpl::sendMessage(). + * src/DHTMessageDispatcherImpl.cc + +2009-11-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't reuse URI if Request pool is not empty. + * src/CreateRequestCommand.cc + +2009-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed peerStorage from DHTPeerAnnounceEntry. It is unlikely to + receive get_peers request for torrent which the client is now + downloading. + * src/BtSetup.cc + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceEntry.h + * src/DHTPeerAnnounceStorage.cc + * src/DHTPeerAnnounceStorage.h + * src/RequestGroup.cc + * test/DHTPeerAnnounceEntryTest.cc + * test/DHTPeerAnnounceStorageTest.cc + +2009-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that in Windows environment new blank line is + inserted when console readout is updated. + * src/ConsoleStatCalc.cc + +2009-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Throw exception if binding listening port is failed. Removed + RequestGroupMan::getInitialCommand(). Use + fillRequestGroupFromReserver() instead. Delete commands for + RequestGroup which has errors when it is being added. + * src/BtSetup.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/DownloadEngineFactory.cc + * src/MultiUrlRequestInfo.cc + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * test/RequestGroupManTest.cc + +2009-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that when downloading more than one torrent, + listening port is not reported properly to tracker for 2nd or + later torrents. + * src/BtSetup.cc + * src/PeerListenCommand.cc + * src/PeerListenCommand.h + * src/RequestGroup.cc + +2009-10-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.6.3 + * configure.ac + +2009-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Util.cc from POTFILES.in + * po/POTFILES.in + +2009-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for previous change. + * doc/aria2c.1.txt + +2009-10-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + If user name is embedded but password is missing in URI, first + resolve password using .netrc. If password is found in .netrc, + then use it as password. If not, use the password specified in + --ftp-passwd. + * src/AuthConfigFactory.cc + * src/Request.cc + * src/Request.h + * test/AuthConfigFactoryTest.cc + +2009-10-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + +2009-10-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * src/usage_text.h + +2009-10-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing bitfield.cc + * src/bitfield.cc + +2009-10-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed Util.{cc,h} as util.{cc,h} + * src/Util.cc + * src/Util.h + * src/util.cc + * src/util.h + +2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved static functions in Util class to namespace util. + * src + * test + +2009-10-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved generateRandomData to Util.cc Moved flipBit to bitfield.cc. + Moved generateRandomKey to bittorrent_helper.cc. + * src/DHTBucket.cc + * src/DHTGetPeersMessage.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTMessage.cc + * src/DHTNode.cc + * src/DHTTokenTracker.cc + * src/DHTUtil.cc: Removed. + * src/DHTUtil.h: Removed. + * src/Makefile.am + * src/Util.cc + * src/Util.h + * src/bitfield.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/ARC4Test.cc + * test/BNodeTest.cc + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTAnnouncePeerReplyMessageTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTPingMessageTest.cc + * test/DHTPingReplyMessageTest.cc + * test/DHTTokenTrackerTest.cc + * test/DHTUtilTest.cc: Removed. + * test/Makefile.am + * test/UtilTest.cc + +2009-10-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed the call to trim() because trim() is called for each + element in split(). + * src/CookieParser.cc + +2009-10-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced Util::slice() with split() + * src/AbstractCommand.cc + * src/CookieParser.cc + * src/File.cc + * src/HttpHeaderProcessor.cc + * src/HttpRequest.cc + * src/Metalink2RequestGroup.cc + * src/MetalinkParserController.cc + * src/Netrc.cc + * src/NsCookieParser.cc + * src/ParameterizedStringParser.cc + * src/ServerStatMan.cc + * src/UriListParser.cc + * src/Util.cc + * src/Util.h + * src/bittorrent_helper.cc + * test/UtilTest.cc + +2009-10-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use request->getDir() instead of "/" for embedded user/pass in + URI. + * src/AuthConfigFactory.cc + +2009-10-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed wrong insertion point for BasicCred. + * src/AuthConfigFactory.cc + +2009-10-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Allowed non-regular file in LocalFilePathOptionHandler + * src/OptionHandlerImpl.h + * src/message.h + +2009-10-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that Netrc::parse() cannot recognize comment line. + * src/Netrc.cc + * src/Util.h + * test/NetrcTest.cc + * test/sample.netrc + +2009-10-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * src/BtDependency.cc + * src/BtRejectMessage.cc + * src/FtpConnection.cc + * src/HttpHeaderProcessor.h + +2009-10-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed lintian report in man page + * doc/aria2c.1.txt + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release 1.6.2 + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian translation. Thanks to all translators. + * po/uk.po + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated translation template + * po + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.6.2 + * configure.ac + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated licence message in -v output. + * src/version_usage.cc + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced aria2 with aria2c in help message. + * src/version_usage.cc + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use PACKAGE_BUGREPORT and PACKAGE_URL. + * src/version_usage.cc + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Quoted localedir + * src/Makefile.am + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added AC_FUNC_STRTOD and AC_TYPE_PID_T. Check function for pow, + utime. Check header for utime.h. + * configure.ac + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use AC_FUNC_FORK. Replaced HAVE_FORK with HAVE_WORKING_FORK. + * configure.ac + * src/daemon.cc + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't set localedir manually. Leave it to autoconf. + * configure.ac + * src/Makefile.am + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --install to ACLOCAL_AMFLAGS. + Removed m4 from SUBDIRS. + Updated automake 1.11 and autoconf 2.64. + Replaced some obsolute macros with new one. + * Makefile.am + * configure.ac + * m4/aria2_arg.m4 + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Makefile.am in m4 directory. + * configure.ac + * m4/ChangeLog + * m4/Makefile.am + * m4/Makefile.in + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused m4 macros. + * m4/intldir.m4 + * m4/inttypes.m4 + * m4/isc-posix.m4 + * m4/libgnutls-extra.m4 + * m4/ulonglong.m4 + +2009-10-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes segmentation fault if + req->getCurrentUrl() contains printf formatting characters such as + %d. The statement that causes this bug is useless and removed. + * src/AbstractCommand.cc + +2009-10-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.6.1 + +2009-10-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Simplified Chinese translation. Thanks to translators. + * po/zh_CN.po + +2009-10-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated translation template + * po + +2009-10-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.6.1 + * configure.ac + +2009-10-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed interval from 120 to 60 for dropping inactive peer. + * src/DefaultBtInteractive.cc + +2009-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for --user-agent and --peer-id-prefix option. + * doc/aria2c.1.txt + +2009-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code clean up + * src/BtPostDownloadHandler.cc + * src/ContentTypeRequestGroupCriteria.cc + * src/ContentTypeRequestGroupCriteria.h + * src/DownloadHandlerConstants.cc + * src/DownloadHandlerConstants.h + * src/DownloadHandlerFactory.cc + * src/MetalinkPostDownloadHandler.cc + +2009-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't save control file when aria2 exists while checking piece + hash(behavior of -V option). If control file doesn't exist when + aria2 launched, the completed length in saved control file will be + 0 byte and this confuses user. disableSaveControlFile() is called + in RequestGroup::processCheckIntegrityEntry(). + enableSaveControlFile() will be called after hash checking is + done. See CheckIntegrityCommand. + * src/CheckIntegrityCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + +2009-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included version number in Peer ID and client version. Peer ID + now starts with "aria2/VERSION-", where VERSION is + MAJOR.MINOR.MICRO. Client version is aria2/VERSION. + * src/DefaultBtInteractive.cc + * src/OptionHandlerFactory.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/main.cc + * src/usage_text.h + * test/BittorrentHelperTest.cc + +2009-10-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed memory leak. + * src/DownloadCommand.cc + +2009-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed server, port, user and passwd key from options before + XMLRPC::Client.call since they are not options of aria2. + * doc/xmlrpc/aria2mon + * doc/xmlrpc/aria2rpc + +2009-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included version number in user-agent string. + * src/OptionHandlerFactory.cc + +2009-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that the option values changed by XML-RPC + method(changeOption and changeGlobalOption) are overwritten to the + previous value by the next these request which doesn't contain + that option value. Supporse max-download-limit is initially 0. You + changed this value to 100K by changeOption. Then you issue + changeOption request to change max-upload-limit to 50K. This + second request doesn't contain xml-download-limit, so it is back + to initial value, 0. Another improvement is that exception is + thrown when changeOption and changeGlobalOption request contains + option name which doesn't allowed in each request. + * src/DownloadEngine.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodImpl.cc + * src/download_helper.cc + * src/download_helper.h + * test/XmlRpcMethodTest.cc + +2009-10-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing MetalinkParserStateImpl.{cc,h} + * src/MetalinkParserStateImpl.cc + * src/MetalinkParserStateImpl.h + +2009-10-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Put all MetalinkParserState subclasses into + MetalinkParserStateImpl.cc. Use stack to track element structure. + * src/FileMetalinkParserState.cc: Removed + * src/FileMetalinkParserState.h: Removed + * src/FilesMetalinkParserState.cc: Removed + * src/FilesMetalinkParserState.h: Removed + * src/FinMetalinkParserState.cc: Removed + * src/FinMetalinkParserState.h: Removed + * src/HashMetalinkParserState.cc: Removed + * src/HashMetalinkParserState.h: Removed + * src/InitialMetalinkParserState.cc: Removed + * src/InitialMetalinkParserState.h: Removed + * src/LanguageMetalinkParserState.cc: Removed + * src/LanguageMetalinkParserState.h: Removed + * src/Makefile.am + * src/MetalinkMetalinkParserState.cc: Removed + * src/MetalinkMetalinkParserState.h: Removed + * src/MetalinkParserState.h + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/OSMetalinkParserState.cc: Removed + * src/OSMetalinkParserState.h: Removed + * src/PieceHashMetalinkParserState.cc: Removed + * src/PieceHashMetalinkParserState.h: Removed + * src/PiecesMetalinkParserState.cc: Removed + * src/PiecesMetalinkParserState.h: Removed + * src/ResourcesMetalinkParserState.cc: Removed + * src/ResourcesMetalinkParserState.h: Removed + * src/SignatureMetalinkParserState.cc: Removed + * src/SignatureMetalinkParserState.h: Removed + * src/SizeMetalinkParserState.cc: Removed + * src/SizeMetalinkParserState.h: Removed + * src/SkipTagMetalinkParserState.cc: Removed + * src/SkipTagMetalinkParserState.h: Removed + * src/URLMetalinkParserState.cc: Removed + * src/URLMetalinkParserState.h: Removed + * src/VerificationMetalinkParserState.cc: Removed + * src/VerificationMetalinkParserState.h: Removed + * src/VersionMetalinkParserState.cc: Removed + * src/VersionMetalinkParserState.h: Removed + +2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Move all functions in PeerMessageUtil to bittorrent_helper. + * src/BtBitfieldMessage.cc + * src/BtBitfieldMessageValidator.h + * src/BtExtendedMessage.cc + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessageValidator.h + * src/BtPieceMessage.cc + * src/BtPieceMessageValidator.h + * src/BtPortMessage.cc + * src/DHTFindNodeReplyMessage.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTMessageFactoryImpl.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DHTTokenTracker.cc + * src/DefaultBtMessageFactory.cc + * src/IndexBtMessage.cc + * src/IndexBtMessage.h + * src/IndexBtMessageValidator.h + * src/Makefile.am + * src/PeerMessageUtil.cc: Removed. + * src/PeerMessageUtil.h: Removed. + * src/RangeBtMessage.cc + * src/RangeBtMessage.h + * src/RangeBtMessageValidator.h + * src/UTPexExtensionMessage.cc + * src/ZeroBtMessage.cc + * src/ZeroBtMessage.h + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/BtAllowedFastMessageTest.cc + * test/BtBitfieldMessageTest.cc + * test/BtCancelMessageTest.cc + * test/BtChokeMessageTest.cc + * test/BtExtendedMessageTest.cc + * test/BtHandshakeMessageTest.cc + * test/BtHaveAllMessageTest.cc + * test/BtHaveMessageTest.cc + * test/BtHaveNoneMessageTest.cc + * test/BtInterestedMessageTest.cc + * test/BtNotInterestedMessageTest.cc + * test/BtPieceMessageTest.cc + * test/BtPortMessageTest.cc + * test/BtRejectMessageTest.cc + * test/BtRequestMessageTest.cc + * test/BtSuggestPieceMessageTest.cc + * test/BtUnchokeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTRoutingTableDeserializerTest.cc + * test/DHTRoutingTableSerializerTest.cc + * test/DefaultBtMessageFactoryTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/Makefile.am + * test/PeerListProcessorTest.cc + * test/PeerMessageUtilTest.cc: Removed. + * test/UTPexExtensionMessageTest.cc + +2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Limit the size of values list when sending get_peers reply. + * src/DHTGetPeersReplyMessage.cc + +2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated banner + * doc/xmlrpc/aria2rpc + +2009-09-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing help message for remove command. + * doc/xmlrpc/aria2rpc + +2009-09-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Generated configure and config.h.in + +2009-09-23 Ross Smith II <aria2spam at smithii dot com> + + Add check for fork(), which is missing on MinGW + * src/daemon.cc + * configure.ac + +2009-09-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused methods Util::fileCopy(), Util::rangedFileCopy(), + Util::expandBuffer(), Util::unfoldRange(), Util::indexRange() and + Util::httpGMT(). + * src/Util.cc + * src/Util.h + * test/UtilTest.cc + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.6.0 + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed a path to xmlrpc/README.txt + * doc/Makefile.am + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC in -v Configuration output. + * src/FeatureConfig.cc + * src/FeatureConfig.h + * test/FeatureConfigTest.cc + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Bulgarian, Russian, Slovak and Japanese + translations. Thanks to all translators. + * po/bg.po + * po/ja.po + * po/ru.po + * po/sk.po + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --retry-wait option from aria2rpc + * doc/xmlrpc/aria2rpc + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --retry-wait option from man page. + * doc/aria2c.1.txt + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --retry-wait option since the current architecture doesn't + allow sleep for particular URI. + * src/AbstractCommand.cc + * src/OptionHandlerFactory.cc + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + +2009-09-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Retry-After header support. Since the current architecture + doesn't allow sleep for particular URI. + * src/HttpSkipResponseCommand.cc + +2009-09-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated the help message for --daemon option. + * doc/aria2c.1.txt + * src/usage_text.h + +2009-09-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added our own daemon() function for systems which desn't have + daemon(3). + * configure.ac + * src/Makefile.am + * src/daemon.cc + * src/daemon.h + * src/option_processing.cc + +2009-09-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Simplified File::getCurrentDir() + * src/File.cc + +2009-09-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use exit() instead of _exit + * src/RequestGroupMan.cc + +2009-09-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced "CATEGORY" with "TAGS". + * src/usage_text.h + * doc/aria2c.1.txt + +2009-09-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated the help message for --help option. + * src/usage_text.h + * doc/aria2c.1.txt + +2009-09-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for added help tags. + * doc/aria2c.1.txt + +2009-09-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added help category #file. Added #file tag to the options related + to downloaded file. + * src/OptionHandlerFactory.cc + * src/help_tags.h + +2009-09-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added help categories: #cookie and #hook. Added #https tag to + --https-proxy and --https-proxy, --all-proxy and --no-proxy. + * src/OptionHandlerFactory.cc + * src/help_tags.h + +2009-09-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made MSG_NOT_FILE translatable. + * src/message.h + +2009-09-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page for --help option. + * doc/aria2c.1.txt + +2009-09-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * src/XmlRpcMethod.h + +2009-09-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Help category now starts with "#" to distinguish a category from + keyword search. For example, "http" categroy is now "#http". You + can type "--help=#http" to get explanation of options related to + http. If '#' is omitted, then the argument is treated as a keyword + and aria2 searches options whose name includes the keyword and + print matched ones. For example, "--help=http" will show options + whose name includes "http". + * src/OptionHandlerFactory.cc + * src/help_tags.h + * src/usage_text.h + * src/version_usage.cc + +2009-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented missing experimental tag and newly added xml-rpc tag in + man page. + * doc/aria2c.1.txt + +2009-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added xml-rpc help tag. Tagged xml-rpc related options with + xml-rpc tag. + * src/OptionHandlerFactory.cc + * src/help_tags.h + +2009-09-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated message when a path is not a file. Updated common message + for wrong option. + * src/OptionHandlerException.cc + * src/message.h + +2009-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use File::isFile() instead of File::exists(). Updated message when + a path is not a file. + * src/OptionHandlerImpl.cc + * src/message.h + +2009-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that server performence profile is not updated when + aria2c was terminated by emergency shutdown. + * src/TrackerWatcherCommand.cc + +2009-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use LocalFilePathOptionHandler for -T and -M option. + Updated message of MSG_FILE_NOT_EXIST. + * src/OptionHandlerFactory.cc + * src/message.h + +2009-09-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added LocalFilePathOptionHandler which check whether the specified + file path does exist or not. + * src/OptionHandlerImpl.cc + * src/message.h + +2009-09-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated wiki page URI. + * README + * doc/aria2c.1.txt + +2009-09-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added README.txt for xmlrpc directory. + * doc/Makefile.am + * doc/xmlrpc/README.txt + +2009-09-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.6.0. + * configure.ac + +2009-09-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XML-RPC client scripts written in ruby. + * doc/Makefile.am + * doc/xmlrpc/aria2mon + * doc/xmlrpc/aria2rpc + +2009-08-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added support for IPv6 literal address in URI. Now aria2 can + handle URI such as http://[::1]/ + * src/HttpRequest.cc + * src/HttpRequest.h + * src/Request.cc + * src/Request.h + * test/HttpRequestTest.cc + * test/OptionHandlerTest.cc + * test/RequestTest.cc + +2009-08-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that HTTP request header for XML-RPC request is not + parsed properly. + * src/HttpHeader.cc + * src/HttpHeaderProcessor.cc + +2009-08-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that XML-RPC authorization might be done before HTTP + request header is fully received. + * src/HttpServerCommand.cc + +2009-08-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --xml-rpc-listen-all option in man page. + * doc/aria2c.1.txt + +2009-08-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --xml-rpc-listen-all option. If true is given to this + option, aria2 listens incoming XML-RPC requests on all network + interfaces. If false is given, listens only on local loopback + interface. The default value is false. + * src/HttpListenCommand.cc + * src/OptionHandlerFactory.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-08-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.5.2 + +2009-08-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian and Russian translations. Thanks to all + translators. + * po/ru.po + * po/uk.po + +2009-08-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.5.2 + * configure.ac + +2009-08-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Get comment, comment.utf-8, created by and creation date from + .torrent file and print them in -S output. + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * test/BittorrentHelperTest.cc + * test/test.torrent + * test/utf8.torrent + +2009-08-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Show exact file size along in -S option output. + * src/Util.h + * src/bittorrent_helper.cc + * test/UtilTest.cc + +2009-08-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoided unnecessary memory allocation in + BitfieldMan::getCompletedLength(). + * src/BitfieldMan.cc + +2009-08-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that download fails if + SocketCore::establishConnection() throws exception and aria2 + doesn't try another address. + * src/AbstractCommand.cc + * src/InitiateConnectionCommand.cc + * src/message.h + +2009-08-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed sqlite3.m4 macro so that sqlite3_open_v2 function is + detected properly. + * m4/sqlite3.m4 + +2009-08-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed xmlrpc::elements::PARAMS to xmlrpc::elements::A2_PARAMS + because it causes compile error if PARAMS macro is defined. + * src/XmlRpcElements.cc + * src/XmlRpcElements.h + * src/XmlRpcRequestParserStateImpl.cc + +2009-07-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.5.1 + +2009-07-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.5.1 + * configure.ac + +2009-07-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without BitTorrent support + * src/DefaultBtProgressInfoFile.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + +2009-07-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing '=' in Download Results + * src/RequestGroupMan.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning + * src/DefaultBtProgressInfoFile.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning on 32bit systems. + * src/DownloadCommand.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call flush from ServerStatMan::save() + * src/ServerStatMan.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check stream status after file is opened. + * src/CookieStorage.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Signature::save() + * src/Signature.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten RequestGroupMan::saveServerStat() + * src/RequestGroupMan.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten stream error handling + * src/DHTAutoSaveCommand.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DHTSetup.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Check stream status after file is opened. + * src/DefaultBtProgressInfoFile.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten stream error handling + * src/DefaultBtProgressInfoFile.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Make sure that stream is closed before renaming file. Unit test + fails on mingw32 in the previous implementation. + * src/CookieStorage.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the unit test error without sqlite3 + * test/CookieStorageTest.cc + +2009-07-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the undefined reference error + * test/HttpResponseTest.cc + +2009-07-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.5.0 + +2009-07-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian, Italian, Danish, Bulgarian, Japanese and + Ukrainian translations. Thanks to all translators. + * po/ru.po + * po/it.po + * po/da.po + * po/bg.po + * po/ja.po + * po/uk.po + +2009-07-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing src/Logger.cc + * src/Logger.cc + +2009-07-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten Logger to avoiding constly virtual call. + * src/LogFactory.cc + * src/LogFactory.h + * src/Logger.h + * src/Makefile.am + * src/Makefile.in + * src/NullLogger.h: Removed. + * src/SimpleLogger.cc + * src/SimpleLogger.h + +2009-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/main.cc + +2009-07-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated debug log message + * src/AbstractCommand.cc + * src/message.h + +2009-07-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid to create zombie process when commands specified in + --on-download-* options are executed. Tested on Linux 2.6, Mac OS + X and NetBSD. + * src/main.cc + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * src/usage_text.h + * doc/aria2c.1.txt + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented 'errorCode' of tellStatus in man page. + * doc/aria2c.1.txt + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added 'errorCode' to the reponse of tellStatus xml-rpc method. + This key is only available for stopped/completed downloads and its + value is the error code defined in EXIT STATUS in man page. + * src/XmlRpcMethodImpl.cc + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that session download length is not updated when + PeerStat is not fastest one. + * src/SegmentMan.cc + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * doc/aria2c.1.txt + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * src/AbstractCommand.cc + +2009-07-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Handle the case when DownloadContext has no FileEntry. + * src/XmlRpcMethodImpl.cc + +2009-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Handle the situation where struct option.name is char *. + * configure.ac + * src/OptionParser.cc + +2009-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/AbstractCommand.cc + * src/DownloadCommand.cc + +2009-07-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use option of each download to create AuthConfig instead of global + option. + * src/AuthConfigFactory.cc + * src/AuthConfigFactory.h + * src/FtpNegotiationCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpSkipResponseCommand.cc + * src/MultiUrlRequestInfo.cc + * test/AuthConfigFactoryTest.cc + * test/FtpConnectionTest.cc + * test/HttpRequestTest.cc + +2009-07-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't call prepareForRetry(1) if all segments are ignored in + SegmentMan. + * src/AbstractCommand.cc + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/SegmentMan.cc + * src/SegmentMan.h + +2009-07-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed FileEntry::getAssociatedUris() + * src/FileEntry.h + +2009-07-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc: TODO1.5 -> TODO + * src/FileEntry.cc + * src/HttpResponseCommand.cc + +2009-07-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added assertion fileEntries.size() == 1 if BitTorrent is not + involved. + * src/RequestGroup.cc + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Eliminated duplicated filterBitfield initialization code. + * src/BitfieldMan.cc + * src/BitfieldMan.h + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added assert(!req.isNull()) when DlRetryEx is caught(this is + relatively naive approach, though). For DownloadFailureException, + we handle the case when req is null properly. + * src/AbstractCommand.cc + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added function returning suffix of control file to + DefaultBtProgressInfoFile. + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtProgressInfoFile.h + * src/RequestGroup.cc + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented getVersion in man page. + * doc/aria2c.1.txt + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented type of offset and num for tellWaiting xml-rpc method. + * doc/aria2c.1.txt + +2009-07-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Implemented getVersion xml-rpc method. This method returns struct + which has 2 key-value pairs: "version" key is associated to the + version of aria2, such as "1.5.0". "enabledFeatures" key is + associated to the list of enabled features, such as "Async DNS", + "BitTorrent". + * src/FeatureConfig.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed TLS1.1 protocol support when aria2 is built with gnutls + for compatibility issue. + * src/SocketCore.cc + +2009-07-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error with openSSL + * src/bittorrent_helper.cc + * src/messageDigest.h + +2009-07-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed bad code: setting certificate type priority to key + exchange priority. + * src/SocketCore.cc + +2009-07-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Disconnect seeder if client is also in seed state. + * src/BtBitfieldMessage.cc + * src/BtHaveAllMessage.cc + * src/BtHaveMessage.cc + * src/message.h + * test/BtBitfieldMessageTest.cc + * test/BtHaveAllMessageTest.cc + * test/BtHaveMessageTest.cc + * test/MockPieceStorage.h + +2009-07-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Keep CreateRequestCommand in queue when no segment is available so + that they can pick up pieces which slow BitTorrent peers are + downloading. + * src/AbstractCommand.cc + * src/CreateRequestCommand.cc + * src/CreateRequestCommand.h + +2009-07-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + --bt-stop-timeout now only checks download speed. + * src/BtStopDownloadCommand.cc + * src/BtStopDownloadCommand.h + * src/BtSetup.cc + * src/usage_text.h + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error regarding BUFSIZE. + * src/DownloadCommand.cc + * src/DownloadCommand.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented tellWaiting xml-rpc method in man page. + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.5.0 + * configure.ac + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed resolved TODO1.5 + * src/AbstractCommand.cc + * src/DownloadCommand.cc + * src/RequestGroup.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Release pooled and in-flight Request objectsand URIResult objects + in FileEntry after download completed. + * src/DownloadContext.cc + * src/DownloadContext.h + * src/FileEntry.cc + * src/FileEntry.h + * src/RequestGroup.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set manual and source attribute in aria2c.1.txt + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented that the default value of --use-head is 'false' in man + page. + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bt-stop-timeout option to -i list. + * doc/aria2c.1.txt + * src/download_helper.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + * src/usage_text.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed peer-id-prefix option from -i list. + * doc/aria2c.1.txt + * src/download_helper.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + * src/usage_text.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-stop-timeout option in man page. + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README regarding multi-file torrent web-seeding. + * doc/README.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page regarding multi-file torrent web-seeding. + * doc/aria2c.1.txt + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/version_usage.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Winsock select() doesn't work if no socket is in FD_SET. To + overcome this problem, a dummy socket is added to FD_SET and it is + given to select(). + * src/SelectEventPoll.cc + * src/SelectEventPoll.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Disabled --use-head option by default because --use-head=true + causes problems on some web sites. + * src/OptionHandlerFactory.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print URL List in -S option for torrent. + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Allocate buffer in ctor of DownloadCommand. + * src/DownloadCommand.cc + * src/DownloadCommand.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed DiskAdaptor::onDownloadComplete() + * src/DirectDiskAdaptor.cc + * src/DirectDiskAdaptor.h + * src/DiskAdaptor.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Committed missing BtStopDownloadCommand.{cc,h} + * src/BtStopDownloadCommand.cc + * src/BtStopDownloadCommand.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-stop-timeout=SEC option. This function stops BitTorrent + download if the download speed is 0 and the number of seeder is 0 + in consecutive SEC seconds. By default, this function is disabled. + * src/BtSetup.cc + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed the call to DiskAdaptor::onDownloadComplete() from + BtCheckIntegrityEntry and DefaultPieceStorage. + * src/BtCheckIntegrityEntry.cc + * src/DefaultPieceStorage.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Commented out throw statements when number of piece is 0 to + download 0 length torrent. + * src/bittorrent_helper.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call RequestGroup::createNextCommandWithAdj() from + BtFileAllocationEntry if at least one FileEntry has URI. The + static function hasAssociatedUri in RequestGroup.cc is renamed as + isUriSuppliedForRequsetFileEntry() and placed in FileEntry.h. + * src/BtFileAllocationEntry.cc + * src/FileEntry.h + * src/RequestGroup.cc + +2009-07-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Generate peer ID after SimpleRandomizer is initialized. + * src/main.cc + * src/option_processing.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused method argument. + * src/CreateRequestCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/TrackerWatcherCommand.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made URI reusing function work. + * src/CreateRequestCommand.cc + * src/FileEntry.cc + * src/FileEntry.h + * test/FileEntryTest.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Add formerly fastest PeerStat's sessionDownloadLength to new + fastest PeerStat and use _fastestPeerStats to calcuate downloaded + bytes in a session. + * src/PeerStat.cc + * src/SegmentMan.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + If pipelining is enabled, we can always pool socket. + * src/HttpDownloadCommand.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In a single file download, file size becomes known just after + downloading, set total length to FileEntry object when download + completed. + * src/DownloadCommand.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use std::vector::reserve() for fileEntries and pieceHashes in + bittorrent_helper + * src/bittorrent_helper.cc + +2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed calls to Request::resetUrl() in AbstractCommand.cc. + Removed hidden option PREF_RESET_URI. + * src/AbstractCommand.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused variable/function. + * src/PeerStat.h + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Show first URL in Download Results if file path is not available. + * src/FileEntry.h + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Throw exception if file path doesn't exist in FTP URL. + * src/InitiateConnectionCommandFactory.cc + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored BitfieldMan::getSparseMissingUnusedIndex() + * src/BitfieldMan.cc + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten PeerStats handling in SegmentMan.cc. Now we have 2 list + of PeerStat in SegmentMan. peerStats is used for calculating + download speed. Therefore all active PeerStats should be in + there. Another one is _fastestPeerStats and it only contains + fastest PeerStat for each hostname/protocol pair. They are used + for updating ServerStat. + * src/DownloadCommand.cc + * src/Request.h + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * test/SegmentManTest.cc + +2009-07-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Try all available addresses returned by DNS until it gets + connected in HTTP(S)/FTP download + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyRequestCommand.h + * src/DNSCache.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpInitiateConnectionCommand.cc + * src/FtpInitiateConnectionCommand.h + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/HttpInitiateConnectionCommand.cc + * src/HttpInitiateConnectionCommand.h + * src/HttpRequestCommand.cc + * src/HttpRequestCommand.h + * src/InitiateConnectionCommand.cc + * src/InitiateConnectionCommand.h + * test/DNSCacheTest.cc + * test/Makefile.am + * test/SimpleDNSCacheTest.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/download_helper.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored fieldMan ctor. + * src/BitfieldMan.cc + * src/BitfieldMan.h + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't print "No files to download." message if -S is given. + * src/main.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set referer and method to newly created Request object. + * src/CreateRequestCommand.cc + * src/FileEntry.cc + * src/FileEntry.h + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed ctor of AbstractCommand which doesn't take FileEntry. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/CreateRequestCommand.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Get proxy download working + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyRequestCommand.h + * src/AbstractProxyResponseCommand.cc + * src/AbstractProxyResponseCommand.h + * src/FtpInitiateConnectionCommand.cc + * src/FtpTunnelRequestCommand.cc + * src/FtpTunnelRequestCommand.h + * src/FtpTunnelResponseCommand.cc + * src/FtpTunnelResponseCommand.h + * src/HttpInitiateConnectionCommand.cc + * src/HttpProxyRequestCommand.cc + * src/HttpProxyRequestCommand.h + * src/HttpProxyResponseCommand.cc + * src/HttpProxyResponseCommand.h + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use SegmentMan::getSegment(cuid) for single file download. + * src/AbstractCommand.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed bufSize calculation + * src/DownloadCommand.cc + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't append "/" if base URI ends with "/". + * src/bittorrent_helper.cc + * test/url-list-multiFile.torrent + +2009-07-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + HTTP pipelining is now working. Fixed Segmention fault in + BitfieldMan's copy ctor. + * src/AbstractCommand.cc + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/DownloadCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpRequest.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * test/BitfieldManTest.cc + * test/SegmentManTest.cc + +2009-06-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed ServerHost. Same functionality is implemented using + FileEntry's in-flight Request objects. + * src/AbstractCommand.cc + * src/BtDependency.cc + * src/CreateRequestCommand.cc + * src/FileEntry.cc + * src/FileEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/Makefile.am + * src/Metalink2RequestGroup.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/ServerHost.cc: Removed + * src/ServerHost.h: Removed + * test/BtDependencyTest.cc + * test/FileEntryTest.cc + * test/RequestGroupTest.cc + +2009-06-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten PeerStat handling. In the previous implementation, + faster command tries to find slower command. In this new + implementation, slower command tries to find faster command. + PeerStat is now created in each HTTP/FTP request to get download + rate correctly. If the download range is small, the download rate + tends to small and this will occur at the later stage of download. + * src/AbstractCommand.cc + * src/DownloadCommand.cc + * src/FileEntry.cc + * src/FileEntry.h + * src/Request.cc + * src/Request.h + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * test/SegmentManTest.cc + +2009-06-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed _uris from RequestGroup. All functions that refer to _uris + were moved to FileEntry. Exit status code are now defined in + DownloadResultCode.h. + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + * src/AutoSaveCommand.cc + * src/BtPostDownloadHandler.cc + * src/CheckIntegrityDispatcherCommand.cc + * src/CookieStorage.cc + * src/DHTAutoSaveCommand.cc + * src/DHTBucketRefreshCommand.cc + * src/DHTEntryPointNameResolveCommand.cc + * src/DHTInteractionCommand.cc + * src/DHTPeerAnnounceCommand.cc + * src/DHTTokenUpdateCommand.cc + * src/DlAbortEx.h + * src/DlRetryEx.h + * src/DownloadCommand.cc + * src/DownloadContext.h + * src/DownloadFailureException.h + * src/DownloadResult.h + * src/DownloadResultCode.h + * src/FeedbackURISelector.cc + * src/FeedbackURISelector.h + * src/FileEntry.cc + * src/FileEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpListenCommand.cc + * src/HttpResponseCommand.cc + * src/HttpServerResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/InOrderURISelector.cc + * src/InOrderURISelector.h + * src/Makefile.am + * src/Makefile.in + * src/Metalink2RequestGroup.cc + * src/MultiUrlRequestInfo.cc + * src/MultiUrlRequestInfo.h + * src/OptionHandlerFactory.cc + * src/PeerListenCommand.cc + * src/RecoverableException.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/TimedHaltCommand.cc + * src/TrackerWatcherCommand.cc + * src/URIResult.cc + * src/URIResult.h + * src/URISelector.h + * src/XmlRpcMethodImpl.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/main.cc + * src/option_processing.cc + * test/BtDependencyTest.cc + * test/BtPostDownloadHandlerTest.cc + * test/CookieStorageTest.cc + * test/DefaultBtMessageDispatcherTest.cc + * test/DownloadHandlerFactoryTest.cc + * test/DownloadHelperTest.cc + * test/FeedbackURISelectorTest.cc + * test/FileEntryTest.cc + * test/InOrderURISelectorTest.cc + * test/Metalink2RequestGroupTest.cc + * test/MetalinkPostDownloadHandlerTest.cc + * test/RequestGroupManTest.cc + * test/RequestGroupTest.cc + * test/XmlRpcMethodTest.cc + +2009-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + Removed MockBtContext.h + * test/Makefile.am + +2009-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed _currentRequest from StreamCheckIntegrityEntry and + StreamFileAllocationEntry. + * src/AbstractCommand.cc + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + * src/StreamCheckIntegrityEntry.cc + * src/StreamCheckIntegrityEntry.h + * src/StreamFileAllocationEntry.cc + * src/StreamFileAllocationEntry.h + +2009-06-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten DownloadContext and removed SingleFileDownloadContext + and BtContext and its derived classes. BitTorrent specific + attributes are now set by DownloadContext::setAttribute() with key + bittorrent::BITTORRENT. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyResponseCommand.cc + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/AnnounceList.cc + * src/BtCheckIntegrityEntry.cc + * src/BtConstants.h + * src/BtContext.h: Removed + * src/BtDependency.cc + * src/BtExtendedMessage.cc + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtPostDownloadHandler.cc + * src/BtRegistry.cc + * src/BtRegistry.h + * src/BtSetup.cc + * src/CheckIntegrityCommand.cc + * src/CheckIntegrityEntry.cc + * src/ChecksumCheckIntegrityEntry.cc + * src/ConsoleStatCalc.cc + * src/ContentTypeRequestGroupCriteria.cc + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + * src/DHTPeerLookupTask.cc + * src/DHTPeerLookupTask.h + * src/DHTTaskFactory.h + * src/DHTTaskFactoryImpl.cc + * src/DHTTaskFactoryImpl.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + * src/DefaultBtContext.cc: Removed + * src/DefaultBtContext.h: Removed + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/DefaultBtMessageFactory.cc + * src/DefaultBtMessageFactory.h + * src/DefaultBtMessageReceiver.cc + * src/DefaultBtMessageReceiver.h + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultBtRequestFactory.h + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/DefaultPieceStorage.cc + * src/DefaultSegmentManFactory.cc + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/DownloadContext.cc + * src/DownloadContext.h + * src/DownloadEngine.cc + * src/DownloadEngineFactory.cc + * src/DownloadHandler.cc + * src/DownloadResult.h + * src/FileAllocationCommand.cc + * src/FileAllocationDispatcherCommand.cc + * src/FileAllocationEntry.cc + * src/FileEntry.h + * src/FillRequestGroupCommand.cc + * src/FtpDownloadCommand.cc + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpTunnelRequestCommand.cc + * src/FtpTunnelResponseCommand.cc + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * src/HaveEraseCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpProxyRequestCommand.cc + * src/HttpProxyResponseCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommandFactory.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/InitiatorMSEHandshakeCommand.h + * src/IteratableChecksumValidator.cc + * src/IteratableChecksumValidator.h + * src/IteratableChunkChecksumValidator.cc + * src/MSEHandshake.cc + * src/MSEHandshake.h + * src/Makefile.am + * src/Makefile.in + * src/Metalink2RequestGroup.cc + * src/MetalinkPostDownloadHandler.cc + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/MultiFileAllocationIterator.cc + * src/MultiUrlRequestInfo.cc + * src/PeerChokeCommand.cc + * src/PeerChokeCommand.h + * src/PeerInitiateConnectionCommand.cc + * src/PeerInitiateConnectionCommand.h + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/PieceHashCheckIntegrityEntry.cc + * src/RealtimeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupEntry.cc + * src/RequestGroupMan.cc + * src/SeedCheckCommand.cc + * src/SeedCheckCommand.h + * src/SegmentMan.cc + * src/ShareRatioSeedCriteria.h + * src/SingleFileDownloadContext.cc: Removed + * src/SingleFileDownloadContext.h: Removed + * src/SleepCommand.cc + * src/StreamCheckIntegrityEntry.cc + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + * src/UnknownLengthPieceStorage.cc + * src/Util.cc + * src/Util.h + * src/XmlRpcMethodImpl.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/main.cc + * src/option_processing.cc + * test/BitfieldManTest.cc + * test/BittorrentHelperTest.cc + * test/BtCancelMessageTest.cc + * test/BtChokeMessageTest.cc + * test/BtDependencyTest.cc + * test/BtPieceMessageTest.cc + * test/BtPostDownloadHandlerTest.cc + * test/BtRegistryTest.cc + * test/BtRejectMessageTest.cc + * test/BtRequestMessageTest.cc + * test/DHTPeerAnnounceStorageTest.cc + * test/DefaultBtAnnounceTest.cc + * test/DefaultBtContextTest.cc: Removed + * test/DefaultBtMessageDispatcherTest.cc + * test/DefaultBtMessageFactoryTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DefaultBtRequestFactoryTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/DefaultPeerStorageTest.cc + * test/DefaultPieceStorageTest.cc + * test/DirectDiskAdaptorTest.cc + * test/DownloadContextTest.cc + * test/DownloadHandlerFactoryTest.cc + * test/DownloadHelperTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + * test/IteratableChecksumValidatorTest.cc + * test/IteratableChunkChecksumValidatorTest.cc + * test/MSEHandshakeTest.cc + * test/Makefile.am + * test/Makefile.in + * test/Metalink2RequestGroupTest.cc + * test/MetalinkPostDownloadHandlerTest.cc + * test/MockBtContext.h: Removed + * test/MockDHTTaskFactory.h + * test/MockDownloadContext.h: Removed + * test/MockPieceStorage.h + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/RequestGroupManTest.cc + * test/RequestGroupTest.cc + * test/SegmentManTest.cc + * test/ShareRatioSeedCriteriaTest.cc + * test/SingleFileDownloadContextTest.cc: Removed + * test/UtilTest.cc + * test/XmlRpcMethodTest.cc + +2009-06-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added experimental support of WEB-Seeding for multi-file torrent. + Due to fundamental changes in file handling in HTTP/FTP code, many + functions are not working: PeerStat, ServerHost, proxy..etc + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/CreateRequestCommand.cc + * src/CreateRequestCommand.h + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/DownloadContext.cc + * src/DownloadContext.h + * src/FileEntry.cc + * src/FileEntry.h + * src/FtpDownloadCommand.cc + * src/FtpDownloadCommand.h + * src/FtpFinishDownloadCommand.cc + * src/FtpFinishDownloadCommand.h + * src/FtpInitiateConnectionCommand.cc + * src/FtpInitiateConnectionCommand.h + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/FtpTunnelResponseCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpDownloadCommand.h + * src/HttpInitiateConnectionCommand.cc + * src/HttpInitiateConnectionCommand.h + * src/HttpProxyResponseCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpRequestCommand.h + * src/HttpResponseCommand.cc + * src/HttpResponseCommand.h + * src/HttpSkipResponseCommand.cc + * src/HttpSkipResponseCommand.h + * src/InitiateConnectionCommand.cc + * src/InitiateConnectionCommand.h + * src/InitiateConnectionCommandFactory.cc + * src/InitiateConnectionCommandFactory.h + * src/Makefile.am + * src/PieceStorage.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/SegmentMan.cc + * src/SegmentMan.h + * src/SingleFileDownloadContext.h + * src/StreamFileAllocationEntry.cc + * src/TrackerWatcherCommand.cc + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * src/array_fun.h + * src/bitfield.h + * src/download_helper.cc + * test/DownloadContextTest.cc + * test/Makefile.am + * test/MockDownloadContext.h + +2009-06-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tellWaiting XML-RPC method. + * src/SingleFileDownloadContext.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-06-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated CookieStorageTest + * test/CookieStorageTest.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In TLSContext::addClientKeyFile() and addTrustedCACertFile(), + handle excepion inside these functions. + * src/LibgnutlsTLSContext.cc + * src/LibgnutlsTLSContext.h + * src/LibsslTLSContext.cc + * src/LibsslTLSContext.h + * src/MultiUrlRequestInfo.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added comment + * src/RequestGroup.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In CookieStorage::load() and saveNsFormat(), handle exception + inside the functions. When saving Cookies, first write temporary + file and after successful writes, then renames it to final + destination. + * src/CookieStorage.cc + * src/CookieStorage.h + * src/MultiUrlRequestInfo.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + The default value of --dir option is the absolute path to the + current directory. If getcwd() is failed, then it is ".", which is + the same value with old implementation. This change is necessary + because after daemon() call, the current working directory is + changed to /. + * src/File.cc + * src/File.h + * src/OptionHandlerFactory.cc + * src/option_processing.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call daemon() with arguments(0,0), which means daemon() changes + current working directory to / and redirects stdin, stdout and + stderr to /dev/null. + * src/option_processing.cc + +2009-06-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Small performance optimizations. + * src/RequestGroupMan.cc + +2009-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added _xmlRpc member variable to RequestGroupMan to reduce the + number of call Option::getAsBool(PREF_ENABLE_XML_RPC) + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + +2009-06-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call setStatus(STATUS_ONESHOT_REALTIME) from constructor. Call + setNoWiat(true) if newly created command calls + setStatus(STATUS_ONESHOT_REALTIME) from its constructor. + * src/HttpListenCommand.cc + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/HttpServerResponseCommand.cc + * src/InitiateConnectionCommand.cc + * src/RequestGroup.cc + * src/StreamFileAllocationEntry.cc + +2009-06-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed include vector + * src/BtRegistry.h + +2009-06-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten BtRegistry + * src/BtRegistry.cc + * src/BtRegistry.h + * src/BtSetup.cc + * src/ConsoleStatCalc.cc + * src/PeerInteractionCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + * src/RequestGroup.cc + * src/XmlRpcMethodImpl.cc + * test/BtRegistryTest.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Used array_ptr for savedInfoHash, savedBitfield and pieceBitfield. + * src/DefaultBtProgressInfoFile.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Throw an exception if position is less than 0. + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use writeFilePath() in ConsoleStatCalc.cc + * src/ConsoleStatCalc.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Receive the return value as const reference from + DownloadContext::getFileEntries(). + * src/DefaultPieceStorage.cc + * src/RequestGroupMan.cc + * src/XmlRpcMethodImpl.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + DownloadContext now has _fileEntries so that + DownloadContext::getFileEntries() can returns its const reference. + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/DownloadContext.cc + * src/DownloadContext.h + * src/SingleFileDownloadContext.cc + * src/SingleFileDownloadContext.h + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved getFirstRequestedFileEntry(), countRequestedFileEntry() and + writeFilePath() function template from RequestGroupMan.cc to + FileEntry.h + * src/FileEntry.h + * src/RequestGroupMan.cc + +2009-06-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented 'position' parameter is starting from 0 in man page. + * doc/aria2c.1.txt + +2009-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc. + * src/MSEHandshake.cc + +2009-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed _acceptFeatures and its accessor functions from + RequestGroup since they are not used practically. + * src/HttpRequestCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2009-06-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed member _maxTries from RequestGroup class to avoid + duplicate option value. Those classes who refer this variable + should use option value of PREF_MAX_TRIES directly. + * src/AbstractCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/TrackerWatcherCommand.cc + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.4.1 + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warnings on netbsd + * src/DHTConnectionImpl.cc + * src/PeerListenCommand.cc + * src/PeerSessionResource.cc + * src/SegmentMan.cc + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian translation. Thanks to all translators. + * po/uk.po + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.4.1. + * configure.ac + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added unit tests for strjoin, strconcat and strappend. + * test/a2functionalTest.cc + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten strconcat and strappend using operator+ instead of + append(). + * src/a2functional.h + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Compile bencode.cc and BencodeTest.cc only if BitTorrent support + is enabled. + * src/Makefile.am + * test/Makefile.am + +2009-06-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added countSeeder() function which counts seeder in the given + iterator range. Use it in ConsoleStatCalc and XmlRpcMethodImpl. + * src/ConsoleStatCalc.cc + * src/Peer.h + * src/XmlRpcMethodImpl.cc + * test/PeerTest.cc + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented missing seeder in getPeers xml-rpc method. + Documented uploadLength and numSeeders. + * doc/aria2c.1.txt + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added uploadLength and numSeeders to the response of tellStatus + xml-rpc method. Assert that PeerStorage instance is not null + instead of checking if statement. It should be non-null in this + context. + * src/XmlRpcMethodImpl.cc + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use htmlEscape instead of xmlEscape. Removed static function xmlEscape. + * src/XmlRpcResponse.cc + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid intermediate object during string concatenation. + * src/HttpRequest.cc + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added strjoin function template. Use it in pathJoin() + * src/Util.h + * src/a2functional.h + +2009-06-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid intermediate object during string concatenation. Replaced + post-increment unary operator with pre-increment one in for loop. + * src/AdaptiveURISelector.cc + * src/AnnounceList.cc + * src/AuthConfig.h + * src/BtBitfieldMessage.cc + * src/BtExtendedMessage.cc + * src/BtHandshakeMessage.cc + * src/BtPieceMessage.cc + * src/BtPortMessage.cc + * src/Cookie.cc + * src/DHTAnnouncePeerMessage.cc + * src/DHTAutoSaveCommand.cc + * src/DHTGetPeersReplyMessage.cc + * src/DHTNode.cc + * src/DHTQueryMessage.cc + * src/DHTResponseMessage.cc + * src/DHTUnknownMessage.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtContext.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultPeerStorage.cc + * src/DownloadEngine.cc + * src/FeatureConfig.cc + * src/File.cc + * src/FtpConnection.cc + * src/FtpNegotiationCommand.cc + * src/HandshakeExtensionMessage.cc + * src/HttpConnection.cc + * src/HttpRequest.cc + * src/HttpResponseCommand.cc + * src/HttpServer.cc + * src/IndexBtMessage.cc + * src/Metalink2RequestGroup.cc + * src/OptionHandlerImpl.h + * src/PStringBuildVisitor.cc + * src/Peer.cc + * src/PeerListenCommand.cc + * src/Piece.cc + * src/RangeBtMessage.cc + * src/Request.cc + * src/Request.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/ServerStat.cc + * src/ServerStatMan.cc + * src/UTPexExtensionMessage.cc + * src/Util.cc + * src/a2functional.h + * src/download_helper.cc + * src/messageDigest.cc + +2009-06-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Unchoke a peer randomly at first and second choke round in seed + state. + * src/BtSeederStateChoke.cc + +2009-06-02 Ross Smith II <aria2spam at smithii dot com> + + Added (sock_t) to quiet compiler warnings in MinGW + * src/SocketCore.cc + * src/SocketCore.h + +2009-06-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing #ifdef ENABLE_ASYNC_DNS guard. + * src/EpollEventPoll.h + +2009-06-01 Ross Smith II <aria2spam at smithii dot com> + + Added fork() emulation using CreateProcess() in MinGW + * src/RequestGroupMan.cc + +2009-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.4.0 + +2009-06-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added utf8.torrent to EXTRA_DIST + * test/Makefile.am + +2009-05-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed docs of aria2.addMetalink xml-rpc method. + * doc/aria2c.1.txt + +2009-05-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Slovak translation. Updated Ukrainian and Brazilian + Portuguese translation. Thanks to all translators. + * po/sk.po + * po/uk.po + * po/pt_BR.po + * po/LINGUAS + +2009-05-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test case for XmlRpcProcessor to fail to parse malformed + document. + * test/XmlRpcRequestProcessorTest.cc + +2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed *.gmo files in po because they are generated on 'make + dist' + * po/*.gmo + +2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented max-concurrent-downloads of changeGlobalOption method + in man page. + * doc/aria2c.1.txt + +2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added max-concurrent-downloads option to changeGlobalOption + xml-rpc method. Rewritten loop conditional in + RequestGroupMan::fillRequestGroupFromReserver(). + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethodImpl.cc + +2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented position parameter in man page. + * doc/aria2c.1.txt + +2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added 'position' parameter to addUri, addTorrent and addMetalink + xml-rpc method. + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Peer.cc from compile source list when --disable-bittorrent + is specified. Added #ifdef ENABLE_BITTORRENT guard to methods that + takes Peer. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/Makefile.am + * src/PieceStorage.h + * src/UnknownLengthPieceStorage.cc + * src/UnknownLengthPieceStorage.h + * test/MockPieceStorage.h + +2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Implemented getter methods in header files to give them more + chance of optimization. + Return const reference for SharadHandle if possible. + * src/AbstractAuthResolver.cc + * src/AbstractAuthResolver.h + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/AsyncNameResolver.cc + * src/AsyncNameResolver.h + * src/BNode.cc + * src/BNode.h + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/BtAbortOutstandingRequestEvent.h + * src/BtExtendedMessage.cc + * src/BtExtendedMessage.h + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + * src/Cookie.cc + * src/Cookie.h + * src/DHTBucket.cc + * src/DHTBucket.h + * src/DHTConnectionImpl.cc + * src/DHTConnectionImpl.h + * src/DHTFindNodeReplyMessage.cc + * src/DHTFindNodeReplyMessage.h + * src/DHTGetPeersReplyMessage.cc + * src/DHTGetPeersReplyMessage.h + * src/DHTInteractionCommand.cc + * src/DHTMessage.cc + * src/DHTMessage.h + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageEntry.cc + * src/DHTMessageReceiver.cc + * src/DHTMessageReceiver.h + * src/DHTMessageTrackerEntry.cc + * src/DHTMessageTrackerEntry.h + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceEntry.h + * src/DHTPeerLookupTask.cc + * src/DHTPeerLookupTask.h + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableDeserializer.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/DefaultBtRequestFactory.cc + * src/DefaultBtRequestFactory.h + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/DownloadContext.cc + * src/DownloadContext.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/EpollEventPoll.cc + * src/EpollEventPoll.h + * src/FtpConnection.cc + * src/FtpConnection.h + * src/HttpConnection.cc + * src/HttpConnection.h + * src/HttpHeader.cc + * src/HttpHeader.h + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpResponse.cc + * src/HttpResponse.h + * src/LibsslTLSContext.cc + * src/LibsslTLSContext.h + * src/MSEHandshake.cc + * src/MSEHandshake.h + * src/MetalinkEntry.cc + * src/MetalinkEntry.h + * src/MetalinkParserController.cc + * src/MetalinkParserController.h + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/NetrcAuthResolver.cc + * src/NetrcAuthResolver.h + * src/Peer.cc + * src/Peer.h + * src/PeerSessionResource.cc + * src/PeerSessionResource.h + * src/Piece.cc + * src/Piece.h + * src/PieceStatMan.cc + * src/PieceStatMan.h + * src/Request.cc + * src/Request.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/RequestSlot.cc + * src/RequestSlot.h + * src/SegmentMan.cc + * src/SegmentMan.h + * src/SelectEventPoll.cc + * src/SelectEventPoll.h + * src/ServerStat.cc + * src/ServerStat.h + * src/Signature.cc + * src/Signature.h + * src/URIResult.cc + * src/URIResult.h + * src/UTPexExtensionMessage.cc + * src/UTPexExtensionMessage.h + +2009-05-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without BitTorrent and Metalink support. + * src/XmlRpcMethod.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten the help message for --allow-overwrite option. + * doc/aria2c.1.txt + * src/usage_text.h + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + * src/usage_text.h + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README for 1.4.0 release. Use new table syntax of + asciidoc. + * README + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --xml-rpc-max-request-size option in man page. + * doc/aria2c.1.txt + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved C_* constants from BtContext to DefaultBtContext. + * src/BtContext.cc: Removed. + * src/BtContext.h + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/Makefile.am + +2009-05-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use name.utf-8 and path.utf-8 key in higher priority than name and + path key respectively when persing .torrent file. + * src/BtContext.cc + * src/BtContext.h + * src/DefaultBtContext.cc + * test/DefaultBtContextTest.cc + * test/utf8.torrent + +2009-05-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --xml-rpc-max-request-size option to limit the size of + XML-RPC request. + +2009-05-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented XML-RPC API in man page. + * doc/aria2c.1.txt + +2009-05-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed g++-4.4 compiler warning: dereferencing type-punned pointer + will break strict-aliasing rules + * src/PeerConnection.cc + * test/DHTRoutingTableSerializerTest.cc + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed PKG_CONFIG variable in sqlite3.m4, which conflicts the + variable in pkg.m4. Use PKG_CHECK_MODULES instead of hand-crafted + scripts. Renamed SQLITE3_CPPFLAGS as SQLITE3_CFLAGS since + PKG_CHECK_MODULES macro uses latter name. + * m4/sqlite3.m4 + * src/Makefile.am + * test/Makefile.am + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * configure.ac + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Since upcoming libgnutls 2.8 doesn't have libgnutls-config, Check + presence of libgnutls using pkg-config first. If it fails, fall + back to old macro libgnutls.m4. + * configure.ac + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use s itself instead of !s.bad() + * src/CookieStorage.cc + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --on-download-* option and --save-cookies option in man + page. + * doc/aria2c.1.txt + +2009-05-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set possible values for --load-cookie option to "/path/to/file". + * src/OptionHandlerFactory.cc + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --save-cookies option. + * src/Cookie.cc + * src/Cookie.h + * src/CookieStorage.cc + * src/CookieStorage.h + * src/MultiUrlRequestInfo.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/CookieStorageTest.cc + * test/CookieTest.cc + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed tellAll XML-RPC command because its reponse tends to be + big if stopped/waiting downloads pile up. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added the ability to execute command when download starts and + stops. You can also specify command for particular cases such as + complete/error download. Added --on-download-start, + --on-download-stop, --on-download-complete and --on-download-error + option. + * src/OptionHandlerFactory.cc + * src/RequestGroupMan.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed test error + * test/BencodeTest.cc + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added unit tests. + * test/XmlRpcMethodTest.cc + +2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made exception message more verbose. + * src/bencode.cc + +2009-05-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Abbreviated KiB/s to KiBs and its precision decreased to 1 to save + space in console readout. Also they are now shown in MiB/s if + speed > 1024KiB/s. + * src/ConsoleStatCalc.cc + +2009-05-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added SEED to console output, which represents the number of + seeders currently the client is connecting to. + * src/ConsoleStatCalc.cc + * src/ConsoleStatCalc.h + * src/DownloadEngine.cc + * src/NullStatCalc.h + * src/StatCalc.h + +2009-05-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added source filename(__FILE__) and line number(__LINE__) to + exception message. + * src/AbstractCommand.cc + * src/AbstractDiskWriter.cc + * src/AbstractProxyResponseCommand.cc + * src/BDE.h + * src/BtAllowedFastMessage.cc + * src/BtHandshakeMessageValidator.h + * src/BtHaveAllMessage.cc + * src/BtHaveNoneMessage.cc + * src/BtPieceMessage.cc + * src/BtRejectMessage.cc + * src/ChunkedDecoder.cc + * src/CookieStorage.cc + * src/DHTAnnouncePeerMessage.cc + * src/DHTEntryPointNameResolveCommand.cc + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageTracker.cc + * src/DHTRoutingTableDeserializer.cc + * src/DHTRoutingTableSerializer.cc + * src/DHTSetup.cc + * src/DHTTokenTracker.cc + * src/DefaultBtAnnounce.cc + * src/DefaultBtContext.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageFactory.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultExtensionMessageFactory.cc + * src/DlAbortEx.h + * src/DlRetryEx.h + * src/DownloadCommand.cc + * src/DownloadEngineFactory.cc + * src/DownloadFailureException.h + * src/Exception.cc + * src/Exception.h + * src/ExpatMetalinkProcessor.cc + * src/ExpatXmlRpcRequestProcessor.cc + * src/FallocFileAllocationIterator.cc + * src/FatalException.h + * src/FtpConnection.cc + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/GZipDecoder.cc + * src/HandshakeExtensionMessage.cc + * src/HttpConnection.cc + * src/HttpHeaderProcessor.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/HttpServer.cc + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommandFactory.cc + * src/IteratableChunkChecksumValidator.cc + * src/LibgcryptARC4Context.h + * src/LibgcryptARC4Decryptor.h + * src/LibgcryptARC4Encryptor.h + * src/LibgcryptDHKeyExchange.h + * src/LibgnutlsTLSContext.cc + * src/LibsslARC4Context.h + * src/LibsslARC4Decryptor.h + * src/LibsslARC4Encryptor.h + * src/LibsslDHKeyExchange.h + * src/LibsslTLSContext.cc + * src/MSEHandshake.cc + * src/MessageDigestHelper.cc + * src/MetalinkHelper.cc + * src/MultiDiskAdaptor.cc + * src/NameMatchOptionHandler.h + * src/NameResolver.cc + * src/Netrc.cc + * src/NsCookieParser.cc + * src/OptionHandlerException.cc + * src/OptionHandlerException.h + * src/OptionHandlerImpl.h + * src/OptionParser.cc + * src/ParameterizedStringParser.cc + * src/PeerAbstractCommand.cc + * src/PeerConnection.cc + * src/PeerMessageUtil.cc + * src/PeerReceiveHandshakeCommand.cc + * src/Platform.cc + * src/ReceiverMSEHandshakeCommand.cc + * src/RecoverableException.h + * src/RequestGroup.cc + * src/SimpleLogger.cc + * src/SocketCore.cc + * src/Sqlite3MozCookieParser.cc + * src/UTPexExtensionMessage.cc + * src/Util.cc + * src/XML2SAXMetalinkProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/XmlRpcMethodImpl.cc + * src/bencode.cc + * src/download_helper.cc + * src/messageDigest.h + * test/ExceptionTest.cc + * test/TestUtil.cc + +2009-05-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.4.0 + * configure.ac + +2009-05-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added 2files.metalink to EXTRA_DIST + * test/Makefile.am + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing 2files.metalink + * test/2files.metalink + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Show "[MEMORY]" prefix before filename in download summary if it + is downloaded into memory. + * src/DownloadResult.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined MSG_CANNOT_PARSE_XML_RPC_REQUEST + * src/ExpatXmlRpcRequestProcessor.cc + * src/Xml2XmlRpcRequestProcessor.cc + * src/message.h + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined const BDEs to avoid duplicate instantiation. + Defined MSG_GID_NOT_PROVIDED. + * src/XmlRpcMethodImpl.cc + * src/message.h + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/Xml2XmlRpcRequestProcessor.cc + * src/Xml2XmlRpcRequestProcessor.h + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined ENABLE_XML_RPC + * configure.ac + * configure + * config.h.in + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added ExpatXmlRpcRequestProcessor + * src/ExpatXmlRpcRequestProcessor.cc + * src/ExpatXmlRpcRequestProcessor.h + * src/Makefile.am + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tests for addTorrent and addMetalink command. + * test/TestUtil.cc + * test/TestUtil.h + * test/XmlRpcMethodTest.cc + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Corrected the description of --file-allocation option. + * doc/aria2c.1.txt + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tellAll command. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use gatherProgress() in TellActiveXmlRpcMethod::process(). + * src/XmlRpcMethodImpl.cc + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added changeGlobalOption command. Currently, + max-overall-download-limit and max-overall-upload-limit option are + available. + * src/RequestGroupMan.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-05-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added changeOption command. Currently, max-download-limit, + max-upload-limit option are available in this command. + * src/RequestGroup.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added purgeDownloadResult command. + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored. + * src/XmlRpcMethod.cc + +2009-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added XmlRpcResponse class. XmlRpcMethod::execute() now returns + XmlRpcResponse. + * src/HttpServerBodyCommand.cc + * src/Makefile.am + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodImpl.cc + * src/XmlRpcResponse.cc + * src/XmlRpcResponse.h + * test/XmlRpcMethodTest.cc + +2009-05-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In XML-RPC option struct, header and index-out option can take + array as value. + * src/XmlRpcMethod.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused option member from PeerConnection. + * src/InitiatorMSEHandshakeCommand.cc + * src/PeerConnection.cc + * src/PeerConnection.h + * src/PeerInteractionCommand.cc + * src/PeerReceiveHandshakeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added "seeder" key to getPeers response. + * src/XmlRpcMethodImpl.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added addMetalink XML-RPC command. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/download_helper.cc + * src/download_helper.h + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that POU peers are never choked in seeding. + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added web-seeding URI handling in addTorrent command. + * src/XmlRpcMethodImpl.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added "length" key to getFiles response. + * src/XmlRpcMethodImpl.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved --no-netrc option from ftp option section to http/ftp option + section. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed garbage "\" character before ' + * doc/aria2c.1.txt + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed garbage "\" character before http. + * doc/aria2c.1.txt + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented additional options that can be specified in -i list. + Documented --enable-xml-rpc, --xml-rpc-listen-port, --xml-rpc-user + and --xml-rpc-passwd. Removed --enable-http-server and + --http-server-listen-port. + * doc/aria2c.1.txt + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added "downloadSpeed" and uploadSpeed" key in getPeers response. + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/PeerStorage.h + * src/XmlRpcMethodImpl.cc + * test/MockPeerStorage.h + +2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Put a call to Socket::isReadable() in try block. + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed segmentation fault error. SocketBuffer::sendResponse() may throw + exception , so it is now in try block. + * src/HttpServerResponseCommand.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added "amChoking" and "peerChoking" key in getPeers response. + * src/XmlRpcMethodImpl.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test case for zero-length filter. + * test/BitfieldManTest.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + getFiles command now returns file data for finished/stopped + downloads. + * src/XmlRpcMethodImpl.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + DownloadResult now has the list of FileEntry. The download + summary displays the path of first selected file and the number of + remaining files for multi-file torrent. + * src/DownloadResult.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * test/RequestGroupTest.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed segmentation fault error when no file is selected in + multi-file torrent. + * src/BitfieldMan.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Escaped <,>,& character in XML-RPC response. + * src/XmlRpcMethod.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Throw DlAbortEx instead of FatalException during parsing options + because we don't want for aria2 to quit when bad option is passed + via XML-RPC. + * src/OptionHandlerException.cc + * src/OptionHandlerException.h + * src/OptionHandlerImpl.h + * src/OptionParser.cc + * src/OptionParser.h + * src/PStringSegment.cc + * src/ParameterizedStringParser.cc + * src/download_helper.cc + * test/ParameterizedStringParserTest.cc + +2009-05-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Selecting files are now done in + DefaultBtContext::setFileFileter(). + PieceStorage::setFileFilter(), DiskAdaptor::addDownloadEntry() + functions are removed because they are no longer used. Creating + filter in BitfieldMan is done in new funtion + PieceStorage::setupFileFilter() + * src/BtContext.cc + * src/BtContext.h + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/PieceStorage.h + * src/RequestGroup.cc + * src/UnknownLengthPieceStorage.h + * src/XmlRpcMethodImpl.cc + * test/DefaultBtContextTest.cc + * test/MockBtContext.h + * test/MockPieceStorage.h + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error on Mac OS X + * src/HttpServer.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodImpl.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use std::binary_search instead of std::find + * src/DefaultPieceStorage.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unnecessary BDE() call; leave them to implicit conversion. + * src/XmlRpcMethodImpl.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return connections and gid in string + * src/XmlRpcMethodImpl.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed addURI as addUri + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed addTorrentFile as addTorrent + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + The information for files, URIs, peers are removed from the + reponse of TellaActive, TellStatus command because they tend to be + large. Instead they can be retrieved by the dedicated commands: + getFiles, getUris and getPeers respectively. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --max-overall-upload-limit and + --max-overall-download-limit option from listRequestOptions. + * src/download_helper.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Log incoming host in HttpListenCommand. + * src/HttpListenCommand.cc + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added BASIC authentication for XML-RPC. Added --xml-rpc-user and + --xml-rpc-passwd option. + * src/HttpServer.cc + * src/HttpServer.h + * src/HttpServerCommand.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-05-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that SocketCore::isReadable() prevents aria2 from + processing 0 length request. + * src/HttpServerBodyCommand.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --enable-http-server and --http-server-listen-port + options. Added --enable-xml-rpc and --xml-rpc-listen-port + instead. The original feature for --enable-http-server that + reports download progress in HTML was officially removed. Persist + XML-RPC connection if client supports keep-alive. + * src/DownloadEngineFactory.cc + * src/HttpServerCommand.cc + * src/HttpServerResponseCommand.cc + * src/Makefile.am + * src/Makefile.in + * src/OptionHandlerFactory.cc + * src/RequestGroupMan.cc + * src/main.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added "uris" key to the response of tellStatus command. Added + "connections" key to the response of tellStatus and tellActive + command. + * src/XmlRpcMethodImpl.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed TellActiveStatusXmlRpcMethod as TellActiveXmlRpcMethod. + Added TellStatusXmlRpcMethod. Remove command can now remove + waiting RequestGroup. + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Initialized _peerId + * src/Peer.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Return fault structure for error. FailXmlRpcMethod is renamed as + NoSuchMethodXmlRpcMethod. pieceLength and numPieces are returned + in non-torrent download. Return single param value. + * src/XmlRpcMethod.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * test/XmlRpcMethodTest.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set DownloadResult::IN_PROGRESS for downloads removed by xml-rpc + command. + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/XmlRpcMethodImpl.cc + * test/RequestGroupTest.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added more options that can be specified in -i list and xml-rpc + add* command. + * src/download_helper.h + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + The available options in -i list should be listed in + listRequestOptions(). + * src/download_helper.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added infoHash, pieceLength, numPieces value for tellActiveStatus + command. + * src/XmlRpcMethodImpl.cc + +2009-05-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now RequestGroup has its own copy of Option object. This will help + to give custom option for each RequestGroup. + addTorrentFile command now takes options. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/AdaptiveURISelector.cc + * src/BtCheckIntegrityEntry.cc + * src/BtDependency.cc + * src/BtDependency.h + * src/BtFileAllocationEntry.cc + * src/BtPostDownloadHandler.cc + * src/CheckIntegrityEntry.cc + * src/DownloadCommand.cc + * src/FtpDownloadCommand.cc + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommand.cc + * src/InitiateConnectionCommandFactory.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/InitiatorMSEHandshakeCommand.h + * src/Metalink2RequestGroup.cc + * src/Metalink2RequestGroup.h + * src/MetalinkPostDownloadHandler.cc + * src/MultiUrlRequestInfo.cc + * src/MultiUrlRequestInfo.h + * src/PeerAbstractCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/PeerReceiveHandshakeCommand.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodImpl.cc + * src/download_helper.cc + * src/download_helper.h + * src/main.cc + * test/BtDependencyTest.cc + * test/BtPostDownloadHandlerTest.cc + * test/DefaultBtMessageDispatcherTest.cc + * test/DownloadHandlerFactoryTest.cc + * test/DownloadHelperTest.cc + * test/Metalink2RequestGroupTest.cc + * test/MetalinkPostDownloadHandlerTest.cc + * test/RequestGroupManTest.cc + * test/RequestGroupTest.cc + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tellActiveStatus xml-rpc command which reports download + status of active downloads. + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added addTorrentFile xml-rpc command which receives uploaded + torrent file and add download for it. + * src/RequestGroupMan.cc + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/download_helper.cc + * src/download_helper.h + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added remove xml-rpc command which removes specified download. + There is a known issue: the removed unfinished downloads are + reported ERR when aria2 exits. They should be reported as INPR. + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + If --enable-http-server is enabled, don't stop aria2 when all + download finished and don't quit when no files to download at + start up. + * src/RequestGroupMan.cc + * src/main.cc + * src/option_processing.cc + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing AM_CONDITIONAL + * configure.ac + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added xml-rpc functionality. Currently only addURI commad is + supported. To enable xml-rpc, run aria2 with + --enable-http-server. This option name is temporal and will be + changed. The feature that reports download progress in html format + is temporarily disabled. + * src/HttpServer.cc + * src/HttpServer.h + * src/HttpServerBodyCommand.cc + * src/HttpServerBodyCommand.h + * src/HttpServerCommand.cc + * src/HttpServerResponseCommand.cc + * src/Makefile.am + * src/OptionParser.cc + * src/OptionParser.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/XmlRpcMethod.cc + * src/XmlRpcMethod.h + * src/XmlRpcMethodFactory.cc + * src/XmlRpcMethodFactory.h + * src/XmlRpcMethodImpl.cc + * src/XmlRpcMethodImpl.h + * src/download_helper.cc + * src/download_helper.h + * test/Makefile.am + * test/XmlRpcMethodTest.cc + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added xml-rpc request parser. The supported value types are: + i4/int, string, double, struct, array, base64. Currently only + libxml2 version is provided. + * src/Xml2XmlRpcRequestProcessor.cc + * src/Xml2XmlRpcRequestProcessor.h + * src/XmlRpcElements.cc + * src/XmlRpcElements.h + * src/XmlRpcRequest.h + * src/XmlRpcRequestParserController.cc + * src/XmlRpcRequestParserController.h + * src/XmlRpcRequestParserState.h + * src/XmlRpcRequestParserStateImpl.cc + * src/XmlRpcRequestParserStateImpl.h + * src/XmlRpcRequestParserStateMachine.cc + * src/XmlRpcRequestParserStateMachine.h + * src/XmlRpcRequestProcessor.h + * test/XmlRpcRequestParserControllerTest.cc + * test/XmlRpcRequestProcessorTest.cc + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.3.3 + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error since r1202. + * src/ExpatMetalinkProcessor.cc + +2009-05-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian, Russian and Simplified Chinese + translations. Thanks to all translators. + * po/ru.po + * po/uk.po + * po/zh_CN.po + +2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Pass reference of Option object instead of pointer. + * src/download_helper.cc + * src/download_helper.h + * src/main.cc + * test/DownloadHelperTest.cc + +2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't retrieve PREF_MAX_DOWNLOAD_LIMIT and PREF_MAX_UPLOAD_LIMIT + from option directly. Instead, get them from RequestGroup. + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/RequestGroup.h + +2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused uploadLimitCheck and uploadLimit from + PeerAbstractCommand. Removed unused maxDownloadLimit from + PeerInteractionCommand. + * src/PeerAbstractCommand.cc + * src/PeerAbstractCommand.h + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + +2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed broken file renaming feature since r1202. + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * src/HttpResponseCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused debug log + * src/SocketCore.cc + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Generated configure and Makefile.in using autoconf 2.63 and + automake 1.10.2. Removed AC_GNU_SOURCE from configure.ac because + it is subset of AC_USE_SYSTEM_EXTENSIONS and we use latter. + * configure.ac + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved piece statistics stuff to new PieceStatMan class. + Refactored PieceSelector interface. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/LongestSequencePieceSelector.cc + * src/LongestSequencePieceSelector.h + * src/Makefile.am + * src/PieceSelector.h + * src/PieceStatMan.cc + * src/PieceStatMan.h + * src/RarestPieceSelector.cc + * src/RarestPieceSelector.h + * src/RequestGroup.cc + * test/DefaultPieceStorageTest.cc + * test/InOrderPieceSelector.h + * test/Makefile.am + * test/PieceStatManTest.cc + * test/RarestPieceSelectorTest.cc + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added static member _protocolFamily to SocketCore. By default, + SocketCore uses AF_UNSPEC for getaddrinfo hints to resolve + address. Sometime SocketCore::bind() and + SocketCore::establishConnection() use difference protocl family + and latter cannot connect to former. To avoid this situation, we + limit protocol family to AF_INET for unit tests. + * src/SocketCore.cc + * src/SocketCore.h + * test/AllTest.cc + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid std::bad_alloc for negative bencode string length. + * src/bencode.cc + +2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Supported segmented downloading with chunked transfer encoding and + content-length. + * src/DownloadCommand.cc + * src/HttpResponseCommand.cc + +2009-05-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.3.3 + * configure.ac + +2009-05-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied Pascal Bleser's patch: increases MAX_RECV_BUFFER for ftp + from 4096 to 65536 (for insanely large ftp login banners) + * src/FtpConnection.h + * test/FtpConnectionTest.cc + +2009-05-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In DefaultBtContext::getActualBasePath(), return first + FileEntry::getPath() for single file torrent. + * src/DefaultBtContext.cc + * test/DefaultBtContextTest.cc + +2009-05-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed directIOAllowed() from BinaryStream, DiskWriter, + DiskAdaptor. setDirectIOAllowed() was renamed as allowDirectIO(). + Removed _directIOAllowed member from DiskWriter. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/BinaryStream.h + * src/ByteArrayDiskWriter.h + * src/DefaultPieceStorage.cc + * src/DiskWriter.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + +2009-05-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now the constructor of AbstractDiskWriter takes filename as an + argument and filename argument is removed from openFile(), + initAndOpenFile(), openExistingFile() interface. storeDir member + and its accessor functions are removed from DiskAdaptor because it + is not used anymore. size() member function of DefaultDiskWriter, + DirectDiskAdaptor and MultiDiskAdaptor now can be called without + opening file. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/ByteArrayDiskWriter.cc + * src/ByteArrayDiskWriter.h + * src/ByteArrayDiskWriterFactory.cc + * src/ByteArrayDiskWriterFactory.h + * src/DefaultDiskWriter.cc + * src/DefaultDiskWriter.h + * src/DefaultDiskWriterFactory.cc + * src/DefaultDiskWriterFactory.h + * src/DefaultPieceStorage.cc + * src/DirectDiskAdaptor.cc + * src/DirectDiskAdaptor.h + * src/DiskAdaptor.h + * src/DiskWriter.h + * src/DiskWriterFactory.h + * src/MessageDigestHelper.cc + * src/MultiDiskAdaptor.cc + * src/RequestGroup.cc + * src/UnknownLengthPieceStorage.cc + * src/Util.cc + * test/DefaultDiskWriterTest.cc + * test/DirectDiskAdaptorTest.cc + * test/FallocFileAllocationIteratorTest.cc + * test/MessageDigestHelperTest.cc + * test/MetalinkProcessorTest.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/SingleFileAllocationIteratorTest.cc + * test/UtilTest.cc + +2009-05-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that aria2 aborts when --select-file is used. This + bug was introduced in r1199. + * src/MultiDiskAdaptor.cc + +2009-05-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * test/MockPieceStorage.cc + +2009-05-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that read-only file with wrong file size will cause + error because it cannot be truncated to the correct size. Now if + file size is different than the expected one, re-open file in + writable mode. + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/BtCheckIntegrityEntry.cc + * src/DiskAdaptor.h + * src/MultiDiskAdaptor.h + * src/RequestGroup.cc + +2009-05-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that with --check-integrity option aria2 reports + downloaded file size is 0 even if some parts of file is correctly + downloaded. This bug is reproducible for the download that a file + includes last piece is missing. This bug doesn't reveal for + single-torrent with file allocation on. + * src/IteratableChecksumValidator.cc + * test/IteratableChecksumValidatorTest.cc + +2009-05-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid circular reference between RequestGroup and AdaptiveURISelector + * src/RequestGroupMan.cc + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + +2009-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.3.2 + +2009-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README + * README + +2009-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian translations. Thanks to Alexander10. + * po/uk.po + +2009-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/MetalinkParserStateMachine.cc + * src/MetalinkParserStateMachine.h + +2009-04-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed MetalinkProcessorFactory. Since we don't use both libxml2 + and expat simultaneously, MetalinkProcessor is now not base class + and it is directly implemented in XML2SAXMetalinkProcessor and + ExpatMetalinkProcessor. + * src/ExpatMetalinkProcessor.cc + * src/ExpatMetalinkProcessor.h + * src/Makefile.am + * src/MetalinkHelper.cc + * src/MetalinkProcessor.h + * src/MetalinkProcessorFactory.cc: Removed. + * src/MetalinkProcessorFactory.h: Removed + * src/XML2SAXMetalinkProcessor.cc + * src/XML2SAXMetalinkProcessor.h + * test/MetalinkProcessorTest.cc + +2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.3.2 + * configure.ac + +2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing file. + * test/Makefile.am + * test/url-list-singleFileEndsWithSlash.torrent + +2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Put BDE in aria2 namespace. BDE will also be used to store xml-rpc + request. + * src/AnnounceList.cc + * src/AnnounceList.h + * src/BDE.cc: Added + * src/BDE.h: Added + * src/DHTAbstractMessage.cc + * src/DHTAbstractMessage.h + * 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/DHTMessageFactory.h + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageFactoryImpl.h + * src/DHTMessageReceiver.cc + * src/DHTMessageTracker.cc + * src/DHTMessageTracker.h + * 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/DefaultBtAnnounce.cc + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/HandshakeExtensionMessage.cc + * src/Makefile.am + * src/PeerListProcessor.h + * src/UTPexExtensionMessage.cc + * src/bencode.cc + * src/bencode.h + * test/AnnounceListTest.cc + * test/BDETest.cc: Added + * test/BencodeTest.cc + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTAnnouncePeerReplyMessageTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTMessageTrackerTest.cc + * test/DHTPingMessageTest.cc + * test/DHTPingReplyMessageTest.cc + * test/Makefile.am + * test/MockDHTMessageFactory.h + * test/PeerListProcessorTest.cc + +2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use url-list (web-seeding) only for single-file torrent. This is + basically the same behavior with Metalink file with torrent and + URIs. + * src/RequestGroup.cc + * src/DefaultBtContext.cc + * test/DefaultBtContextTest.cc + +2009-04-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten expr + * src/array_fun.h + * test/array_funTest.cc + +2009-04-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added forEachMemFunSH(). Use it in BitTorrent event dispatch. + * src/DefaultBtMessageDispatcher.cc + * src/a2algo.h + +2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed ExtendedMessagingAware. Instead of using inheritance, + added ExtensionMessageRegistry and it is passed to + DefaultExtensionMessageFactory. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/ExtendedMessagingAware.h: Removed. + * src/ExtensionMessageFactory.h + * src/ExtensionMessageRegistry.h: Added. + * src/Makefile.am + * src/PeerInteractionCommand.cc + * test/DefaultExtensionMessageFactoryTest.cc + +2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo in log messages + * src/MSEHandshake.cc + +2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + + Fixed the bug that prevents torrent download from finishing. The + bug doesn't reveal for all torrents. The torrents affected this + bug satisfies ((N+7)/8)%4 == 0 and N%32 != 0 where N is the number + of pieces. + * src/bitfield.h + * test/bitfieldTest.cc + +2009-04-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/PeerListProcessor.h + +2009-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed RequestGroupAware + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + * src/InitiatorMSEHandshakeCommand.cc + * src/InitiatorMSEHandshakeCommand.h + * src/Makefile.am + * src/PeerInitiateConnectionCommand.cc + * src/PeerInitiateConnectionCommand.h + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/RealtimeCommand.cc + * src/RealtimeCommand.h + * src/RequestGroupAware.cc: Removed + * src/RequestGroupAware.h: Removed + * src/SeedCheckCommand.cc + * src/SeedCheckCommand.h + * src/SleepCommand.cc + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + +2009-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten PeerListProcessor + * src/PeerListProcessor.h + * src/CompactPeerListProcessor.h: Removed + * src/CompactPeerListProcessor.cc: Removed + * src/DelegatingPeerListProcessor.cc: Removed. + * src/DefaultBtAnnounce.cc + * src/Makefile.am + * src/UTPexExtensionMessage.cc + * src/DefaultPeerListProcessor.h: Removed. + * src/DefaultPeerListProcessor.cc: Removed. + * src/DelegatingPeerListProcessor.h: Removed. + * test/Makefile.am + * test/PeerListProcessorTest.cc + * test/DefaultPeerListProcessorTest.cc: Removed. + +2009-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten RequestGroupMan::calculateStat() + * src/RequestGroupMan.cc + +2009-04-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unnecessary virtual destructor for Request class. + * src/Request.cc + * src/Request.h + +2009-04-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid dynamic_pointer_cast. + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + +2009-04-21 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten event dispatch in BtMessage. Removed BtEventListener, + BtEvent. + * src/AbstractBtEventListener.h: Removed. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/BtAbortOutstandingRequestEvent.h + * src/BtCancelSendingPieceEvent.h + * src/BtChokedEvent.h: Removed. + * src/BtChokingEvent.h + * src/BtEvent.h: Removed + * src/BtEventListener.h: Removed. + * src/BtMessage.h + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtRequestMessage.cc + * src/BtRequestMessage.h + * src/DefaultBtMessageDispatcher.cc + * src/Makefile.am + * src/a2functional.h + * test/BtPieceMessageTest.cc + * test/BtRequestMessageTest.cc + * test/DefaultBtMessageDispatcherTest.cc + * test/MockBtMessage.h + +2009-04-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/RequestGroupMan.cc + +2009-04-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/DownloadCommand.cc + +2009-04-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed segmentation fault when GZipDecoder::decode() returns 0 + byte. + * src/DownloadCommand.cc + * src/bitfield.h + * test/bitfieldTest.cc + + Fixed the bug that causes infinite loop if broken web server + returns chunked response without last "0" chunk-size marker and + closes connection. + * src/DownloadCommand.cc + + Instantiate properly configured HttpDownloadCommand for + non-resumable downlaods. + * src/HttpResponseCommand.cc + +2009-04-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten array operation functions. + * src/BitfieldMan.cc + * src/array_fun.h + * test/array_funTest.cc + +2009-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused variable 'query' + * src/Request.cc + +2009-04-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set conditional HAVE_GETADDRINFO true for mingw32. It was + accidentally set to false in r1162. + * configure.ac + +2009-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Code cleanup + * src/BNode.cc + +2009-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Increase prefixLength for the bucket which doesn't own local node + ID when splitting bucket. + * src/DHTBucket.cc + * test/DHTBucketTest.cc + +2009-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.3.1 + +2009-04-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.3.1 + * configure.ac + +2009-04-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused variable checkPoint. Also removed include directive + for TimeA2.h. + * src/SeedCheckCommand.h + +2009-04-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that upload limit exceeds the value specified in + --seed-ratio option depending on the timing of the execution of + SeedCheckCommand. + * src/SeedCheckCommand.cc + +2009-04-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that removed peer's session upload/download length + are counted twice in _cachedTransferStat before it is + re-calculated. This affected the calculation of shara ratio, + resulting aria2 wrongly determines that specified share ratio is + reached. Also fixed the typo in calculateStatFor function name. + * src/BtSetup.cc + * src/DefaultPeerStorage.cc + * src/ShareRatioSeedCriteria.h + * test/ShareRatioSeedCriteriaTest.cc + +2009-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.3.0 + +2009-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian, Japanese, Spanish, Ukrainian and Norwegian + Nynorsk translations. Thanks to all translators. + * po/es.po + * po/ja.po + * po/nn.po + * po/ru.po + * po/uk.po + +2009-04-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten isInRange() + * src/DHTBucket.cc + * test/DHTBucketTest.cc + +2009-03-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo + * doc/aria2c.1.txt + +2009-03-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed AC_FUNC_MALLOC and AC_FUNC_REALLOC because 0-byte + malloc/realloc is not used. + * src/configure.ac + +2009-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + BitfieldMan::getMissingIndexes family functions now takes unsigned + char* bitfield instead of stl container for efficiency. + PieceSelector::select now takes this + bitfield. RarestPieceSelector::select now also performs + efficiently for this change. bitfield namespace is introduced and + it has several helper functions to handle basic bitfield + operations such as test, count set bits, etc. + * src/BitfieldMan.cc + * src/BitfieldMan.h + * src/DefaultBtRequestFactory.cc + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/LongestSequencePieceSelector.cc + * src/LongestSequencePieceSelector.h + * src/Makefile.am + * src/Piece.cc + * src/Piece.h + * src/PieceSelector.h + * src/RarestPieceSelector.cc + * src/RarestPieceSelector.h + * src/Util.cc + * src/Util.h + * src/bitfield.h + * test/BitfieldManTest.cc + * test/LongestSequencePieceSelectorTest.cc + * test/Makefile.am + * test/RarestPieceSelectorTest.cc + * test/UtilTest.cc + * test/bitfieldTest.cc + +2009-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made accepted socket non-block. + * src/FtpNegotiationCommand.cc + * src/HttpListenCommand.cc + +2009-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Guarded #ifdef HAVE_POSIX_FALLOCATE + * src/AbstractSingleDiskAdaptor.cc + * src/DefaultPieceStorage.cc + * src/DiskAdaptor.h + * src/DiskAdaptor.h + * src/MultiFileAllocationIterator.cc + +2009-03-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Run + DefaultBtMessageDispatcher::checkRequestSlotAndDoNecessaryThing() + in every 1 sec. The timeout of RequestSlot is 60s by default and + it doesn't need to be called every time when + DefaultBtInteractive::doInteractionProcessing() is called. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + +2009-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented 'falloc' in man page. + * doc/aria2c.1.txt + +2009-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/usage_text.h + +2009-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added 'falloc' parameter for --file-allocation option. 'falloc' + allocation mode uses posix_fallocate() system call to allocate + file on disk. If you are using newer file systems such as ext4 + (with extents support), btrfs or xfs, 'falloc' is your best + choice. It allocates large(few GiB) files almost instantly. Don't + use 'falloc' with legacy file systems such as ext3 because it + takes almost same time as 'prealloc' and it blocks aria2 entirely + until allocation finishes. 'falloc' may not be available if your + system doesn't have posix_fallocate() system call. + * configure.ac + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/BinaryStream.h + * src/BtCheckIntegrityEntry.cc + * src/ByteArrayDiskWriter.h + * src/CheckIntegrityEntry.cc + * src/CheckIntegrityEntry.h + * src/DefaultPieceStorage.cc + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/DiskWriter.h + * src/FallocFileAllocationIterator.cc + * src/FallocFileAllocationIterator.h + * src/FileAllocationEntry.cc + * src/FileAllocationEntry.h + * src/Makefile.am + * src/MultiFileAllocationIterator.cc + * src/MultiFileAllocationIterator.h + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/StreamCheckIntegrityEntry.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/FallocFileAllocationIteratorTest.cc + * test/Makefile.am + +2009-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed duplicate enableDirectIO() call. + * src/MultiFileAllocationIterator.cc + +2009-03-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced std::vector<SharedHandle<PieceStats> _sortedPieceStats + with std::vector<size_t> _sortedPieceStatIndexes to reduce the + cost of std::rotate(). + * src/RarestPieceSelector.cc + * src/RarestPieceSelector.h + * test/RarestPieceSelectorTest.cc + +2009-03-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated usage doc for --bt-tracker-interval option. + * src/usage_text.h + * doc/aria2c.1.txt + +2009-03-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-tracker-interval option in man page. + * doc/aria2c.1.txt + +2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added an option to specify the interval between tracker requests. + If non-zero value is specified, aria2 uses it and ignores the + interval value in the response of tracker. If zero is specified, + aria2 determines the inteval value based on the tarcker response + and download progress. + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added operator+=, operator-=, operator- + * src/TransferStat.cc + * src/TransferStat.h + +2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored RarestPieceSelector to reduce CPU load, especially for + addPieceStats. + * src/RarestPieceSelector.cc + * src/RarestPieceSelector.h + +2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored getMissingIndexRandomly, getFirstMissingIndex, + getAllMissingBlockIndexes to reduce a call to + array_function_base::operator[]. + * src/BitfieldMan.cc + +2009-03-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Cached TransferStat/download speed to avoid to sum them up in each + call. + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/SegmentMan.cc + * src/SegmentMan.h + +2009-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Typedefed cuid_t as int32_t in Command.h + * src/CUIDCounter.h + * src/Command.cc + * src/Command.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/PeerStat.h + * src/SegmentMan.cc + * src/SegmentMan.h + +2009-03-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reduced the number of calls to PeerStorage::calculateStat() and + SegmentMan::calculateDownloadSpeed() to lower CPU usage on higher + transfer rate. + * src/DefaultBtInteractive.cc + * src/DefaultBtMessageDispatcher.cc + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/PeerStorage.h + * src/SegmentMan.cc + * src/SegmentMan.h + * test/MockPeerStorage.h + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Prepended _dir+"/" after joining path elements in torrent file. + * src/DefaultBtContext.cc + * test/DefaultBtContextTest.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing IndexBtMessageValidator.h + * src/Makefile.am + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Indonesian, Russian, Italian, Ukrainian and Simplified + Chinese translations. Thank you for contributing our project. + * po/id.po + * po/it.po + * po/ru.po + * po/uk.po + * po/zh_CN.po + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated README + * README + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.3.0 + * configure.ac + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/DefaultBtContext.h + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Slice/joinPath for name of single torrent. + * src/DefaultBtContext.cc + * test/DefaultBtContextTest.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page: Documented --dry-run and --index-out + options. Changed the default value of --uri-selector and + --http-auth-challenge options. Removed --direct-file-mapping + option. Added example for --index-out + * doc/aria2c.1.txt + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated TEXT_DRY_RUN + * src/usage_text.h + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the default value of --uri-selector option from 'inorder' + to 'feedback' + * src/OptionHandlerFactory.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included current URI in exception message. + * src/AbstractCommand.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed ServerStatURISelector as FeedbackURISelector. + * src/FeedbackURISelector.cc + * src/FeedbackURISelector.h + * src/Makefile.am + * src/RequestGroupMan.cc + * src/ServerStatURISelector.cc + * src/ServerStatURISelector.h + * test/FeedbackURISelectorTest.cc + * test/Makefile.am + * test/ServerStatURISelectorTest.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that AdaptiveURISelector doesn't select any URI when + all URIs are tested and their timeout is not reached. + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the default value of --http-auth-challenge option to false. + * src/OptionHandlerFactory.cc + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reuse URIs when all unused URIs run out. + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/prefs.cc + * src/prefs.h + +2009-03-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Refactored BtMessage subclasses. BtCancelMessage, BtRequestMessage + and BtRejectMessage are derived from RangeBtMessage class. + BtAllowedFastMessage, BtHaveMessage and BtSuggestPieceMessage are + derived from IndexBtMessage class. BtChokeMessage, + BtHaveAllMessage, BtHaveNoneMessage, BtInterestedMessage, + BtNotInterestedMessage and BtUnchokeMessage are derived from + ZeroBtMessage class. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/BtAllowedFastMessage.cc + * src/BtAllowedFastMessage.h + * src/BtAllowedFastMessageValidator.h: Removed + * src/BtBitfieldMessage.cc + * src/BtBitfieldMessage.h + * src/BtCancelMessage.cc + * src/BtCancelMessage.h + * src/BtCancelMessageValidator.h: Removed + * src/BtChokeMessage.cc + * src/BtChokeMessage.h + * src/BtExtendedMessage.cc + * src/BtExtendedMessage.h + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessage.h + * src/BtHaveAllMessage.cc + * src/BtHaveAllMessage.h + * src/BtHaveMessage.cc + * src/BtHaveMessage.h + * src/BtHaveMessageValidator.h: Removed + * src/BtHaveNoneMessage.cc + * src/BtHaveNoneMessage.h + * src/BtInterestedMessage.cc + * src/BtInterestedMessage.h + * src/BtKeepAliveMessage.cc + * src/BtKeepAliveMessage.h + * src/BtNotInterestedMessage.cc + * src/BtNotInterestedMessage.h + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtPortMessage.cc + * src/BtPortMessage.h + * src/BtRejectMessage.cc + * src/BtRejectMessage.h + * src/BtRejectMessageValidator.h: Removed + * src/BtRequestMessage.cc + * src/BtRequestMessage.h + * src/BtRequestMessageValidator.h: Removed + * src/BtSuggestPieceMessage.cc + * src/BtSuggestPieceMessage.h + * src/BtSuggestPieceMessageValidator.h: Removed + * src/BtUnchokeMessage.cc + * src/BtUnchokeMessage.h + * src/DefaultBtMessageFactory.cc + * src/IndexBtMessage.cc + * src/IndexBtMessage.h + * src/IndexBtMessageValidator.h + * src/Makefile.am + * src/PeerMessageUtil.cc + * src/PeerMessageUtil.h + * src/RangeBtMessage.cc + * src/RangeBtMessage.h + * src/RangeBtMessageValidator.h + * src/SimpleBtMessage.cc + * src/SimpleBtMessage.h + * src/ZeroBtMessage.cc + * src/ZeroBtMessage.h + * test/BtRequestMessageTest.cc + +2009-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reverted usage_text.h to r1093 to avoid to lose translated + messages. + * src/usage_text.h + +2009-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + BtMessage now holds _id attribute. MESSAGE_LENGTH that is + declared as non-const previously is now const and defined in class + definition. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/BtAllowedFastMessage.cc + * src/BtAllowedFastMessage.h + * src/BtBitfieldMessage.h + * src/BtCancelMessage.cc + * src/BtCancelMessage.h + * src/BtChokeMessage.cc + * src/BtChokeMessage.h + * src/BtExtendedMessage.cc + * src/BtExtendedMessage.h + * src/BtHandshakeMessage.cc + * src/BtHandshakeMessage.h + * src/BtHaveAllMessage.cc + * src/BtHaveAllMessage.h + * src/BtHaveMessage.cc + * src/BtHaveMessage.h + * src/BtHaveNoneMessage.cc + * src/BtHaveNoneMessage.h + * src/BtInterestedMessage.cc + * src/BtInterestedMessage.h + * src/BtKeepAliveMessage.cc + * src/BtKeepAliveMessage.h + * src/BtMessage.h + * src/BtNotInterestedMessage.cc + * src/BtNotInterestedMessage.h + * src/BtPieceMessage.h + * src/BtPortMessage.cc + * src/BtPortMessage.h + * src/BtRejectMessage.cc + * src/BtRejectMessage.h + * src/BtRequestMessage.cc + * src/BtRequestMessage.h + * src/BtSuggestPieceMessage.cc + * src/BtSuggestPieceMessage.h + * src/BtUnchokeMessage.cc + * src/BtUnchokeMessage.h + * src/SimpleBtMessage.cc + * src/SimpleBtMessage.h + * test/MockBtMessage.h + +2009-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use FileEntry::exists() + * src/MultiDiskAdaptor.cc + +2009-03-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added exists() + * src/FileEntry.cc + * src/FileEntry.h + +2009-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing prefix dir. + * src/download_helper.cc + +2009-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed --direct-file-mapping option and CopyDiskAdaptor. + * src/CopyDiskAdaptor.cc: Removed + * src/CopyDiskAdaptor.h: Removed + * src/DefaultPieceStorage.cc + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/CopyDiskAdaptorTest.cc: Removed + * test/Makefile.am + +2009-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten isSameFileBeingDownloaded() + * src/RequestGroupMan.cc + +2009-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed getName() from DownloadContext. getName() is declared in + BtContext. + * src/BtContext.h + * src/DownloadContext.h + * src/SingleFileDownloadContext.cc + * src/SingleFileDownloadContext.h + + Removed getFilePath() from DiskAdaptor. getFilePath() is declared + in AbstractSingleDiskAdaptor. + * src/AbstractSingleDiskAdaptor.h + * src/DiskAdaptor.h + * src/MultiDiskAdaptor.h + * src/RequestGroup.cc + + Removed setTopDir() and getTopDir() and getTopDirPath() from + MultiDiskAdaptor. + * src/DefaultPieceStorage.cc + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * test/MultiDiskAdaptorTest.cc + +2009-03-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + FileEntry::getPath() contains store(top level) directory to + simplify path handling operation. In the previous implementation, + store directory is concatenated to FileEntry::getPath() in + DownloadContext. + * src/BtDependency.cc + * src/BtPostDownloadHandler.cc + * src/CopyDiskAdaptor.cc + * src/DefaultBtContext.cc + * src/DirectDiskAdaptor.cc + * src/FileEntry.cc + * src/FileEntry.h + * src/FtpNegotiationCommand.cc + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/Metalink2RequestGroup.cc + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/MultiFileAllocationIterator.cc + * src/RequestGroup.cc + * src/SingleFileDownloadContext.cc + * src/SingleFileDownloadContext.h + * src/download_helper.cc + * test/BtDependencyTest.cc + * test/CopyDiskAdaptorTest.cc + * test/DefaultBtContextTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DirectDiskAdaptorTest.cc + * test/DownloadHelperTest.cc + * test/FileEntryTest.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/RequestGroupTest.cc + * test/SingleFileDownloadContextTest.cc + +2009-03-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning + * src/download_helper.cc + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Throw exception if same infohash torrent is now downloading. + * src/RequestGroup.cc + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --dry-run option. In this mode, aria2 just checks whether + the remote file is available and doesn't download data. This + option has effect on HTTP/FTP downloads and BitTorrent downloads + are canceled in this mode. + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/HttpResponseCommand.h + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler waring + * test/UriListParserTest.cc + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Parse options in -i list using OptionParser. + * src/UriListParser.cc + * src/UriListParser.h + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't reset URI in retry to avoid additional round trips because + of redirects. + * src/AbstractCommand.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Declared hide() in OptionHandler. + * src/NameMatchOptionHandler.h + * src/OptionHandler.h + * src/OptionHandlerImpl.h + +2009-03-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc + * src/Peer.h + +2009-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added log message in setStatusInternal() + * src/ServerStat.cc + +2009-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call ServerStat::setError() in AbstractCommand::onAbort() to + effectively exclude failed server. + * src/AbstractCommand.cc + +2009-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --index-out option to specify each file path for torrent. + Here index shown in --show-files option is used to specify which + file path should be altered. For example, to change the file path + with index=2, use --index-out=2=aria2.tar.bz2. You can use this + option multiple times: --index-out=1=aria2.tar.bz2 + --index-out=2=aria2-opt.tar.bz2. The short hand form -O is also + available. This option can be specified in -i list. + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/MultiFileAllocationIterator.cc + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/Util.cc + * src/Util.h + * src/download_helper.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DefaultBtContextTest.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/UtilTest.cc + +2009-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use Util::pathJoin() + * src/MetalinkParserController.cc + * test/test.xml + +2009-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use Util::pathJoin() + * src/DefaultBtContext.cc + +2009-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Util::pathJoin() + * src/Util.h + * test/UtilTest.cc + +2009-03-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied basename function to remove directory element in + content-disposition value. + Return empty string if content-disposition value is ".." or ".". + * src/Util.cc + * test/UtilTest.cc + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --max-overall-download-limit in man page. + Updated --max-overall-upload-limit, --max-download-limit option's doc. + * doc/aria2c.1.txt + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --max-overall-download-limit option. Now --max-upload-limit + option is not ignored when --max-overall-upload-limit option has + non-zero value. aria2 checks download(upload) speed in the order: + first checks overall speed limit and if it is not exceeded, then + checks speed limit per download. Thus you can specify both + value. For example, set --max-overall-download-limit=1M and + --max-download-limit=500K to prevent from one download from eating + all overall speed limit. + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/DownloadCommand.cc + * src/DownloadCommand.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/OptionHandlerFactory.cc + * src/PeerInteractionCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DefaultBtMessageDispatcherTest.cc + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented select-file option in Input File section. + Documented --http-auth-challenge option. + * doc/aria2c.1.txt + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now select-file can be specified in the uri list(-i list). + * src/BtContext.cc + * src/BtContext.h + * src/RequestGroup.cc + * src/Sequence.h + * src/download_helper.cc + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made the upper value of --max-concurrent-downloads options unlimited. + * src/OptionHandlerFactory.cc + +2009-02-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that disk writer is not created even if it shares + same piece with the preceding file if the length of previous file + is 0. + * src/MultiDiskAdaptor.cc + * test/MultiDiskAdaptorTest.cc + +2009-02-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + In BitTorrent, Open files in read-only mode for hash check. After + that, re-open file in read/write mode only when the download is + not finished. + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/AbstractSingleDiskAdaptor.cc + * src/AbstractSingleDiskAdaptor.h + * src/BtCheckIntegrityEntry.cc + * src/DiskAdaptor.h + * src/DiskWriter.h + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/RequestGroup.cc + +2009-02-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --http-auth-challenge option. If it is set to true(by + default), aria2 sends HTTP authorization header only when it is + requested by the server. If false is set, then authorization + header is always sent to the server. This is useful for servers + that don't respond 401 code when authentication is required. + There is an exception: if username and password are embedded in + URI, authorization header is always sent to the server regardless + of this option. + * src/AuthConfigFactory.cc + * src/HttpSkipResponseCommand.cc + * src/OptionHandlerFactory.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/AuthConfigFactoryTest.cc + * test/HttpRequestTest.cc + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.2.0 + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Spanish, Ukrainian, Russian and Japanese translations. + Thanks to all translators. + * po/es.po + * po/ja.po + * po/ru.po + * po/uk.po + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Call deleteSocketForReadCheck() before socket is closed. + * src/HttpListenCommand.cc + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined virtual destructor for BObject. + * src/bencode.h + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten BDE to make it efficient. + * src/bencode.cc + * src/bencode.h + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed function throw list. + * src/bencode.cc + * src/bencode.h + * test/BencodeTest.cc + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enclosed all URLs in double quotes in command-line examples. + * doc/aria2c.1.txt + +2009-02-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated reference/see also section. + * README + * doc/aria2c.1.txt + +2009-02-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Reorganized man page based on man man-pages. + * doc/aria2c.1.txt + +2009-02-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed SERVER PERFORMANCE PROFILE and Configuration file section + because same documents are available in man page. Added + References section. + * README + +2009-02-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented sc_avg_speed, mc_avg_speed and counter in SERVER + PERFORMANCE PROFILE section. + * doc/aria2c.1.txt + +2009-02-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten the section for configuration file. + * README + * doc/aria2c.1.txt + +2009-02-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the segmentation fault during execution of choking algorithm + in leecher state because of broken compare operator + implementation. + * src/BtLeecherStateChoke.cc + * src/BtLeecherStateChoke.h + +2009-02-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Open file in binary mode. + * src/CookieStorage.cc + * src/DHTSetup.cc + * src/DHTUtil.cc + * src/Netrc.cc + * src/NsCookieParser.cc + * src/ProtocolDetector.cc + * src/RequestGroupMan.cc + * src/Signature.cc + * src/bencode.cc + * src/download_helper.cc + * src/option_processing.cc + * test/CookieParserTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/FileTest.cc + * test/GZipDecoderTest.cc + * test/RequestGroupManTest.cc + * test/SignatureTest.cc + * test/SingleFileAllocationIteratorTest.cc + * test/UriListParserTest.cc + +2009-02-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed operator[] because it is ambiguous with built-in [] + operator. + * src/array_fun.h + +2009-02-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error + * src/OptionParser.cc + +2009-02-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing call to arrayWrapperConst + * test/array_funTest.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use array_wrapper instead of array_ptr. + * src/DHTRoutingTableDeserializer.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed template<typename S> array_ptr(const array_ptr<S>& s) + * src/array_fun.h + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added array_wrapper template. + * src/array_fun.h + * test/array_funTest.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use operator T* of array_ptr. + * src/OptionParser.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use localhost instead of 127.0.0.1 + * test/FtpConnectionTest.cc + * test/MSEHandshakeTest.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added operator T* + * src/array_fun.h + * test/array_funTest.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use dynamically allocated char array to detect memory access + violation. + * src/DHTRoutingTableDeserializer.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Set struct sockaddr_in.sin_len if HAVE_SOCKADDR_IN_SIN_LEN is + defined. + * src/PeerMessageUtil.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed HAVE_SOCKADDR_SIN_LEN as HAVE_SOCKADDR_IN_SIN_LEN + * configure.ac + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added a check to see struct sockaddr_in has sin_len member. + * configure.ac + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed buffer overrun. + * src/DHTRoutingTableDeserializer.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added LL for long long int constant. + * test/FtpConnectionTest.cc + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Casted to unsigned int to suppress compiler warning on netbsd. + * src/BtRuntime.h + +2009-02-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Assign the value of tv.tv_sec to time_t timesec instead of giving + tv.tv_sec to localtime_r directly because tv.tv_sec may not be of + type time_t. + * src/SimpleLogger.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added test for FtpConnection::receiveSizeResponse(). + * test/FtpConnectionTest.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fix epoll error on the old kernel 2.6.8 or ealier. + * src/EpollEventPoll.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use Util::parseLLInt instead of sscanf for portability. The + conversion "%Lu" fails in Mac OSX which requires "%llu" instead. + * src/FtpConnection.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that adding 0 length filter to BitfieldMan filters 1 + block. It should not filter anything. + * src/BitfieldMan.cc + * src/ConsoleStatCalc.cc + * test/BitfieldManTest.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that the boolean options that don't take arguments + don't work. + * src/OptionHandlerImpl.h + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed broken selected file BitTorrent download. + * src/MultiDiskAdaptor.cc + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + +2009-02-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed #define guard for EpollEventPoll + * src/EpollEventPoll.h + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Wait 2 seconds. 1 second is sometimes not enough. + * test/TimeSeedCriteriaTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use localhost instead of 127.0.0.1. + * test/DHTConnectionImplTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Suppressed compiler warning. + * src/AdaptiveURISelector.cc + * src/DefaultPieceStorage.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined virtual destructor. + * src/MetalinkParserState.h + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Give NULL for second argument of getaddrinfo instead of "0". + * src/NameResolver.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't use Time::parse(buf, "%Y%m%d%H%M%S") because Mac OS X and + included strptime doesn't parse data for this format. + * src/FtpConnection.cc + * test/FtpConnectionTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed tests giving -1 for unsigned argument. + * test/SingleFileDownloadContextTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't use sha256 in tests because it might not be supported by the + SSL library. + * test/MetalinkProcessorTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed tests giving -1 for unsigned argument. + * test/AlphaNumberDecoratorTest + * test/BitfieldManTest.cc + * test/DefaultBtContextTest.cc + +2009-02-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without libcares when epoll is available. + * src/EpollEventPoll.cc + +2009-02-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included fstream instead of iostream. + * test/SignatureTest.cc + +2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed #include <algorithm> + * test/RequestGroupTest.cc + +2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten AdaptiveURISelector::mayRetryWithIncreasedTimeout() + using RequestGroup::extractURIResult(). + * src/AdaptiveURISelector.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * test/RequestGroupTest.cc + +2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tests for array_ptr. + * test/array_funTest.cc + +2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't send ip parameter to a tracker if ip parameter is empty + string. + * src/DefaultBtAnnounce.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Adjusted line feed. + * src/version_usage.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print tags, possible values when OptionHandlerException is caught. + * src/option_processing.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the message for FatalException. + * src/OptionParser.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --bt-external-ip option in man page. Updated man pages + for --proxy-method option. + * doc/aria2c.1.txt + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use GET method for FTP via HTTP proxy. + * src/FtpInitiateConnectionCommand.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the default value of --proxy-method option from 'tunnel' + to 'get'. Use 'tunnel' for HTTPS regardless of --proxy-method + option. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/FtpInitiateConnectionCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpInitiateConnectionCommand.h + * src/OptionHandlerFactory.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Initialized _logger + * src/SelectEventPoll.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Defined a copy constructor for the same type. + * src/SharedHandle.h + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added OptionParser::parseArg() which internally uses getopt_long + to parse command-line options. All command-line options are now + configured by OptionHandler. No manual editing of struct option* + is required any more. + * src/NameMatchOptionHandler.h + * src/OptionHandler.h + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/OptionParser.cc + * src/OptionParser.h + * src/array_fun.h + * src/main.cc + * src/option_processing.cc + * test/OptionHandlerTest.cc + * test/OptionParserTest.cc + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed configure error with --disable-epoll + * configure.ac + +2009-02-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error when HAVE_EPOLL is not defined. + Fixed linker error on bigendian systems. + * src/SocketCore.cc + * src/SocketCore.h + * test/DefaultBtProgressInfoFileTest.cc + +2009-02-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-external-ip option. You can specify the external IP + address to report to a BitTorrent tracker. Although this function + is named 'external', it can accept any kind of IP addresses. + * src/DefaultBtAnnounce.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DefaultBtAnnounceTest.cc + +2009-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Extracted the algorithm to find the longest incremental sequence + as max_sequence template. + * src/LongestSequencePieceSelector.cc + * src/a2algo.h + * test/Makefile.am + * test/a2algoTest.cc + +2009-02-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed TEXT_HTTP_SERVER_LISTEN_PORT from translation texts. + * src/usage_text.h + +2009-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for --uri-selector, --http-server-listen-port and + --enable-http-server option. Documented --event-poll option. + * doc/aria2c.1.txt + +2009-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated doc for --enable-http-server. + * src/usage_text.h + +2009-02-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented --http-server-listen-port and --enable-http-server in + man page. + * doc/aria2c.1.txt + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Spanish, Indonesian, Russian, Ukrainian and Italian + translations. Thanks to all translators. + * po/es.po + * po/id.po + * po/it.po + * po/ru.po + * po/uk.po + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.2.0 + * configure.ac + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + BtContext::getAnnounceTiers() now returns const reference. + * src/BtContext.h + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * test/MockBtContext.h + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Change the number of retries for tracker request based on the + number of available tracker in a torrent file. + * src/TrackerWatcherCommand.cc + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added _maxTries property to RequestGroup and assign the option + value of PREF_MAX_TRIES to it. AbstractCommand now looks up + RequestGroup::getMaxTries() instead of + Option::getAsInt(PREF_MAX_TRIES). + * src/AbstractCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied AdaptiveURISelector-timeout patch from Pascal Rigaux at + Mandriva. I modified the patch: make RequestGroup have the + timeout value and AdaptiveURISelector directly modifies that + value. + * src/AbstractCommand.cc + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + * src/FtpNegotiationCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2009-02-01 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning + * test/IteratableChecksumValidatorTest.cc + +2009-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use LongestSequencePieceSelector for HTTP/FTP/BitTorrent + integrated downloads. This PieceSelector subclass finds the + longest continuous sequence in the available missing pieces and + selects the last index of such sequence. This makes HTTP/FTP + connections less interrupted by the pieces obtained by BitTorrent + peers. + * src/DefaultPieceStorage.cc + * src/DefaultPieceStorage.h + * src/LongestSequencePieceSelector.cc + * src/LongestSequencePieceSelector.h + * src/Makefile.am + * src/PieceSelector.h + * src/RarestPieceSelector.h + * src/RequestGroup.cc + * test/BtDependencyTest.cc + * test/DefaultPieceStorageTest.cc + * test/IteratableChecksumValidatorTest.cc + * test/LongestSequencePieceSelectorTest.cc + * test/Makefile.am + * test/SegmentManTest.cc + +2009-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that the average speed is wrong in + http/ftp/BitTorrent integrated download. Only the download bytes + in BitTorrent were considered. + * src/RequestGroup.cc + +2009-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Choose port for BitTorrent/DHT randomly from the specified range. + * src/DHTConnectionImpl.cc + * src/PeerListenCommand.cc + +2009-01-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Send HTTP Authorization header only if it is requested by the + server(response 401). There are some exceptions. The authorization + header for proxy is always sent if it is available without request + by the server. If username/password is specified in the URI, it + is immediately sent to the server without request by the server. + + AbstractAuthResolver::_defaultAuthConfig is now initialized as + SharedHandle<AuthConfig>(). + NetrcAuthResolver::resolveAuthConfig() returns + SharedHandle<AuthConfig>() if no AuthConfig is available. + * src/AbstractAuthResolver.cc + * src/AbstractProxyRequestCommand.cc + * src/AuthConfigFactory.cc + * src/AuthConfigFactory.h + * src/HttpConnection.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * test/AuthConfigFactoryTest.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + +2009-01-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Remove leading "--" from help keyword and a substring after "=" + from help keyword, so that one can query options by '-h--max-' or + '-hmax-peers=10'. + * src/option_processing.cc + +2009-01-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten PStringVisitor and its implementation. + * src/PStringBuildVisitor.cc + * src/PStringBuildVisitor.h + * src/PStringDatum.h + * src/PStringNumLoop.h + * src/PStringSegment.cc + * src/PStringSegment.h + * src/PStringSelect.h + * src/PStringVisitor.h + * src/download_helper.cc + * test/PStringBuildVisitorTest.cc + * test/ParameterizedStringParserTest.cc + +2009-01-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Persist connection between the built-in HTTP server and a client + if a client supports keep-alive. Fixed the bug that aria2 exits + when the HTTP server receives EOF from a client. + * src/HttpServer.cc + * src/HttpServer.h + * src/HttpServerCommand.cc + * src/HttpServerCommand.h + * src/HttpServerResponseCommand.cc + +2009-01-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added experimental built-in HTTP server. Currently, when a client + accesses to the server, it responds with the current download + progress. By default, it is disabled. To enable the server, give + --enable-http-server option. To change the default port number + for the server to listen to, use --http-server-listen-port option. + The response HTML is very simple and refreshes it self each 1 + second. Because of this refresh, you see flicker in normal web + browser such as Firefox. I recommend to use console-based browser + such as elinks, w3m. To connect to the server, run 'elinks + http://localhost:6800/' while running aria2. Please replace port + number '6800'(which is default) with your preference. + * src/DownloadEngineFactory.cc + * src/HttpHeader.cc + * src/HttpHeader.h + * src/HttpHeaderProcessor.cc + * src/HttpHeaderProcessor.h + * src/HttpListenCommand.cc + * src/HttpListenCommand.h + * src/HttpServer.cc + * src/HttpServer.h + * src/HttpServerCommand.cc + * src/HttpServerCommand.h + * src/HttpServerResponseCommand.cc + * src/HttpServerResponseCommand.h + * src/Makefile.am + * src/OptionHandlerFactory.cc + * src/Util.cc + * src/Util.h + * src/help_tags.h + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/HttpHeaderProcessorTest.cc + * test/UtilTest.cc + +2009-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed. + * src/CheckIntegrityMan.cc + * src/FileAllocationMan.cc + +2009-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made (piece) hash check sequential for each RequestGroup because + simultaneous hash check is slower than sequential execution. + * src/CheckIntegrityCommand.cc + * src/CheckIntegrityDispatcherCommand.cc + * src/CheckIntegrityDispatcherCommand.h + * src/CheckIntegrityMan.h + * src/ConsoleStatCalc.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/DownloadEngineFactory.cc + * src/Makefile.am + * src/Makefile.in + * src/RequestGroup.cc + * src/StatCalc.h + +2009-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Moved setStatusRealtime() from FileAllocationDispatcherCommand to + SequentialDispatcherCommand. + * src/FileAllocationDispatcherCommand.cc + * src/SequentialDispatcherCommand.h + +2009-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten FileAllocationDispatcherCommand using brand new + SequentialDispatcherCommand. + * src/DownloadEngineFactory.cc + * src/FileAllocationCommand.cc + * src/FileAllocationDispatcherCommand.cc + * src/FileAllocationDispatcherCommand.h + * src/Makefile.am + * src/SequentialDispatcherCommand.h + +2009-01-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Replaced FileAllocationMan with + SequentialPicker<FileAllocationEntry>. + * src/BtCheckIntegrityEntry.cc + * src/ConsoleStatCalc.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/DownloadEngineFactory.cc + * src/FileAllocationCommand.cc + * src/FileAllocationDispatcherCommand.cc + * src/FileAllocationMan.h + * src/Makefile.am + * src/SequentialPicker.h + * src/StatCalc.h + * src/StreamCheckIntegrityEntry.cc + * test/Makefile.am + * test/SequentialPickerTest.cc + +2009-01-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added doc for adaptive URI selector. + * doc/aria2c.1.txt + +2009-01-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added doc for adaptive URI selector. + * src/usage_text.h + +2009-01-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added doc for --bt-max-peers option. + * doc/aria2c.1.txt + +2009-01-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added doc for --bt-hash-check-seed option. + * doc/aria2c.1.txt + +2009-01-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented exit codes. + * doc/aria2c.1.txt + +2009-01-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-max-peers option to specify the maximum number of peers + per torrent. 0 means unlimited number of peers. + * src/ActivePeerConnectionCommand.cc + * src/BtRuntime.h + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/DefaultPeerStorageTest.cc + +2009-01-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --bt-hash-check-seed option. If true is given to this + option, after hash check using --check-integrity option and file + is complete, continue to seed file. If you want to check file and + download it only when it is damaged or incomplete, set this option + to false. This option has effect only on BitTorrent download. + The default value is true(This is the same behavior with the + previous release). + * src/BtCheckIntegrityEntry.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2009-01-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated copyright year. + * src/version_usage.cc + +2009-01-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten the usage text for --bt-request-peer-speed-limit option. + * doc/aria2c.1.txt + * src/usage_text.h + +2009-01-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made the max value of split option unlimited. + * doc/aria2c.1.txt + * src/OptionHandlerFactory.cc + +2009-01-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile warning/error. + * src/DownloadResult.h + * src/HttpDownloadCommand.cc + * src/ServerStat.cc + * test/RequestGroupTest.cc + +2009-01-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --event-poll option to select the method for polling events. + The available methods are "select" and "epoll". "epoll" is + available on Linux only. The earlier release has the compile + option to choose from these methods. + * configure.ac + * src/RequestGroupMan.cc + * src/OptionHandlerFactory.cc + * src/EpollEventPoll.h + * src/StreamFileAllocationEntry.cc + * src/a2io.h + * src/SelectEventPoll.h + * src/option_processing.cc + * src/prefs.h + * src/EpollEventPoll.cc + * src/EventPoll.h + * src/SocketCore.h + * src/Makefile.am + * src/main.cc + * src/DownloadEngine.h + * src/SelectEventPoll.cc + * src/DownloadEngine.cc + * src/SocketCore.cc + * src/DownloadEngineFactory.cc + * src/Makefile.in + * src/prefs.cc + * src/usage_text.h + +2009-01-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Included RecoverableException.h from main.cc + * src/main.cc + +2009-01-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied exit-status patch from Pascal Rigaux at Mandriva. aria2 + now returns last error encountered in the HTTP/FTP downloads as a + exit status value. If all downloads finished successfully, aria2 + returns 0. The error code is defined in src/DownloadResult.h. + The error occurred in the download currently in progress is not + reported as a last error. If no error has encountered but there + are in progress or waiting downloads, aria2 returns 7. + + * src/AbstractCommand.cc + * src/DlAbortEx.h + * src/DlRetryEx.h + * src/DownloadCommand.cc + * src/DownloadFailureException.h + * src/DownloadResult.h + * src/FtpNegotiationCommand.cc + * src/HttpSkipResponseCommand.cc + * src/Makefile.am + * src/MultiUrlRequestInfo.cc + * src/MultiUrlRequestInfo.h + * src/RecoverableException.h + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/URIResult.cc + * src/URIResult.h + * src/main.cc + * src/option_processing.cc + * test/RequestGroupTest.cc + +2009-01-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied AdaptiveURISelector patch from Aurelien Lefebvre. This + patch adds AdaptiveURISelector, which selects one of the bests + mirrors for first and reserved connections. For supplementary + ones, it returns mirrors which has not been tested yet, and if + each of them already tested, returns mirrors which has to be + tested again. Otherwise, it doesn't return anymore mirrors. + * src/AdaptiveURISelector.cc + * src/AdaptiveURISelector.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/Makefile.am + * src/Makefile.in + * src/OptionHandlerFactory.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/ServerStat.cc + * src/ServerStat.h + * src/ServerStatMan.cc + * src/SpeedCalc.cc + * src/URISelector.h + * src/prefs.cc + * src/prefs.h + * test/RequestGroupManTest.cc + * test/ServerStatManTest.cc + * test/ServerStatTest.cc + +2009-01-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unit test error. + * test/HttpResponseTest.cc (HttpResponseTest::testRetrieveCookie) + +2008-12-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.1.2 + +2008-12-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian translation. Thanks to the translators. + * po/ru.po + +2008-12-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added the description of --use-head option to man page. + * doc/aria2c.1.txt + +2008-12-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.1.2 + * configure.ac + +2008-12-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --use-head option to toggle whether HEAD method should be + used in the first HTTP request. By default aria2 uses HEAD method + as the first request. When the server doesn't recognize HEAD, then + give aria2 --use-head=false to force aria2 to use GET method + instead. + * src/OptionHandlerFactory.cc + * src/RequestGroupMan.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-12-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that BitTorrent download doesn't finish when REJECT + message is received before CHOKE message. The old implementation + doen't clear the use-bit of the piece when recieved REJECT + message. + * src/DefaultBtMessageDispatcher.cc + * test/DefaultBtMessageDispatcherTest.cc + +2008-12-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.1.1 + +2008-12-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.1.1. + * configure.ac + +2008-12-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that --summary-interval=0 doesn't work. The summary + is printed repeatedly. + * src/ConsoleStatCalc.cc + +2008-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.1.0 + +2008-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added ifdef clause for conditional compilation. + * src/main.cc + +2008-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Russian, Simplified Chinese, Ukrainian and Japanese + translations. Thanks to all translators. + * po/ja.po + * po/ru.po + * po/uk.po + * po/zh_CN.po + +2008-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added the preceding ">>> " before the message "Printing the + contents of file..." to make the output more readable. + * src/main.cc + +2008-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added try-catch block in the loop in showFiles() to continue the + operation even if the exception occurred in one file. + * src/main.cc (showFiles) + +2008-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made messages in showFiles() translatable. + * po/aria2.pot + * src/main.cc + * src/message.h + +2008-12-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print the contents of Torrent/Metalink files are printed without + -T/-M options. + * src/main.cc + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Escaped '--' with '\--' + * README + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated "How to build" section in README. Mentioned about + --with-ca-bundle compile option. + * README + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.1.0. + * configure.ac + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added a note for --dht-listen-port option. + * doc/aria2c.1.txt + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Update doc for --realtime-chunk-checksum option. + * doc/aria2c.1.txt + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Update doc for --realtime-chunk-checksum option. + * src/usage_text.h + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated French, Japanese, Russian and Ukrainian translations. + Thanks to all translators. + * po/fr.po + * po/ja.po + * po/ru.po + * po/uk.po + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Renamed aria2c.pot to aria2.pot + * po/aria2.pot + * po/aria2c.pot: Removed. + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed MetaEntry.h + * src/Makefile.am + +2008-12-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rename file by appending digits if a local file exists and its + file size is larger than that of remote file with --continue + option. The old implementation just throws exception in such case. + * src/RequestGroup.cc + +2008-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that download progress summary is not printed in the + interval specified by the option. + * src/ConsoleStatCalc.cc + * src/ConsoleStatCalc.h + +2008-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compiler warning + * src/Cookie.cc + +2008-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the cookie implementation based on RFC2965. + Now if a value in domain field is not started with dot, then + prepend dot. That means a cookie with domain=sf.net is sent to + wiki.sf.net. + * src/Cookie.cc + * test/CookieParserTest.cc + * test/CookieStorageTest.cc + * test/CookieTest.cc + * test/NsCookieParserTest.cc + * test/Sqlite3MozCookieParserTest.cc + +2008-12-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes corrupted downloads if HTTP pipelining + is enabled and the server doesn't support keep-alive. + * src/AbstractCommand.cc + * src/DownloadCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpDownloadCommand.h + * src/HttpResponseCommand.cc + * src/Request.cc + * src/Request.h + * test/RequestTest.cc + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed Dictionary/List/Data and its related classes. + * src/BencodeVisitor.cc: Removed. + * src/BencodeVisitor.h: Removed. + * src/Data.cc: Removed. + * src/Data.h: Removed. + * src/Dictionary.cc: Removed. + * src/Dictionary.h: Removed. + * src/List.cc: Removed. + * src/List.h: Removed. + * src/Makefile.am + * src/MetaEntry.h: Removed. + * src/MetaEntryVisitor.h: Removed. + * src/MetaFileUtil.cc: Removed. + * src/MetaFileUtil.h: Removed. + * test/BencodeVisitorTest.cc: Removed. + * test/DataTest.cc: Removed. + * test/DictionaryTest.cc: Removed. + * test/ListTest.cc: Removed. + * test/Makefile.am + * test/MetaFileUtilTest.cc: Removed. + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed include of MetaEntry.h + * test/DHTMessageTrackerEntryTest.cc + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use BDE instead of Dictionary/List/Data. + * src/AnnounceList.cc + * src/AnnounceList.h + * test/AnnounceListTest.cc + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use BDE instead of Dictionary/List/Data. + * src/DHTAbstractMessage.cc + * src/DHTAbstractMessage.h + * 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/DHTMessageFactory.h + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageFactoryImpl.h + * src/DHTMessageReceiver.cc + * src/DHTMessageTracker.cc + * src/DHTMessageTracker.h + * src/DHTPingMessage.cc + * src/DHTPingMessage.h + * src/DHTPingReplyMessage.cc + * src/DHTPingReplyMessage.h + * src/DHTQueryMessage.cc + * src/DHTQueryMessage.h + * src/DHTResponseMessage.cc + * src/DHTResponseMessage.h + * test/DHTAnnouncePeerMessageTest.cc + * test/DHTAnnouncePeerReplyMessageTest.cc + * test/DHTFindNodeMessageTest.cc + * test/DHTFindNodeReplyMessageTest.cc + * test/DHTGetPeersMessageTest.cc + * test/DHTGetPeersReplyMessageTest.cc + * test/DHTMessageFactoryImplTest.cc + * test/DHTMessageTrackerTest.cc + * test/DHTPingMessageTest.cc + * test/DHTPingReplyMessageTest.cc + * test/MockDHTMessageFactory.h + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added tests the case where length < 0 is specified. + * test/BencodeTest.cc + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed memory leak in decoderawstring() + * src/bencode.cc + +2008-12-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added missing #ifdef guard. Added uc() function for String and + removeKey() for Dict. + * src/bencode.cc + * src/bencode.h + * test/BencodeTest.cc + +2008-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use BDE instead of Dictionary/List/Data. + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * test/HandshakeExtensionMessageTest.cc + +2008-12-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --max-overall-upload-limit option. This option limits the + overall upload speed. Stated in help message that the existing + --max-upload-limit option limits the upload speed per each + torrent. Man page is also updated. + * doc/aria2c.1.txt + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/OptionHandlerFactory.cc + * src/PeerInteractionCommand.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use BDE instead of Dictionary/List/Data classes. + * src/CompactPeerListProcessor.cc + * src/CompactPeerListProcessor.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/DefaultPeerListProcessor.cc + * src/DefaultPeerListProcessor.h + * src/DelegatingPeerListProcessor.cc + * src/DelegatingPeerListProcessor.h + * src/PeerListProcessor.h + * src/UTPexExtensionMessage.cc + * src/Util.h + * src/message.h + * test/DefaultBtContextTest.cc + * test/DefaultPeerListProcessorTest.cc + +2008-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added bencode helper functions and BDE class. + They will replace MetaFileUtil and Dictionary/List/Data classes. + * src/Makefile.am + * src/bencode.cc + * src/bencode.h + * test/BencodeTest.cc + * test/Makefile.am + +2008-12-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that bad URI is sent to the tracker when the announe + URI in torrent file includes query. + * src/DefaultBtAnnounce.cc + * test/DefaultBtAnnounceTest.cc + +2008-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added Option::blank(). + Use !Option::blank(name) instead of Option::defined(name) for + the options that take filename. + * src/MultiUrlRequestInfo.cc + * src/Option.cc + * src/Option.h + * src/main.cc + * src/option_processing.cc + * test/OptionTest.cc + +2008-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Documented the default value of --check-certificate option in man + page. + * doc/aria2c.1.txt + +2008-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Enabled --check-certificate by default. Added compile + time(configure) option --with-ca-bundle to specify CA bundle. + Warn if --check-certificate=true and --ca-certificate is not + specified or loading CA certificate is failed. + * configure.ac + * src/MultiUrlRequestInfo.cc + * src/OptionHandlerFactory.cc + * src/message.h + +2008-12-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Mentioned https tag in help option. + * doc/aria2c.1.txt + +2008-12-03 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added `https' tag to help option category. Added https tag to + --ca-certificate, --certificate, --check-certificate and + --private-key option. + * src/OptionHandlerFactory.cc + * src/help_tags.h + * src/option_processing.cc + +2008-12-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Changed the package name from `aria2c' to `aria2' in order to fix + the packaging issue in Debian and Fedora. The name of the + executable is not changed. + * configure.ac + +2008-12-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typos + * src/usage_text.h + +2008-12-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typos and updated doc. + * README + +2008-12-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typos + * doc/aria2c.1.txt + +2008-12-02 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typos + * src/usage_text.h + +2008-11-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print a message when no files to download. + * src/download_helper.cc + * src/main.cc + * src/message.h + +2008-11-28 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + RFC3986 complied Percent-Encoding(urlencode). + Use uppercase hexadecimal digits for encoded text instead of lowercase + ones. + * src/Request.cc + * src/Util.cc + * src/Util.h + * test/BtHandshakeMessageTest.cc + * test/DefaultBtAnnounceTest.cc + * test/DefaultBtContextTest.cc + * test/RequestTest.cc + * test/UtilTest.cc + +2008-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that prevents aria2 from downloading 0-length files + via HTTP/FTP. + * src/DefaultBtContext.cc + * src/DefaultBtContext.h + * src/DownloadContext.h + * src/FtpNegotiationCommand.cc + * src/HttpResponseCommand.cc + * src/HttpResponseCommand.h + * src/RequestGroup.cc + * src/SingleFileDownloadContext.cc + * src/SingleFileDownloadContext.h + * test/BtPostDownloadHandlerTest.cc + * test/MetalinkPostDownloadHandlerTest.cc + * test/MockBtContext.h + +2008-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that -pfalse and -ptrue are not recognized properly. + * src/option_processing.cc + +2008-11-26 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Applied aria2-1.0.1-mingw.patch. + Use SOCKET_ERRNO instead of errno if the code is used both linux and + mingw. + Collected 4th and 5th argument types for getsockopt and setsockopt. + * src/SocketCore.cc + * src/a2netcompat.h + * test/SocketCoreTest.cc + +2008-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.0.1 + +2008-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian and Norwegian Nynorsk translations. + Thanks to all translators. + * po/nn.po + * po/uk.po + +2008-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Don't show download result when -S option is used. + * src/main.cc + +2008-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.0.1 + * configure.ac + +2008-11-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Closed files after the test cases in MultiDiskWriterTest:: + testResetDiskWriterEntries(). This will fix the unit test error + in mingw32 build. + * test/MultiDiskWriterTest.cc + +2008-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Use HEAD method to get file size from HTTP server for segmented + downloading. + The request to the BitTorrent Tracker always uses GET method because + the response of the tracker is small and it doesn't need segmented + download. + * src/FtpNegotiationCommand.cc + * src/HttpRequest.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/TrackerWatcherCommand.cc + * test/HttpRequestTest.cc + +2008-11-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes floating exception when -T option is used and + no URIs are given. + * src/download_helper.cc + * test/DownloadHelperTest.cc + +2008-11-22 Ross Smith II <aria2spam at smithii dot com> + + Applied aria2-1.0.0-mingw-r5.patch to fix numerous compile/unit test + errors in MinGW: + Closed file after saving server stats (RequestGroupMan.cc) + Fixed time parsing if internal strptime() is missing (FtpConnection.cc) + Ignored case & handled 2-digit years (strptime.c) + Added missing suseconds_t definition (a2time.h) + Fixed socket CLOSE() define (SocketCore.cc) + Changed EINPROGRESS to A2_EINPROGRESS (SocketCore.cc) + Changed utime() test values from x000 to x00000 as MinGW failed on + values less than timezone offset from Unix epoch + Changed 'struct stat' to 'a2_struct_stat' (FileTest.cc) + Added waitRead() call prior to reading socket (FtpConnectionTest.cc) + Changed date from 01-Jan-1960 to 01-Jan-1970 00:00:01 as MinGW can't + handle negative dates (CookieParserTest.cc) + * src/a2time.h + * src/FtpConnection.cc + * src/RequestGroupMan.cc + * src/SocketCore.cc + * src/strptime.c + * test/CookieParserTest.cc + * test/CopyDiskAdaptorTest.cc + * test/FileTest.cc + * test/FtpConnectionTest.cc + * test/MultiDiskAdaptorTest.cc + +2008-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed typo in "OPTIONS THAT TAKE AN OPTIONAL ARGUMENT" section. + * doc/aria2c.1.txt + +2008-11-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + * Release 1.0.0 + +2008-11-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added '~' to reserved characters. + * src/Util.cc + +2008-11-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Do not urlencode Request::url in setUrl() because we want unmodified + URL using Request::getUrl() + * src/Request.cc + * src/Request.h + * test/RequestTest.cc + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated Ukrainian, Japanese, Bulgarian, Russian and French translations. + Thanks to all translators. + * po/bg.po + * po/fr.po + * po/ja.po + * po/ru.po + * po/uk.po + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.0.0 + * configure.ac + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added nosqlite3 build to build_test.sh. + Renamed noxml as expat. + * build_test.sh + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated INPUT FILE section. + * doc/aria2c.1.txt + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Excluded testLoad_compat() and testLoad_nonBt_compat() when compiled + on big endian systems because test .aria2 files are made for little + endian systems. + * test/DefaultBtProgressInfoFileTest.cc + +2008-11-18 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Dropped ares support. + * README + * configure.ac + * m4/libares.m4: Removed. + * src/AsyncNameResolver.cc + * src/Makefile.am + * test/Makefile.am + +2008-11-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten ByteArrayDiskWriter::size() using seekg() and tellg(). + Removed const qualifier from DiskWriter::size(). + * src/AbstractDiskWriter.cc + * src/AbstractDiskWriter.h + * src/ByteArrayDiskWriter.cc + * src/ByteArrayDiskWriter.h + * src/DiskWriter.h + * test/ByteArrayDiskWriterTest.cc + +2008-11-17 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that causes segmentation fault/bus error during executing + choking algorithm while seeding. This is caused by improper + implementation of compare function which returns inconsistent results + depending on the timing of last unchoke. + * src/BtSeederStateChoke.cc + * src/BtSeederStateChoke.h + * src/DefaultPeerStorage.cc + +2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed TODO + * TODO + +2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added a section that explains how to pass argument to options that + takes optional arguments with its short form. + * doc/aria2c.1.txt + +2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added -u for the short form of --max-upload-limit option. + * doc/aria2c.1.txt + * src/option_processing.cc + * src/usage_text.h + +2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added -V for the short form of --check-integrity option. + Now the argument of --check-integrity option is optional: + if it is omitted, it is evaluated as true. + * doc/aria2c.1.txt + * src/option_processing.cc + * src/usage_text.h + +2008-11-16 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Made the default value of --ftp-pasv option set to true and it can take + true/false values. + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/usage_text.h + * doc/aria2c.1.txt + +2008-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Given custom random number generator to std::random_shuffle. + * src/AnnounceList.cc + * src/BtLeecherStateChoke.cc + * src/BtSeederStateChoke.cc + * src/DefaultBtRequestFactory.cc + * src/MetalinkEntry.cc + * src/RarestPieceSelector.cc + * src/SimpleRandomizer.cc + * src/SimpleRandomizer.h + +2008-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Now the default value of --enable-direct-io is true. + * src/OptionHandlerFactory.cc + * doc/aria2c.1.txt + +2008-11-15 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Erase peer before executing onReturningPeer and onErasingPeer + because choking algorithm called from onReturningPeer doesn't + like erasing peer in the active peer list. + * src/DefaultPeerStorage.cc + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Instead of creating special filename in createDownloadResult() if + inMemoryDownload() is true, now it is done in getFilePath(). + * src/RequestGroup.cc + * test/RequestGroupTest.cc + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Print "[MEMORY]" and filename if a file is not saved in disk and just + processed in memory. This is the fix for previous comment out. + * src/MemoryBufferPreDownloadHandler.cc + * src/RequestGroup.cc + * src/RequestGroup.h + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Commented out the code which sets virtual directory path "[MEMORY]" + propagate directory to store to following RequestGroup. + * src/MemoryBufferPreDownloadHandler.cc + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.0.0b + * configure.ac + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added input_uris.txt to EXTRA_DIST + * test/Makefile.am + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed PeerObject.h from Makefile.am + * src/Makefile.am + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Avoid slow seeding + * src/PeerInteractionCommand.cc + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated usage for -i option. + * src/usage_text.h (TEXT_INPUT_FILE) + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added INPUT FILE section to man page. + Escaped fake URLs. + * doc/aria2c.1.txt + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed wrong note position for -o option. + * doc/aria2c.1.txt + +2008-11-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed compile error without SSL/XML library. + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtProgressInfoFile.h + * src/FileMetalinkParserState.cc + * src/RequestGroup.h + * src/SocketCore.cc + * src/SocketCore.h + * src/VerificationMetalinkParserState.cc + * src/download_helper.h + * src/main.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DownloadHelperTest.cc + +2008-11-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Rewritten URI handling functions. They are now provided as a testable + functions. + * src/Makefile.am + * src/RequestGroup.cc + * src/RequestGroup.h + * src/download_helper.cc + * src/download_helper.h + * src/main.cc + * test/DownloadHelperTest.cc + * test/Makefile.am + * test/input_uris.txt + +2008-11-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Quickly terminate commands when ctrl-c is pressed. + * src/DownloadEngine.cc + +2008-11-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Quickly terminate idle commands when download finished. + * src/AbstractCommand.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/SleepCommand.cc + * src/SleepCommand.h + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added the ability to specify output filename and directory in input + file. + Additional parameters are added in the following line of URIs + with proceeding white space(s), 1 parameter in 1 line. + The parameter names are the same with the command-line option name + without proceeding "--". Not all the options are available here: + at the moment, 'dir' and 'out' options are avialable. + Please note that out option has no effect against Metalink or BitTorrent + downloads. + Example input file: + + http://host/foo-1.1.tar.bz2 + out=foo.tar.bz2 + dir=/tmp/downloads + http://host/thundermonkey-2.0.tar.bz2 + + And then invoke 'aria2c -i url.txt --dir ~/mydownloads'. + foo-1.1.tar.bz2 is saved as /tmp/downloads/foo.tar.bz2, whereas + thundermonkey-2.0.tar.bz2 is saved as + ~/mydownloads/thundermonkey-2.0.tar.bz2. + * src/BtPostDownloadHandler.cc + * src/Metalink2RequestGroup.cc + * src/Metalink2RequestGroup.h + * src/MetalinkPostDownloadHandler.cc + * src/UriListParser.cc + * src/UriListParser.h + * src/main.cc + * test/Metalink2RequestGroupTest.cc + * test/UriListParserTest.cc + * test/filelist1.txt + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed error when SSL library is not found. + * configure.ac + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Cross referenced among -s, -C and -j options. + Updated usage of -C and -s options. + * src/usage_text.h + * doc/aria2c.1.txt + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed bad cast in 32bit platforms. + * test/DefaultPieceStorageTest.cc + (DefaultPieceStorageTest::testGetCompletedLength) + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed unit test fails on 32bit platforms. + * test/CookieParserTest.cc + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Show an average download speed in Download results. + * src/BtFileAllocationEntry.cc + * src/DefaultPieceStorage.cc + * src/DownloadContext.cc + * src/DownloadContext.h + * src/DownloadResult.h + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/StreamFileAllocationEntry.cc + +2008-11-11 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that metalink file is not processed if Content-Type + field has a paramter. + * src/HttpResponse.cc + * src/HttpResponse.h + * test/HttpResponseTest.cc + +2008-11-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Removed unused code. + * src/DefaultBtAnnounce.cc + +2008-11-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that DefaultPieceStorage::getCompletedLength() returns + the value larger than DefaultPieceStorage::getTotalLength() when + in flight pieces are involved. + * src/DefaultPieceStorage.cc + * test/DefaultPieceStorageTest.cc + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Bump up version number to 1.0.0a. + * configure.ac + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated configure.ac + * configure.ac + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added usege for proxy. + * doc/aria2c.1.txt + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added usage for --ca-certificate, --certificate, --private-key and + --check-certificate options. + * doc/aria2c.1.txt + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Updated man page + * doc/aria2c.1.txt + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added --no-proxy option. It receives comman separated hostname or + domains to which proxy should not be used. + aria2 honors the environment variable no_proxy to override no-proxy + value in configuration file. The user can override the environment + variable no_proxy with --no-proxy command-line option. + * src/AbstractCommand.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-11-09 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added the ability to verify peer in SSL/TLS using given CA certificates. + The CA certificates are specified in --ca-certificate option. + By default, the verification is disabled. Use --check-certificate + option to enable it. + * src/HttpRequestCommand.cc + * src/LibgnutlsTLSContext.cc + * src/LibgnutlsTLSContext.h + * src/LibsslTLSContext.cc + * src/LibsslTLSContext.h + * src/MultiUrlRequestInfo.cc + * src/OptionHandlerFactory.cc + * src/SocketCore.cc + * src/SocketCore.h + * src/a2functional.h + * src/message.h + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-11-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Added client certificate authentication for SSL/TLS. + Currently a private key must be decrypted for use with aria2. + If a user accidentally gives encrypted file to aria2 then following + thing happens: + If encrypted private key is given to aria2, it behaves differently + depending on the ssl library it uses. If aria2 built with openssl then + openssl prompts the user for password. If aria2 build with gnutls then + aria2 exists with error at start up. + * src/DownloadEngineFactory.cc + * src/MultiUrlRequestInfo.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-11-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Introduced TLSContext that holds TLS related data that can be shared + with multiple SSL connections. + * src/DownloadEngineFactory.cc + * src/LibgnutlsTLSContext.cc + * src/LibgnutlsTLSContext.h + * src/LibsslTLSContext.cc + * src/LibsslTLSContext.h + * src/Makefile.am + * src/SocketCore.cc + * src/SocketCore.h + * src/TLSContext.h + * src/message.h + +2008-11-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + + Fixed the bug that the DiskWriter of the first FileEntry whose + `needsFileAllocation' property is false is not created + even if it shares a piece with next FileEntry which `requested' property + is true. + Fixed the bug that zero-length file is not created if pre file + allocation is not done. + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * test/MultiDiskAdaptorTest.cc + +2008-11-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added the ability to pool proxy connection. + The conneciton in FTP with proxy-method=GET is not pooled. + Proxy-Connection header will not be sent when sending CONNECT method. + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpResponse.cc + * src/HttpSkipResponseCommand.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + +2008-11-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Handle date before epoch. + To create *bad* Time object, call Time::null(). + * src/CookieParser.cc + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpNegotiationCommand.cc + * src/RequestGroup.cc + * src/TimeA2.cc + * src/TimeA2.h + * test/CookieParserTest.cc + * test/FtpConnectionTest.cc + * test/TimeTest.cc + +2008-11-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added support for following envrionment variables: http_proxy, + https_proxy, ftp_proxy and all_proxy. + Each variable is equivalent to the aria2 option whose name is the + variable name with '_' replaced with '-'. + They overrides options specified in aria2.conf file. + The envrionment variables can be overrode using command-line option. + * src/option_processing.cc + +2008-11-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Renamed --http-proxy-method as --proxy-method. + * src/AbstractCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + +2008-11-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Deprecated --http-proxy-user and --http-proxy-passwd options. + Added --https-proxy, --ftp-proxy and --all-proxy options. + Above 3 options and --http-proxy option can handle proxy in URL format + like: http://user:passwd@host:port. + If a proxy requires user/password, they must be specified in a URL. + Deprecated --ftp-via-http-proxy option. Use --http-proxy-method option + instead. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyRequestCommand.h + * src/AuthConfigFactory.cc + * src/AuthConfigFactory.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpInitiateConnectionCommand.h + * src/FtpNegotiationCommand.cc + * src/FtpTunnelRequestCommand.cc + * src/FtpTunnelRequestCommand.h + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpInitiateConnectionCommand.h + * src/HttpProxyRequestCommand.cc + * src/HttpProxyRequestCommand.h + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpRequestCommand.h + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommand.cc + * src/InitiateConnectionCommand.h + * src/OptionHandlerFactory.cc + * src/OptionHandlerImpl.h + * src/Request.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * src/usage_text.h + * test/AuthConfigFactoryTest.cc + * test/HttpRequestTest.cc + * test/OptionHandlerTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Execute choking algorithm when unchoked and interested peer is + disconected. + * src/DefaultPeerStorage.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added testcase for BtNotInterestedMessage from unchoked peer. + * test/BtNotInterestedMessageTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Execute choking algorithm when BtInterestedMessage arrives from + unchoked peer. + * src/BtInterestedMessage.cc + * src/BtInterestedMessage.h + * src/DefaultBtMessageFactory.cc + * test/BtInterestedMessageTest.cc + * test/MockPeerStorage.h + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + AuthConfigFactory is now part of DownloadEngine. + * src/AbstractProxyRequestCommand.cc + * src/AuthConfigFactory.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpNegotiationCommand.cc + * src/HttpConnection.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpResponse.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/MultiUrlRequestInfo.cc + * src/main.cc + * test/FtpConnectionTest.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Corrected catched exception type. + * src/ServerStatMan.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + DNSCache is now part of DownloadEngine. + * src/DNSCache.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/InitiateConnectionCommand.cc + * src/MultiUrlRequestInfo.cc + * test/Makefile.am + * test/Makefile.in + * test/SimpleDNSCacheTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Removed SingletonHolder of CUIDCounter. CUIDCounter is now part of + DownloadEngine. + * src/ActivePeerConnectionCommand.cc + * src/BtSetup.cc + * src/CUIDCounter.h + * src/DHTSetup.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/DownloadEngineFactory.cc + * src/FileAllocationDispatcherCommand.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/PeerInitiateConnectionCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerListenCommand.cc + * src/RequestGroup.cc + * src/StreamFileAllocationEntry.cc + * src/TrackerWatcherCommand.cc + * src/main.cc + * test/RequestGroupManTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Implemented commented code in BtSeederStateChoke + * src/BtSeederStateChoke.cc + * src/Peer.cc + * src/Peer.h + * src/PeerInteractionCommand.cc + * src/PeerSessionResource.cc + * src/PeerSessionResource.h + * test/MockBtMessageDispatcher.h + * test/PeerSessionResourceTest.cc + +2008-11-03 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Made BtRegistry non-static object. Now DownloadEngine has a reference to + its object. + * src/AbstractBtMessage.cc + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/BtContextAwareCommand.cc + * src/BtContextAwareCommand.h + * src/BtExtendedMessage.cc + * src/BtExtendedMessage.h + * src/BtInterestedMessage.cc + * src/BtInterestedMessage.h + * src/BtNotInterestedMessage.cc + * src/BtNotInterestedMessage.h + * src/BtRegistry.cc + * src/BtRegistry.h + * src/BtSeederStateChoke.cc + * src/BtSetup.cc + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + * src/DHTPeerAnnounceEntry.cc + * src/DHTPeerAnnounceEntry.h + * src/DHTPeerAnnounceStorage.cc + * src/DHTPeerAnnounceStorage.h + * src/DHTPeerLookupTask.cc + * src/DHTPeerLookupTask.h + * src/DHTSetup.cc + * src/DHTSetup.h + * src/DHTTaskFactory.h + * src/DHTTaskFactoryImpl.cc + * src/DHTTaskFactoryImpl.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/DefaultBtMessageFactory.cc + * src/DefaultBtMessageFactory.h + * src/DefaultBtMessageReceiver.cc + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtProgressInfoFile.h + * src/DefaultBtRequestFactory.cc + * src/DefaultBtRequestFactory.h + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/InitiatorMSEHandshakeCommand.cc + * src/InitiatorMSEHandshakeCommand.h + * src/MSEHandshake.cc + * src/MSEHandshake.h + * src/Makefile.am + * src/Makefile.in + * src/PeerChokeCommand.cc + * src/PeerChokeCommand.h + * src/PeerInitiateConnectionCommand.cc + * src/PeerInitiateConnectionCommand.h + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerObject.h + * src/PeerReceiveHandshakeCommand.cc + * src/PeerReceiveHandshakeCommand.h + * src/ReceiverMSEHandshakeCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupMan.cc + * src/RequestGroupMan.h + * src/SeedCheckCommand.cc + * src/SeedCheckCommand.h + * src/ShareRatioSeedCriteria.h + * src/SimpleBtMessage.cc + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + * src/UTPexExtensionMessage.cc + * src/UTPexExtensionMessage.h + * test/BtCancelMessageTest.cc + * test/BtChokeMessageTest.cc + * test/BtExtendedMessageTest.cc + * test/BtInterestedMessageTest.cc + * test/BtNotInterestedMessageTest.cc + * test/BtPieceMessageTest.cc + * test/BtPortMessageTest.cc + * test/BtRegistryTest.cc + * test/BtRejectMessageTest.cc + * test/BtRequestMessageTest.cc + * test/DHTPeerAnnounceEntryTest.cc + * test/DHTPeerAnnounceStorageTest.cc + * test/DefaultBtMessageDispatcherTest.cc + * test/DefaultBtMessageFactoryTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DefaultBtRequestFactoryTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/MSEHandshakeTest.cc + * test/MockDHTTaskFactory.h + * test/ShareRatioSeedCriteriaTest.cc + * test/UTPexExtensionMessageTest.cc + +2008-10-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compiler warning. + * test/UtilTest.cc + +2008-10-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Treat Cookie object as session cookie if expiry = 0 is given. + With this change, you can specify session scoped cookies in an external + file setting expiry value to 0. + * src/Cookie.cc + * src/Cookie.h + * test/CookieParserTest.cc + * test/CookieStorageTest.cc + * test/CookieTest.cc + +2008-10-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Changed signature of DHTMessageFactory::createResponseMessage(). + Removed unused validateIDMatch. + * src/DHTMessageFactory.h + * src/DHTMessageFactoryImpl.cc + * src/DHTMessageFactoryImpl.h + * src/DHTMessageTracker.cc + * test/DHTMessageFactoryImplTest.cc + * test/MockDHTMessageFactory.h + + Dropped DHT message coming from same ID of localhost. + * src/DHTMessageReceiver.cc + + Rejected adding node whose ID is the same as localhost's. + * src/DHTRoutingTable.cc + * test/BtPortMessageTest.cc + * test/DHTRoutingTableTest.cc + +2008-10-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Pool connection when redirection occurs with Content-Length = 0. + * src/HttpSkipResponseCommand.cc + * src/HttpSkipResponseCommand.h + +2008-10-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that causes time out when redirection occurs with + content-length 0. + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/HttpSkipResponseCommand.h + +2008-10-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Now each status legends is shown only when it appears in Download + Result. If Download Result has no item, then status legend will not + be printed. + * src/RequestGroupMan.cc + +2008-10-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Removed duplicate creation of OptionHandlers. + * src/option_processing.cc + +2008-10-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that causes segmentation fault when accessing files which + don't exist or are not included in --select-file option while + validating chunk checksum. + * src/MultiDiskAdaptor.cc + +2008-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compiler warning. + * test/UtilTest.cc + +2008-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Included cstdlib. This fixed the compile error with g++-4.3.2. + * src/IteratableChecksumValidator.cc + * src/IteratableChunkChecksumValidator.cc + +2008-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + * Release 0.16.2 + +2008-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added Serbian translation. Updated Ukrainian translation. + Thanks to all translators. + * po/sr.po + * po/uk.po + * po/LINGUAS + +2008-10-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Bump up version number to 0.16.2 + * configure.ac + +2008-10-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added length equality test to operator== to drop a piece message + whose length does not match to the requested one. + * src/RequestSlot.cc + * test/DefaultBtMessageDispatcherTest.cc + +2008-10-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that aria2 aborts when a request larger than 16KiB is + recieved. + In this fix, if a request larger than 16KiB length is received, aria2 + disconnects the peer. + * src/BtConstants.h + * src/PeerMessageUtil.cc + * src/PeerMessageUtil.h + * test/BtRequestMessageTest.cc + +2008-10-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + * Release 0.16.1 + +2008-10-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Replaced '@' with 'at' in AUTHOR and REPORT BUG. + * doc/aria2c.1.txt + +2008-10-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added Ukrainian, Vietnamese, Traditional Chinese translations. + Updated French, Simplified Chinese and Japanese translations. + Thanks to all translators. + en@quot and en@boldquot are also added. + * po/LINGUAS + * po/fr.po + * po/ja.po + * po/uk.po + * po/vi.po + * po/zh_CN.po + * po/zh_TW.po + +2008-10-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Bump up version number to 0.16.1. + * configure.ac + +2008-10-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Updated README. + * README + +2008-10-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Updated man page. Changed doctype of aria2c.1.html to manpage in order + not to replace '--' with em dash character. + * doc/aria2c.1.txt + * doc/makeman + +2008-10-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added --auto-save-interval=SEC option. A control file(*.aria2) is saved + every SEC seconds. + * src/DownloadEngineFactory.cc + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/usage_text.h + +2008-10-13 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compile warning on linux-amd64 + * src/FtpConnection.cc + * src/IteratableChunkChecksumValidator.cc + * src/MultiDiskAdaptor.cc + + Fixed the bug that unit test fails on linux-amd64 + * test/UtilTest.cc + +2008-10-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added --dht-file-path option to change the path to dht.dat, which is a + serialized DHT routing table. + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/usage_text.h + +2008-10-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed possible underflow. + * src/BitfieldMan.cc (BitfieldMan::getNthBitIndex) + +2008-10-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that last character in URI is not encoded. + * src/Request.cc + * test/RequestTest.cc + +2008-10-09 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that referer header field contains fragment. + Now Request class removes fragment part of URI and encodes it + in Request::setUri() and setReferer(). + * src/Request.h + * src/Request.cc + * test/RequestTest.cc + +2008-10-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added missing m4 macros. + * m4/cppunit.m4 + * m4/libgcrypt.m4 + * m4/libgnutls-extra.m4 + * m4/libgnutls.m4 + * m4/libxml2.m4 + +2008-10-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compile error with gcc-4.4(snapshot) + * src/File.cc + * src/FtpConnection.cc + * src/OptionHandlerImpl.h + * src/Util.cc + +2008-10-07 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Removed assert() + * src/SocketBuffer.cc (SocketBuffer::send) + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Changed the type of _numNewConnection to unsigned int. + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + * Release 0.16.0 + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Updated doc + * README + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Updated French, Simplified Chinese, German, Bulgarian and Japanese + translations. Thanks to all translators. + * po/bg.po + * po/de.po + * po/fr.po + * po/ja.po + * po/zh_CN.po + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Bump up version number to 0.16.0. + * configure.ac + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Casted entry->maxConnections to int32_t for std::min<T> with T = + int32_t. + Changed the type of count to int32_t. + * src/Metalink2RequestGroup.cc + +2008-10-06 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added test for Time::elapsed(time_t). + * test/TimeTest.cc + +2008-10-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug in Time::elapsed(): Util::difftvsec() is used where + Util::difftv() should be used instead. + * src/TimeA2.cc + * src/TimeA2.h + +2008-10-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Made socket for dht connections non-blocking + * src/DHTAbstractMessage.cc + * src/DHTAbstractMessage.h + * src/DHTConnection.h + * src/DHTConnectionImpl.cc + * src/DHTConnectionImpl.h + * src/DHTMessage.h + * src/DHTMessageDispatcherImpl.cc + * src/DHTMessageDispatcherImpl.h + * src/DHTUnknownMessage.cc + * src/DHTUnknownMessage.h + * src/SocketCore.cc + * src/SocketCore.h + * test/MockDHTMessage.h + +2008-10-05 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Changed the type of offset to int. + * src/ParameterizedStringParser.cc + +2008-10-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Made getAsInt() return int32_t + * src/Option.h + +2008-10-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Check the availability of winsock2.h and ws2tcpip.h only for mingw32 + build. + * configure.ac + +2008-10-04 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Use sqlite3_open if sqlite3_open_v2 is not available. + * src/Sqlite3MozCookieParser.cc + * src/Sqlite3MozCookieParser.h + * m4/sqlite3.m4 + * test/Sqlite3MozCookieParserTest.cc + +2008-10-02 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Replaced '%zu' with '%lu' since mingw32 doesn't recognize '%zu'. + * src/BtPieceMessage.cc + * src/DHTPeerAnnounceStorage.cc + * src/DefaultPieceStorage.cc + * src/DownloadCommand.cc + * src/DownloadEngine.cc + * src/FtpConnection.cc + * src/PeerConnection.cc + * src/PeerMessageUtil.cc + * src/RequestGroup.cc + * src/RequestGroupMan.cc + * src/SimpleBtMessage.cc + +2008-10-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Use seek() and SetEndOfFile() for mingw32 build instead of ftruncate(), + because mingw32's ftruncate() cannot handle more than 2GB-size file. + * src/AbstractDiskWriter.cc + +2008-10-01 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Don't set Request::supportsPersistentConnection() in HttpConnection + since this code is also used in AbstractProxyResponseCommand. + Moved those code to HttpResponse. + * src/HttpResponse.cc + * src/HttpResponse.h + * src/HttpConnection.cc + * src/HttpConnection.h + * src/HttpResponseCommand.cc + * test/HttpResponseTest.cc + +2008-09-30 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compile error with debian mingw32 cross compiler(4.2.1). + The configuration is minimum: no torrent, no metalink, so there may be + other compile error on their code. + * src/a2netcompat.h + * src/File.cc + * src/File.h + * src/SocketCore.cc + * src/SocketCore.h + +2008-09-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Made a socket of incoming peer non-blocking. + * src/PeerListenCommand.cc + +2008-09-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that aria2 may send duplicate data to BitTorrent peer if + whole message data is not sent in one send() call. + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/PeerConnection.cc + * src/PeerConnection.h + * src/SimpleBtMessage.cc + * src/SimpleBtMessage.h + +2008-09-28 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that aria2 downloads faster than max-download-limit when + downloading file using both HTTP(or FTP) and BitTorrent, because aria2 + evaluates speed separatly(HTTP and BiTorrent) against max-download-limit + , instead of sum of them. + * src/ActivePeerConnectionCommand.cc + * src/DefaultBtInteractive.cc + * src/DownloadCommand.cc + * src/PeerInteractionCommand.cc + * src/PeerReceiveHandshakeCommand.cc + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed the bug that HTTPS download fails. + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/DownloadCommand.cc + * src/FtpConnection.cc + * src/HttpConnection.cc + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/HttpSkipResponseCommand.cc + * src/MSEHandshake.cc + * src/PeerConnection.cc + * src/SocketCore.cc + * src/SocketCore.h + + Fixed the bug that aria2 doesn't download whole content body and cannot + reuse connection if chunked transfer encoding and gzip content encoding + are set. + * src/DownloadCommand.cc + * src/HttpSkipResponseCommand.cc + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Updated man page. + * doc/aria2c.1.txt + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + When error occurred while aria2 was parsing an .aria2.conf file, print + the usage of the option that caused error. + * src/option_processing.cc + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Fixed compile error on OptionHandlerException + * src/Makefile.am + * src/OptionHandlerException.cc + * src/OptionHandlerException.h + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Moved message of the error to OptionHandlerException.h + * src/NameMatchOptionHandler.h + * src/OptionHandlerException.h + +2008-09-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + When error occurs while aria2 is parsing an command-line option, print + the usage of the option. + * src/Makefile.am + * src/NameMatchOptionHandler.h + * src/OptionHandlerException.h + * src/option_processing.cc + +2008-09-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Reverted previous change. + Insert username+'@' to URI(after ftp://) when URI is FTP scheme and + username is not in URI. + * src/HttpRequest.cc + * src/Request.cc + * test/HttpRequestTest.cc + * test/RequestTest.cc + +2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Now colon is required for username and password in FTP URL, like: + ftp://username:password@host. + If colon is not there, aria2 don't parse it as a username. For example, + aria2 don't retrieve username from ftp://username@host. + This fix was made in order to login FTP server via non-transparent ftp + proxy. + * src/Request.cc + * test/RequestTest.cc + +2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Use netrc for HTTP. + Now FTP user/password is sent in Authorization header when + --ftp-via-http-proxy=get is given. + * src/AuthConfigFactory.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/NetrcAuthResolver.cc + * src/NetrcAuthResolver.h + * src/OptionHandlerFactory.cc + * src/option_processing.cc + * src/prefs.cc + * src/prefs.h + * test/AuthConfigFactoryTest.cc + * test/HttpRequestTest.cc + * test/NetrcAuthResolverTest.cc + +2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Issue PWD command first and get working directory and use it as a prefix + for CWD command. + * src/DownloadEngine.cc + * src/DownloadEngine.h + * src/FtpConnection.cc + * src/FtpConnection.h + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpNegotiationCommand.h + * test/FtpConnectionTest.cc + +2008-09-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Removed default user/pass for FTP user/pass, since it should not have + precedence over netrc configuration by default. + * src/OptionHandlerFactory.cc + +2008-09-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Added debug log for socket event. + * src/AbstractCommand.cc + * src/PeerAbstractCommand.cc + +2008-09-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Log microseconds. + * src/SimpleLogger.cc (SimpleLogger::writeLog) + +2008-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Replaced HelpItem.cc with OptionHandler.cc. + * po/POTFILES.in + + Updated po files with 'make update-po' + * po/aria2c.pot + * po/*.po + +2008-09-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com> + + Removed possible values from the text. + * src/usage_text.h (TEXT_METALINK_PREFERRED_PROTOCOL) + +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 + |
