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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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}
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
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.
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.
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.
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.
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
* 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
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.
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.
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.
* 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-integiry and
--realtime-chunk-checksum
command-line option.
(main): Added --check-integiry 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.