浏览代码

Updated for 1.10.0 release

Tatsuhiro Tsujikawa 15 年之前
父节点
当前提交
af99aa31d9
共有 1 个文件被更改,包括 67 次插入341 次删除
  1. 67 341
      NEWS

+ 67 - 341
NEWS

@@ -1,349 +1,75 @@
-aria2 1.9.5
-===========
+aria2 1.10.0
+============
 
 Release Note
 ------------
 
-This release fixes the bug that causes corrupted file.  It also fixes
-assertion error in DefaultPeerStorage class.  Now aria2 doesn't reset
-referer to "" on redirect.  log and log-level option can be used
-in aria2.changeGlobalOption XML-RPC method.  This means you can
-dynamically start or stop logging and change log file and log level.
+This release adds an option to limit the number of connections to the
+same host in each download. aria2 now chooses server which is least
+used in aria2c instance. This release also adds Chromium cookie
+support and HTTP only conditional download support which is download
+file only when the local file is older than remote file.  aria2 now
+can handle %2F in FTP URI properly. HTTP/1.1 chunked decoder was
+fixed. For Linux, aria2 uses fallocate by default if it is usable.
 
 Changes
 -------
 
- * Don't set previousUri_ to "" on redirect.
-
- * Fixed Peer::updateSeeder() to reflect current bitfield.
-
- * Made log and log-level option modifiable using
-   aria2.changeGlobalOption. This means you can dynamically start or
-   stop logging and change log file and log level.
-
- * Fixed that bug that when aria2 is stopped before whole hash
-   check(not piece hash check) is done, aria2 reports its file is
-   downloaded successfully. It should report the download is
-   in-progress and next invocation of aria2 should check hash.
-
- * Fixed the bug that corrups file if segment returned from
-   SegmetnMan::getCleanSegmentIfOwnerIsIdle() has writtenLength > 0.
-
- * Fixed assertion error if updateTransferStatFor is called with peer
-   X before calculateStat() after peer X is added.
-
-
-
-aria2 1.9.4
-===========
-
-Release Note
-------------
-
-This release fixes the bug that connection reuse on FTP does not work
-if FTP server changes root directory based on account. It also fixes
-the bug that reading Metalink document from pipe (-M- option) does not
-work when aria2 is built with expat or old libxml2(2.7.6 or
-earlier). Now aria2 does not emit error if given Metalink document is
-empty(no file element).  The response of aria2.tellStopped XML-RPC
-method now has more information: totalLength, completedLength,
-uploadLength, bitfield and so on.
-
-Changes
--------
-
- * Updated Italian translation. Added Korean translation.  Thanks to
-   all translators.
-
- * Fixed the bug that reading Metalink from pipe fails on older
-   libxml2. It only accepts "-" as a special keyword to read stdin.
-
- * Added log message when cookies are loaded.  Added filename to log
-   message when serializing session.
-
- * Treat SIGHUP and SIGTERM signal as emergency shutdown because they
-   are usually issued by system or other process.
-
- * Don't throw exception when Metalink document is empty(no file
-   element).  It is a valid Metalink document anyway.
-
- * Fixed the bug that feeding Metalink XML via pipe (-M- option) does
-   not work when aria2 is built with expat. Fixed the bug that when
-   Metalink XML is fed via pipe and --save-session is used, entry
-   "/dev/stdin" is saved in session file.
-
- * Added totalLength, completedLength, uploadLength, bitfield,
-   downloadSpeed, uploadSpeed, infoHash, numSeeders, pieceLength,
-   numPieces, connections and dir to the response of aria2.tellStopped
-   XML-RPC method.  aria2.tellWaiting now always returns numSeeders
-   for BitTorrent download.
-
- * Fixed the bug that connection pooling does not take into account
-   proxy.  This means that when connection A via proxy X is pooled, it
-   will be wrongly reused in the download using proxy Y.
-
- * Fixed the bug that FTP download may fail when control connection is
-   reused. This happens because FTP server can offer different root
-   directory for different account. If pooled connections has
-   different root directory, then download will fail.
-
-
-
-aria2 1.9.3
-===========
-
-Release Note
-------------
-
-This release fixes the bug that aria2 cuts filename after ';' if
-filename in Content-Disposition header includes ';'.  It also fixes
-the bug that name attribute of file element in Metalink file is not
-properly sanitized.
-
-Changes
--------
-
- * Fixed the bug that name attribute of file element in Metalink file
-   is not properly sanitized.
-
- * Fixed the bug that if filename in Content-Disposition header
-   includes ';', aria2 cuts filename after ';'.
-
-
-
-aria2 1.9.2
-===========
-
-Release Note
-------------
-
-This release adds kqueue, port_associate/port_getn and poll() support
-for socket event notification to eliminate 1024 file descriptor
-limitation of select() call. The bug that aria2.unpause and
-aria2.unpauseAll XML-RPC method fail when -s1 is given in command-line
-argument was fixed.
-
-Changes
--------
-
- * Print warning when trying to add file descriptor >= FD_SET or < 0
-   to fd_set for other than MinGW32 build. For MinGW32 build, print
-   warning when trying to add file descriptor to fd_set when it
-   already contains FD_SET file descriptors.
-
- * Defined FD_SETSIZE 1024 for MinGW32.
-
- * Added missing timespec.h to SRCS
-
- * Fixed the bug that aria2.unpause fails with -s1.
-
- * Supported poll, kqueue, port_associate/port_getn for socket event
-   notification
-
-
-
-aria2 1.9.1
-===========
-
-Release Note
-------------
-
-This release adds the ability to save unfinished downloads as text
-file.  aria2 can read the file with -i option on restart.  This
-release also adds the ability to download file from scratch when aria2
-sees resume is not supported by remote server.  This feature is
-disabled by default. See --always-resume option for
-details. --no-proxy option accepts IPv4 network address with CIDR
-block. aria2 now doesn't send "Accept-Encoding: deflate, gzip" by
-default.  --http-accept-gzip option was added to toggle this behavior.
-aria2 now treats lines starting "#" in -i list as comments.  Several
-XML-RPC methods were added: aria2.pause, aria2.unpause,
-aria2.shutdown, and their families.  The new exist status code '8' was
-added. The bug that makes aria2 hang when system time changes while
-aria2 is running was fixed on MinGW32, Mac OS X and the system which
-has clock_gettime().  Several other bugs also have been fixed.
-
-Changes
--------
-
- * Updated Ukrainian, Russian, Simplified Chinese, German and Greek
-   translation. Thanks to all translators.
-
- * Added warning for the system which lacks clock_gettime with
-   CLOCK_MONOTONIC.
-
- * Fixed the bug that hash check hangs when aria2.pause is issued
-   while aria2 is checking piece hashes.  Fixed the bug that the
-   download is paused after file allocation completion even if
-   aria2.pause is issued during file allocation.
-
- * Fixed compile error on opensolaris
-
- * Added aria2.forcePause, aria2.pauseAll, aria2.forcePauseAll and
-   aria2.unpauseAll XML-RPC method.
-
- * Use clock_gettime(CLOCK_MONOTONIC, ...) if it is available and
-   usable to prevent from aria2 from being affected by system time
-   change.
-
- * Added aria2.pause and aria2.unpause XML-RPC method.  aria2.pause
-   pauses the download denoted by gid. gid is of type string.  The
-   status of paused download becomes "paused" and the download is
-   placed on the first position of waiting queue. As long as the
-   status is "paused", the download is not started. To change status
-   to "waiting", use aria2.unpause method. This method returns GID of
-   paused download.  aria2.unpause changes the status of the download
-   denoted by gid from "paused" to "waiting". This makes the download
-   eligible to restart. gid is of type string. This method returns GID
-   of unpaused download.
-
- * Added --save-session=FILE option.  This option saves
-   error/unfinished downloads to FILE on exit.  You can pass this
-   output file to aria2c with -i option on restart. Please note that
-   downloads added by aria2.addTorrent and aria2.addMetalink XML-RPC
-   method are not saved.
-
- * Fixed the bug that FTP data connection is not established via proxy
-   when --ftp-proxy is defined and --ftp-pasv=true and
-   --proxy-method=tunnel.
-
- * Fixed the bug that web-seed URI is not percent-encoded.
-
- * Added aria2.shutdown and aria2.forceShutdown XML-RPC method.  These
-   methods, as their name imply, shutdown aria2.  These methods are
-   useful for Windows because it lacks signal mechanism.
-
- * Don't send "Accept-Encoding: default, gzip" by default. This is
-   because some servers respond with "Content-Encoding: gzip" for a
-   file which itself is gzipped file and aria2 inflates them. This is
-   a problem if user doesn't want to inflate the file. Apparently this
-   is server configuration error, but we cannot do anything about
-   this. So we turned this off.  Added --http-accept-gzip option. If
-   true is given to this option, aria2 sends "Accept-Encoding:
-   deflate, gzip" request header and inflates response if remote
-   server responds with "Content-Encoding: gzip" or "Content-Encoding:
-   deflate".  We removed extension "tgz" hack in order not to inflate
-   files with tgz extensions.
-
- * Made aria2 not send
-   "application/metalink4+xml,application/metalink+xml" in Accept
-   header for web-seeding URIs and tracker request.
-
- * Added --dht-message-timeout option.
-
- * Added --bt-tracker-connect-timeout and --bt-tracker-timeout
-   option.
-
- * Documented that specifying --seed-time=0 disables seeding after
-   download completed.
-
- * Drop connection if same Peer ID has been already seen.
-
- * Fixed the bug that waiting download unintentionally starts when
-   URIs are added to it using aria2.changeUri XML-RPC method.
-
- * Fixed compile error with g++-4.4 on FreeBSD.
-
- * Fixed the bug that URIs added using aria2.changeUri XML-RPC method
-   are not used immediately if there is no URI remaining before
-   calling aria2.changeUri and the number of connection is less than
-   the value in -s(or -C for Metalink downloads).
-
- * Added --always-resume and --max-resume-failure-tries option.  If
-   --always-resume=false is given, when all given URIs do not
-   support resume or aria2 encounters N URIs which does not support
-   resume (N is the value specified using --max-resume-failure-tries
-   option), aria2 downloads file from scratch.  The default behavior is
-   --always-resume=true, which means if all URIs do not support
-   resume, download fails. I think this is OK because user normally
-   doesn't like to see that partially downloaded file is
-   overwritten(this is particularly true if file size is big).  This
-   option is useful when aria2 is used as a download backend and
-   graceful falling back to overwritten behavior is preferable.  Added
-   exit status value 8, which means download failed because server did
-   not support resume.
-
- * Added --remove-control-file option.  This option removes control
-   file(*.aria2 file) before download. Using with
-   --allow-overwrite=true, download always starts from scratch. This
-   will be useful for users behind proxy server which disables
-   resume. For such proxy user, -C1 is also recommended for Metalink
-   downloads to avoid establishing unnecessary connections.
-
- * Added v key in DHT message. aria2's DHT version is independent of
-   the package version and we defined it as 1 at the moment. It is
-   defined as DHT_VERSION in src/DHTConstants.h. aria2's DHT version
-   scheme is "A2"+2bytes DHT version number in network byte order.
-
- * Fixed the bug that value of numSeeders in aria2.tellStatus XML-RPC
-   method response is integer, while it should be string.  The man
-   page says it is string.  When peer's port is not listening port,
-   set '0' to port in aria2.getPeers response.
-
- * Lines starting "#" in -i list are treated as comments.
-
- * Accept IPv4 network address with CIDR block in --no-proxy option
-   and no_proxy environment variable.  Current implementation does not
-   resolve hostname in URI to compare network address. So it is only
-   effecive if URI has numeric IP address.
-
-
-
-aria2 1.9.0
-===========
-
-Release Note
-------------
-
-This release adds Metalink4 support and BitTorrent Local Peer
-Discovery.  aria2.changeUri XML-RPC method was added. It enables you
-to add/remove URIs to existing downloads dynamically.  The user and
-password for proxy server now can be specified in command-line
-separately.  We refactored the code based on profiler results, so
-aria2 now runs more efficiently than ever. Russian and Simplified
-Chinese translation were updated.
-
-Changes
--------
-
- * Resurrected --http-proxy-user and --http-proxy-passwd option.
-   Added --https-proxy-user, --https-proxy-passwd, --ftp-proxy-user,
-   --ftp-proxy-passwd, --all-proxy-user, --all-proxy-passwd option.
-
- * Updated Russian and Simplified Chinese translation.
-
- * Added --reuse-uri option. This option has existed quite long, but
-   been hidden.
-
- * Fixed the bug that filename is percent encoded where it must be
-   percent decoded in sendMdtm().
-
- * Added getServers XML-RPC method. It returns currently connected
-   HTTP(S)/FTP server and download speed, etc.
-
- * Added 'status' key to the response of getUri XML-RPC method.
-
- * Added changeUri XML-RPC method.  This method removes/adds URIs
-   dynamically.
-
- * Replaced null or control characters in file path with '_'.  For
-   MinGW32 build, additional characters which is not allowed in
-   Windows kernel are also replaced. util::detectDirTraversal() now
-   returns true if given string contains null or control characters.
-
- * Discard torrent file if path data in it contains directory
-   traversal directives.  Discard metalink:file element in Metalink3
-   format if its name attribute contains directory traversal
-   directives.  Ignore name attribute of metalink:signature element in
-   Metalink3 format if it contains directory traversal directives.
-
- * Added Metalink4 support. Files with same metaurl are
-   grouped and downloaded in one RequestGroup.
-
- * Added --bt-lpd-interface option to specify the interface to use for
-   Local Peer Discovery. LpdMessageDispatcher object now has its own
-   socket. LpdMessageReceiver's socket is binded to multicast address
-   to only receive multicast packets.
-
- * Added Local Peer Discovery. It is disabled by default. Use
-   --bt-enable-lpd to enable the function.
+ * Metadata download may take very long time. If URIs are available,
+   give up metadata download in at most 30 seconds.
+
+ * Added --on-bt-download-complete=COMMAND option.  For BitTorrent, a
+   command specified in --on-download-complete is called when download
+   completes and seeding is over. On the other hand, this option set
+   the command to be executed when download completes but before
+   seeding.
+
+ * Added --conditional-get option.  Download file only when the local
+   file is older than remote file.  This function only works with
+   HTTP(S) downloads only. It does not work if file size is specified
+   in Metalink. It also ignores Content-Disposition header. If a
+   control file exists, this option will be ignored. This function
+   uses If-Modified-Since header to get only newer file
+   conditionally. When getting modification time of local file, it
+   uses user supplied filename(see --out option) or filename part in
+   URI if --out is not specified.
+
+ * FeedbackURISelector now tries to select URI whose host is least
+   used in aria2 globally.
+
+ * Added --min-split-size=SIZE option.  aria2 does not split less than
+   2*SIZE byte range.  For example, let's consider downloading 20MiB
+   file. If SIZE is 10M, aria2 can split file into 2 range [0-10MiB)
+   and [10MiB-20MiB) and download it using 2 sources(if --split >= 2,
+   of course).  If SIZE is 15M, since 2*15M > 20MiB, aria2 does not
+   split file and download it using 1 source.
+
+ * Added --max-connection-per-server=NUM option. The default value of
+   NUM is 1. This option limits the number of connections allowed to
+   one server for each download. This means when NUM is 2 and 1 URI is
+   provided, even if you specified -s 5, aria2 establishes 2
+   connections.
+
+ * Set end byte in Range header if start byte > 0 to get more chance
+   to pool socket.
+
+ * Fixed ChunkedDecoder. It does not read trailer and final CRLF.
+
+ * Send each CWD component of FTP URI in separate CWD command as
+   described in RFC1738.
+
+ * Fixed the bug that aria2 cannot handle %2F in FTP URI properly.  If
+   directory component starts with %2F which percent-encode of '/',
+   client should issue CWD to absolute path, but aria2 does not do
+   that. It just issues relative path and download fails.
+
+ * Added Chromium/Google Chrome Cookies file support. Thanks to
+   gotrunks for original patch.
+
+ * When allocating disk space, for Linux system with fallocate()
+   system call, first check file system supports fallocate.  This just
+   run fallocate with small chunk and see it succeeds or fails.  If it
+   succeeds, use fallocate() to allocate entire file otherwise fall
+   back to traditional slower method: writing zeros. This behavior is
+   enabled in --file-allocation=prealloc, so this is enabled by
+   default for most modern Linux.