summaryrefslogtreecommitdiff
path: root/ChangeLog.old
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog.old')
-rw-r--r--ChangeLog.old27745
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
+