|
@@ -1,202 +1,128 @@
|
|
|
-aria2 1.15.2
|
|
|
+aria2 1.16.0
|
|
|
============
|
|
|
|
|
|
Release Note
|
|
|
------------
|
|
|
|
|
|
-This release fixes several critical bugs. It also adds new features
|
|
|
-such as TLS SNI and CORS support. The --file--allocation option now
|
|
|
-take another value trunc. The new option --enalbe-mmap was added.
|
|
|
-aria2 now uses system-wide SSL/TLS certificates by default, which
|
|
|
-eliminates the requirement to specify --ca-certificate option.
|
|
|
+This release adds SSL/TLS encryption support in RPC transport. The new
|
|
|
+RPC method aria2.appendUri is added, which is a wrapper to
|
|
|
+aria2.changeUri. The Content-Disposition parser is now RFC 6266
|
|
|
+conformant. The resource leak in XmlParser, JSON and Bencode parser
|
|
|
+was fixed. The uploaded data size calculation bug was fixed. For
|
|
|
+MinGW32 build, files are now opened with read/write shared mode.
|
|
|
|
|
|
Changes
|
|
|
-------
|
|
|
|
|
|
-* Catch exception from Socket::getPeerInfo() when pooling connection.
|
|
|
- Socket::getPeerInfo() may fail if its TCP connection has already
|
|
|
- disconnected. In this case, we log this error. The success or
|
|
|
- failure of pooling connection should not affect the later execution
|
|
|
- of the program. This bug may cause segmentation fault if
|
|
|
- Socket::getPeerInfo() throws exception during pooling connection
|
|
|
- after successful tracker request.
|
|
|
-
|
|
|
-* Fixed assertion error if --retry-wait is used. In
|
|
|
- CreateRequestCommand, if Request object returned from getRequest()
|
|
|
- is still sleeping, CreateRequestCommand pools it back but still
|
|
|
- holds its reference. This makes assertion error in
|
|
|
- UnknownLengthPieceStroage::hasMissingUnusedPiece() from
|
|
|
- AbstractCommand::execute().
|
|
|
-
|
|
|
-* Added new file allocation method called 'trunc'. --file-allocation
|
|
|
- option can now take new value 'trunc'. 'trunc' uses ftruncate()
|
|
|
- system call or platform-specific counterpart to truncate a file to a
|
|
|
- specified length.
|
|
|
-
|
|
|
-* Use int64_t instead of off_t. Using off_t, at least, in DiskAdaptor
|
|
|
- layer is problematic because torrent can contain under 2GiB files
|
|
|
- but total sum of those files may exceed 2GiB limit, which makes
|
|
|
- off_t overflow in 32 bit system without large file support. So we
|
|
|
- use int64_t in API. We'll check the file length before download so
|
|
|
- that it does not exceed max off_t.
|
|
|
-
|
|
|
-* Added TLS SNI support.
|
|
|
-
|
|
|
-* Rewritten timegm replacement function. The algorithm is based on
|
|
|
- Python 2.7 calendar.timegm.
|
|
|
-
|
|
|
-* Use system-wide certificates for SSL. Use system-wide certificates
|
|
|
- for SSL. For GnuTLS it requires the latest version, 3.0.20. OpenSSL
|
|
|
- had it for longer. This means that if SSL library is properly
|
|
|
- configured to locate system-wide certificates store, the user don't
|
|
|
- have to use --ca-certificate option. Also packagers don't have to
|
|
|
- use --with-ca-bundle configure option. Patch from Cristian Morales
|
|
|
- Vega
|
|
|
-
|
|
|
-* Fixed base64::decode() return "" if input ends with garbage and no
|
|
|
- padding.
|
|
|
-
|
|
|
-* Changed default Peer ID prefix. The new Peer ID prefix is
|
|
|
- "A2-$MAJOR-$MINOR-$MICRO-", where $MAJOR, $MINOR and $MICRO are the
|
|
|
- major version, the minor version and the micro version
|
|
|
- respectively. For instance, 1.15.2 release of aria2 will use
|
|
|
- "A2-1-15-2-".
|
|
|
-
|
|
|
-* Don't percent-decode filename value in Content-Disposition. We only
|
|
|
- percent-decode filename* value in Content-Disposition because the
|
|
|
- encoding is fully specified. But since filename value is not, so we
|
|
|
- just accept it as is.
|
|
|
-
|
|
|
-* Don't sum in-flight piece which does not intersect filtered ranges.
|
|
|
- When calculating completed length, don't sum the completed length of
|
|
|
- piece which does not intersect filtered ranges.
|
|
|
-
|
|
|
-* Fixed segmentation fault when logger failed to open log file.
|
|
|
-
|
|
|
-* Added ARIA2_STATIC precious variable to configure option. To build
|
|
|
- statically linked aria2 binary, give ARIA2_STATIC=yes to configure,
|
|
|
- like this:
|
|
|
- $ ./configure ARIA2_STATIC=yes
|
|
|
-
|
|
|
-* Use PRId64 for int64_t format specifier
|
|
|
-
|
|
|
-* Handle the case when MINGW32 vsnprintf returns -1. MINGW32 vsnprintf
|
|
|
- returns -1 if output is truncated. Increased buffer for vsnprintf
|
|
|
- in WinConsoleFile and fmt.
|
|
|
-
|
|
|
-* Added --enable-mmap option. If this option is used, map files into
|
|
|
- memory using mmap(2). This option is experimental.
|
|
|
-
|
|
|
-* Added CORS preflight request support in RPC interface. This change
|
|
|
- is based on the patch from binux.
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-aria2 1.15.1
|
|
|
-============
|
|
|
+* mingw32: Open file using _wsopen and added --enable-mmap support
|
|
|
|
|
|
-Release Note
|
|
|
-------------
|
|
|
+ I tried CreateFile but the subsequent ReadFile fails with Access
|
|
|
+ Denied if sparse file is read on NTFS. I mostly reverted previous
|
|
|
+ changes and use _wsopen with read/write share enabled instead of
|
|
|
+ CreateFile.
|
|
|
|
|
|
-This release fixes the bug that prevents --bt-lpd-interface from
|
|
|
-working. If some options sent by RPC request are not acceptable for
|
|
|
-the download type, they are now simply ignored instead of rejecting
|
|
|
-RPC request entirely. The aria2 RPC server now returns 4XX error code
|
|
|
-if the request is not valid in the HTTP level. To improve packaging,
|
|
|
---with-bashcompletiondir configure option was added. This option
|
|
|
-overrides where the aria2c bash_completion file is going to be
|
|
|
-installed. All manual pages are now generated by Sphinx.
|
|
|
+ This change also includes --enable-mmap support for MinGW32
|
|
|
+ build. Memory mapped file may be useful for 64-bits OS and lots of
|
|
|
+ RAM. Currently, FlushViewOfFile is not called during the download,
|
|
|
+ so it is slightly vulnerable against sudden power loss. I found lots
|
|
|
+ of read when resuming download due to page fault. So for now it is
|
|
|
+ useful for the initial download. I recommend not to use
|
|
|
+ --file-allocation=prealloc with --enable-mmap for MinGW32, because
|
|
|
+ it triggers page faults even in the initial download. Anyway, the
|
|
|
+ option is experimental.
|
|
|
|
|
|
-Changes
|
|
|
--------
|
|
|
+* Removed PO files and generated aria2.pot from repository
|
|
|
|
|
|
-* Return appropriate HTTP status code on RPC failure. In this change,
|
|
|
- we return 404 if the request path is neither /json-rpc nor /rpc. If
|
|
|
- XML feature is not enabled and /rpc is requested, return 404. If
|
|
|
- XML parser failed, return 400. JSON parser failure has been handled
|
|
|
- well in the existing code.
|
|
|
+ Currently, message translation is done at launchpad. All PO files
|
|
|
+ can be exported from there. The merge process from launchpad is done
|
|
|
+ when new release. First download export file from launchpad And use
|
|
|
+ import-po script to import PO files into po directory.
|
|
|
|
|
|
-* Ignore unacceptable options in RPC request instead of throwing
|
|
|
- error. This change allows RPC client to send same options for the
|
|
|
- different type of downloads.
|
|
|
+* Set F_GLOBAL_NOCACHE for Mac OS X
|
|
|
|
|
|
-* Handle sockaddr_in.sin_len and sockaddr_in6.sin6_len. Check
|
|
|
- sockaddr_in.sin_len and sockaddr_in6.sin6_len are available and
|
|
|
- assign values to them properly. This change fixes unit test error
|
|
|
- and most error related to getnameinfo() on netbsd.
|
|
|
+* Enabled TCP_NODELAY
|
|
|
|
|
|
-* Removed dependency on inet_aton. Implemented inetPton as a
|
|
|
- replacement of inet_aton. inetPton is implemented using
|
|
|
- net::getBinAddr. This change fixes bug#3525424.
|
|
|
+* Don't use AC_FUNC_MMAP
|
|
|
|
|
|
-* Added --with-bashcompletiondir configure option. By default,
|
|
|
- bash_completion file named aria2c is installed to the directory
|
|
|
- $prefix/share/doc/aria2/bash_completion. To change the install
|
|
|
- directory of the file, use --with-bashcompletiondir option.
|
|
|
+ Don't use AC_FUNC_MMAP becaue it fails on some platforms (e.g.,
|
|
|
+ OpenWRT) which have mmap and it works in the way we use in aria2.
|
|
|
+ Instead use mmap in AC_CHECK_FUNCS list.
|
|
|
|
|
|
-* Converted README.asciidoc into README.rst
|
|
|
+* Added --force-save option.
|
|
|
|
|
|
-* Use Sphinx for aria2 manual page documentation. The source files
|
|
|
- for manual pages are placed under doc/manual-src. The manual pages
|
|
|
- are generated under doc/manual-src/$LANG/_build. The HTML version
|
|
|
- manual page was dropped from the distribution archive.
|
|
|
+ --force-save option saves download with --save-session option even
|
|
|
+ if the download is completed or removed. This may be useful to save
|
|
|
+ BitTorrent seeding which is recognized as completed state. The
|
|
|
+ default value is false.
|
|
|
|
|
|
-* Fixed the bug which prevents --bt-lpd-interface from working.
|
|
|
- Fixes bug#3520125
|
|
|
+* Get the correct uploaded data size
|
|
|
|
|
|
-
|
|
|
+ Subtract msgHdrLen_ from writtenLength to get the uploaded data
|
|
|
+ size. Without this correction, the seeder assumes it has uploaded
|
|
|
+ more data than it actually has.
|
|
|
|
|
|
-aria2 1.15.0
|
|
|
-============
|
|
|
+* Made --http-no-cache false by default
|
|
|
|
|
|
-Release Note
|
|
|
-------------
|
|
|
+* Fixed memory leak in AsyncNameResolver
|
|
|
|
|
|
-This release adds JSON-RPC over WebSocket. It uses the same
|
|
|
-request/response JSON objects with existing JSON-RPC over HTTP and
|
|
|
-adds event notifications from server to client. See manpage for
|
|
|
-details. TLS hostname check is rewritten based on RFC 6125 and it is
|
|
|
-used for both GNUTLS and OpenSSL builds. The
|
|
|
---bt-remove-unselected-file option was added. This option removes the
|
|
|
-unselected files when BitTorrent download is completed.
|
|
|
+* Fixed resource leak in XmlParser and GenericParser
|
|
|
|
|
|
-Changes
|
|
|
--------
|
|
|
+* Reset iostream format state
|
|
|
+
|
|
|
+* gnutls: Added more status checking when verifying peer
|
|
|
+
|
|
|
+* Content-Disposition parser conforming to RFC 6266.
|
|
|
+
|
|
|
+ RFC 2231 Continuation is not supported.
|
|
|
+
|
|
|
+* Reworked download/upload statistics calculation
|
|
|
+
|
|
|
+ The old implementation calculates download/upload statistics for a
|
|
|
+ RequestGroup by summing up all PeerStat objects. For global
|
|
|
+ statistics, those are summed together. This clearly incurs runtime
|
|
|
+ penalty and we introduced some kind of caching which updates
|
|
|
+ statistics every 250ms but it did not work right.
|
|
|
+
|
|
|
+ This change removes all these aggregation code, and instead makes
|
|
|
+ RequestGroup and RequestGroupMan objects hold NetStat object and
|
|
|
+ download/upload bytes are directly calculated by thier own NetStat.
|
|
|
+ This is far more simplar than the old way and less runtime penalty
|
|
|
+ and brings more accuracy.
|
|
|
+
|
|
|
+* Added --rpc-save-upload-metadata option
|
|
|
+
|
|
|
+ If true is given, which is default, save the uploaded torrent or
|
|
|
+ metalink metadata in the directory specified by --dir option. The
|
|
|
+ filename consists of SHA1-hash hex string of metadata plus
|
|
|
+ extension. For torrent, the extension is '.torrent'. For metalink,
|
|
|
+ it is '.meta4'. If false is given to this option, the downloads
|
|
|
+ added by aria2.addTorrent or aria2.addMetalink will not be saved by
|
|
|
+ --save-session option.
|
|
|
|
|
|
-* Use CreateProcessW instead of CreateProcessA in MinGW build. This
|
|
|
- means filename is now passed as wchar string, not UTF-8 encoded char
|
|
|
- string.
|
|
|
+* Perform SSL/TLS handshake after checking whether connection is established
|
|
|
|
|
|
-* Check with pkg-config only: c-ares, openssl, sqlite3 and zlib.
|
|
|
- Removed --with-*-prefix configure option for c-ares, openssl,
|
|
|
- sqlite3, zlib and expat. Use CPPFLAGS and/or PKG_CONFIG_PATH
|
|
|
- instead.
|
|
|
+* Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used
|
|
|
|
|
|
-* Fixed compile error with i686-w64-mingw32 and x86_64-w64-mingw32
|
|
|
- cross compilers.
|
|
|
+* RPC over SSL/TLS transport
|
|
|
|
|
|
-* Get the home directory of the effective user ID using getpwuid() if
|
|
|
- $HOME is not defined.
|
|
|
+ To enable RPC over SSL/TLS, specify server certificate and private
|
|
|
+ key using --rpc-certificate and --rpc-private-key options and enable
|
|
|
+ --rpc-secure option. After the encryption is enabled, use https and
|
|
|
+ wss scheme to access RPC server.
|
|
|
|
|
|
-* Don't use locale dependent toupper and tolower.
|
|
|
+* aria2rpc: Added appendUri command
|
|
|
|
|
|
-* Rewritten TLS hostname check based on RFC 6125 for both GNUTLS and
|
|
|
- OpenSSL builds.
|
|
|
+ This command calls aria2.changeUri(GID, fileIndex, [], [URI,...])
|
|
|
+ internally.
|
|
|
|
|
|
-* Added --bt-remove-unselected-file option. Removes the unselected
|
|
|
- files when download is completed in BitTorrent. To select files, use
|
|
|
- --select-file option. If it is not used, all files are assumed to be
|
|
|
- selected. Please use this option with care because it will actually
|
|
|
- remove files from your disk. This option is default to false.
|
|
|
+* Don't send Proxy-Connection header field
|
|
|
|
|
|
-* Fixed compile error on Open Solaris. Fixes bug#3497518
|
|
|
+* Don't set SNI hostname if it does not include "." for GNUTLS
|
|
|
|
|
|
-* Added JSON-RPC over WebSocket.
|
|
|
+* Disable SSL/TLS compression with OpenSSL
|
|
|
|
|
|
-* Fixed assertion failure if Chunked encoding along with
|
|
|
- Content-Length is used.
|
|
|
+* Pause download even if download is completed
|
|
|
|
|
|
-* Fixed clang and gcc-4.7 warning and errors.
|
|
|
+ This allows to pause and unpause BitTorrent seed.
|
|
|
|
|
|
-* Fixed the bug that aria2 cannot read line longer than 4096 bytes
|
|
|
- from the file specified by --input-file option. Fixes bug#3495336
|
|
|
+* Use execlp() instead of execl()
|