aria2 1.8.3
===========

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

This release fixes the bug that --file-allocation=falloc doesn't work
with single file download. It also fixes the bug that the return value
of aria2 is unreliable if error occurs before download begins.  When
custom request headers specified by --header option now override
built-in headers if they have same name.

Changes
-------

 * Updated Chinese(Simplified) translation.

 * User-defined custom request headers specified by --header option
   now override builtin headers if they have same name.

 * Support RFC2231 "Parameter Value Character Set and Language
   Information" in Content-Disposition header.

 * Fixed the bug that aria2 doesn't handle return value if error
   occurred before download begins.

 * Fixed the bug that --file-allocation=falloc doesn't work with
   single file download.



aria2 1.8.2
===========

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

This release fixes the bug that causes segmentation fault with
--max-file-not-found option involved. Now aria2 can handle redirected
URI which is not properly percent encoded. In MinGW32 build, console
readout is now always cut by 80 characters. 'bittorrent' key is added
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.

Changes
-------

 * Added Portuguese translation. Updated Ukrainian and Spanish
   translation. Thanks to all translators.

 * Call ares_library_init and ares_library_cleanup if they are
   available. Some code cleanups.

 * Call ares_process_fd() each time after epoll to handle timeout.

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

 * Rewritten Cookie storage.

 * Handle redirected URI which is not properly percent encoded.

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

 * Fixed compile error with i586-mingw32msvc-g++.  Always Cut console
   readout by 80 characters in mingw32 build.

 * Fixed compile error with intel compiler



aria2 1.8.1
===========

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

This release fixes the bug that causes segmentation fault if unknown
options exist in aria2.conf file and user cannot include empty line in
aria2.conf.

Following new command line options are added: --http-no-cache,
--bt-metadata-only and --human-readable option.  --dir option now
treats "" as ".".  --all-proxy, --http-proxy, --https-proxy and
--ftp-proxy option accept empty string "".  When "" is given, it
erases previously defined proxy.

aria2.getSessionInfo XML-RPC method was added.  aria2.tellWaiting and
aria2.tellStopped XML-RPC method accept a negative integer as
offset. For example, in aria2.tellWaiting, 'offset' == -1 points last
download in the waiting queue and 'offset' == -2 points the download
before the last download, and so on.  'dir' and 'files' key were added
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.  'uris' key was
added 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.  aria2 now
returns gzip compressed XML-RPC response if XML-RPC client accepts
gzip content encoding.

Changes
-------

 * aria2 now returns gzip compressed XML-RPC response if XML-RPC
   client accepts gzip content encoding.

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

 * Added aria2.getSessionInfo XML-RPC method.  This method returns a
   struct containing Session ID, which is generated each time when
   aria2 is invoked.

 * Now offset argument in aria2.tellWaiting and aria2.tellStopped
   accept 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.

 * 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 in
   bytes. No Ki, Mi units conversion is used.  This may be useful for
   a program to parse the output of aria2.

 * Now --all-proxy, --http-proxy, --https-proxy and --ftp-proxy option
   accept empty string "".  When "" is given, it erases previously
   defined proxy.

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

 * Fixed memory leak. Commands stored in std::deque<Command*> are not
   deleted when exception is thrown.

 * Replaced '/' and '\' with '_' in HTTP/FTP filename.

 * Treat --dir="" as --dir="."

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

 * Added following sentence to the help message of --out option:
   --out option is ignored when -Z is used.

 * Added --bt-save-metadata option to -i list options.

 * Fixed compile error with i586-mingw32msvc-gcc 4.4.2, which is
   debian's corss compiler, without any additional libraries.

 * Fixed the bug that causes segmentation fault if unknown option is
   put in aria2.conf file. BUG#2928303

 * Ignore port message with port=0.

 * Updated autoconf/automake auxiliary files.



aria2 1.8.0
===========

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

This release fixes the bug that configure script fails to detect
GnuTLS library if --without-sqlite3 is given.  The new XML-RPC methods
are added: aria2.getOption, aria2.getGetGlobalOption,
aria2.changePosition, aria2.tellStopped and system.multicall.
--bt-save-metadata option is added. This option saves metadata as
.torrent file. This option has effect only when BitTorrent Magnet URI
is used.

Changes
-------

 * Added signal handler for SIGHUP to save .aria2 file when terminal
   is closed. The handler is the same one for SIGINT and SIGTERM.

 * Added system.multicall XML-RPC method.

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

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

 * 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 hex encoded info
   hash 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.

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

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

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

 * Show info hash in Magnet URI in upper case letters in -S output.

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