aria2 1.11.0
============

Release Note
------------

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.

Changes
-------

 * 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
   response.

 * 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
   file.

 * 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:
   HTTP_SERVICE_UNAVAILABLE.

 * Don't show metadata download and paused download in "Download Results".
