This release adds JSON-RPC interface. The JSON-RPC and XML-RPC shares
same APIs. The JSON-RPC also supports JSONP. 2 new options were added:
--retry-wait and --async-dns-server. The downloads added by
aria2.addTorrent and aria2.addMetalink RPC method are now saved to the
file specified in --save-session option. The proxy options and related
environment variables now accept https:// and ftp:// scheme. This
release fixes the bug that causes segmentation fault when unpausing
downloads in some situations. MinGW32 build now looks for USERPROFILE
and the combination of HOMEDRIVE and HOMEPATH to get user's home
directory and doesn't check permission of .netrc file.
* Updated gettext to 0.18
* Added JSON-RPC support. --enable-xml-rpc was deprecated and
--enable-rpc should be used instead. Similarly, --xml-rpc-*
options were replaced with --rpc-* options. We are implementing
JSON-RPC based on JSON-RPC 2.0 draft spec.
* Fixed rounding error in DownloadEngine::run(). This fixes the bug
that executeCommand() with Command::STATUS_ALL is not called in
every interval correctly because of rounding error in timer.
* Refresh buckets at DHT initialization without checking serialized
time. Checking serialized time does not work if you stop aria2 as
soon as it started DHT. The serialized time in dht.dat will be
updated, but buckets are not updated and still old. When you
restart aria2 again soon, it does not refresh buckets because
serialized time is recent.
* Save downloads added by aria2.addTorrent or aria2.addMetalink in
--save-session file. Uploaded data are saved as file named hex
string of sha1 hash of uploaded data plus extension(".torrent" for
torrent and ".meta4" for metalink). For example,
0a3893293e27ac0490424c06de4d09242215f0a6.torrent. The directory
where these files are saved is specified by --dir option. These
file paths are written in --save-session file.
* Fixed the bug that causes segmentation fault when unpause
RequestGroup which has resolved BtDependency.
* Look for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH
to get user's home directory in MinGW32 build. Usually HOME
environment variable is defined in *nix like OSes, but not in
Windows. So in MinGW32 build, if HOME is not defined, we also look
for USERPROFILE and the combination of HOMEDRIVE and HOMEPATH.
* Fixed the bug that DownloadContext::basePath_ is not escaped.
* Added Date, Expires and Cache-Control response header field to RPC
* Added --async-dns-server option. This option accepts comma
separated list of DNS server addresses used in asynchronous DNS
resolver. Usually asynchronous DNS resolver reads DNS server
addresses from /etc/resolv.conf. When this option is used, it uses
DNS servers specified in this option instead of ones in
/etc/resolv.conf. You can specify both IPv4 and IPv6 address. This
option is useful when the system does not have /etc/resolv.conf and
user does not have the permission to create it.
* Accept https:// and ftp:// in proxy options and environment variables.
* Fixed overflow in the calculation of progress percentage for file
allocation and hash check when off_t is 32bit.
* Accept HTTP 304 reply as success when If-None-Match request-header
field is specified using --header option. When --conditional-get
is used, --allow-overwrite is now required to overwrite existing
* Added aria2.removeDownloadResult RPC method. The method signature
is aria2.removeDownloadResult(gid). This method removes
completed/error/removed download denoted by gid from memory. This
method returns "OK" for success.
* Use IP address of control connection to connect to the remote server in
FTP passive mode.
* Don't check permission of .netrc file in MinGW32 build.
* Added --retry-wait option. This option was once existed in aria2
but erased on 2009-09-20. Now it is resurrected once again. We
choose 0 as default value for backward compatibility. Now we retry
HTTP download when remote server returns "503 Service Unavailable"
if --retry-wait > 0. We also added error code 29:
* Don't show metadata download and paused download in "Download Results".