aria2 1.14.0
============

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

This release adds many available options to aria2.changeOption and
aria2.changeGlobalOption RPC methods.  IPv6 literal address is now
supported in the proxy options. --metalink-server option is now
deprecated and --split option should be used instead. In this release,
--metalink-server is the alias of --split option.  The format ETA in
console readout is changed slightly. New option --stop-with-process is
added.

Changes
-------

 * Updated Chinese (Simplified), Spanish, French and Russian
   translations. Thanks to all translators.

 * Updated Russian man page. Thanks to ITriskTI.

 * Ignore peer which possibly sent bad data in next few minuts.  In
   aria2, one piece is downloaded from several peers, so when hash
   check failed for that piece, it cannot determine which peer(s) sent
   bad data. So, we ignore peer who sent last block of data in random
   minutes. We use randomized timeout because all peers get waken up
   at the almost same time.
 
 * Added suggestion for unknown/ambiguous options.  The help messages
   shown when argument error were redesigned and less verbose now.
   When unknown or ambiguous option is given, show suggestions like
   "Did you mean...". Some constant values related to levenstein
   distance are borrowed from git help.c.

 * Added --stop-with-process=PID option.  This feature stops
   application when process PID is not running.  This is useful if
   aria2 process is forked from a parent process. The parent process
   can fork aria2 with its own pid and when parent process exits for
   some reason, aria2 can detect it and shutdown itself.  The code
   which detects whether or not given process PID is running is
   contributed by Emmanuel Engelhart.
 
 * Support IPv6 address for FTP via HTTP tunneling.

 * The previous implementation could not handle the situation when
   user, password and proxy URI is given various order.  Now we just
   set rules: username set in --*-proxy-user overrides username in
   --*-proxy option, no matter in any order username, password and
   proxy URI are parsed. Likewise, password set in --*--proxy-passwd
   overrides password in --*-proxy option.

 * Changed format of ETA.  Now no leading 0 is used. If hour part
   and/or min part is non-zero, and sec part is 0, sec part is
   omitted, like this "1h3m".

 * Rewritten Metalink XML parser.  Now we don't strip white spaces
   while parsing Metalink V3 document.

 * Now xml attribute and characters in RPC request is not stripped at
   all.

 * Fixed bug that some information such as port number is lost if
   redirect URI contains only path component.

 * Apply PREF_MAX_CONNECTION_PER_SERVER to BitTorrent WEB Seeding
   hosts.

 * Reuse in-flight and pooled URIs when a download is paused.

 * Deprecated --metalink-server option. Use --split option instead.

 * Made max value of --select-file to 65535

 * Use same domain-match algorithm for no-proxy and netrc.  Now
   "example.org" does not domain-match ".example.org" in both
   functions.

 * For waiting or paused downloads, the options listed in Input File
   subsection in man page are available in aria2.changeOption RPC
   method, except for following options: dry-run, metalink-base-uri,
   parameterized-uri, pause and piece_length.

 * Made --download-result, --save-session, --server-stat-of and
   --save-cookies option available in aria2.changeGlobalOption.  In
   addition to them, the options listed in Input File subsection in
   man page are also available, except for following options:
   checksum, index-out, out, pause and select-file.

 * Made --uri-selector option available in -i list.

 * Support IPv6 literal address in proxy option.

 * Support IPv6 CIDR block in --http-no-proxy option.

 * HttpProxyOptionHandler: Enclose hostname with square brackets if
   hostname is IPv6 numeric address.
