mirror of https://github.com/aria2/aria2
Updated NEWS for 1.16.0 release
parent
7e59e2dbb5
commit
031ff9ae62
240
NEWS
240
NEWS
|
@ -1,202 +1,128 @@
|
||||||
aria2 1.15.2
|
aria2 1.16.0
|
||||||
============
|
============
|
||||||
|
|
||||||
Release Note
|
Release Note
|
||||||
------------
|
------------
|
||||||
|
|
||||||
This release fixes several critical bugs. It also adds new features
|
This release adds SSL/TLS encryption support in RPC transport. The new
|
||||||
such as TLS SNI and CORS support. The --file--allocation option now
|
RPC method aria2.appendUri is added, which is a wrapper to
|
||||||
take another value trunc. The new option --enalbe-mmap was added.
|
aria2.changeUri. The Content-Disposition parser is now RFC 6266
|
||||||
aria2 now uses system-wide SSL/TLS certificates by default, which
|
conformant. The resource leak in XmlParser, JSON and Bencode parser
|
||||||
eliminates the requirement to specify --ca-certificate option.
|
was fixed. The uploaded data size calculation bug was fixed. For
|
||||||
|
MinGW32 build, files are now opened with read/write shared mode.
|
||||||
|
|
||||||
Changes
|
Changes
|
||||||
-------
|
-------
|
||||||
|
|
||||||
* Catch exception from Socket::getPeerInfo() when pooling connection.
|
* mingw32: Open file using _wsopen and added --enable-mmap support
|
||||||
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
|
I tried CreateFile but the subsequent ReadFile fails with Access
|
||||||
CreateRequestCommand, if Request object returned from getRequest()
|
Denied if sparse file is read on NTFS. I mostly reverted previous
|
||||||
is still sleeping, CreateRequestCommand pools it back but still
|
changes and use _wsopen with read/write share enabled instead of
|
||||||
holds its reference. This makes assertion error in
|
CreateFile.
|
||||||
UnknownLengthPieceStroage::hasMissingUnusedPiece() from
|
|
||||||
AbstractCommand::execute().
|
|
||||||
|
|
||||||
* Added new file allocation method called 'trunc'. --file-allocation
|
This change also includes --enable-mmap support for MinGW32
|
||||||
option can now take new value 'trunc'. 'trunc' uses ftruncate()
|
build. Memory mapped file may be useful for 64-bits OS and lots of
|
||||||
system call or platform-specific counterpart to truncate a file to a
|
RAM. Currently, FlushViewOfFile is not called during the download,
|
||||||
specified length.
|
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.
|
||||||
|
|
||||||
* Use int64_t instead of off_t. Using off_t, at least, in DiskAdaptor
|
* Removed PO files and generated aria2.pot from repository
|
||||||
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.
|
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.
|
||||||
|
|
||||||
* Rewritten timegm replacement function. The algorithm is based on
|
* Set F_GLOBAL_NOCACHE for Mac OS X
|
||||||
Python 2.7 calendar.timegm.
|
|
||||||
|
|
||||||
* Use system-wide certificates for SSL. Use system-wide certificates
|
* Enabled TCP_NODELAY
|
||||||
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
|
* Don't use AC_FUNC_MMAP
|
||||||
padding.
|
|
||||||
|
|
||||||
* Changed default Peer ID prefix. The new Peer ID prefix is
|
Don't use AC_FUNC_MMAP becaue it fails on some platforms (e.g.,
|
||||||
"A2-$MAJOR-$MINOR-$MICRO-", where $MAJOR, $MINOR and $MICRO are the
|
OpenWRT) which have mmap and it works in the way we use in aria2.
|
||||||
major version, the minor version and the micro version
|
Instead use mmap in AC_CHECK_FUNCS list.
|
||||||
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
|
* Added --force-save option.
|
||||||
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.
|
--force-save option saves download with --save-session option even
|
||||||
When calculating completed length, don't sum the completed length of
|
if the download is completed or removed. This may be useful to save
|
||||||
piece which does not intersect filtered ranges.
|
BitTorrent seeding which is recognized as completed state. The
|
||||||
|
default value is false.
|
||||||
|
|
||||||
* Fixed segmentation fault when logger failed to open log file.
|
* Get the correct uploaded data size
|
||||||
|
|
||||||
* Added ARIA2_STATIC precious variable to configure option. To build
|
Subtract msgHdrLen_ from writtenLength to get the uploaded data
|
||||||
statically linked aria2 binary, give ARIA2_STATIC=yes to configure,
|
size. Without this correction, the seeder assumes it has uploaded
|
||||||
like this:
|
more data than it actually has.
|
||||||
$ ./configure ARIA2_STATIC=yes
|
|
||||||
|
|
||||||
* Use PRId64 for int64_t format specifier
|
* Made --http-no-cache false by default
|
||||||
|
|
||||||
* Handle the case when MINGW32 vsnprintf returns -1. MINGW32 vsnprintf
|
* Fixed memory leak in AsyncNameResolver
|
||||||
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
|
* Fixed resource leak in XmlParser and GenericParser
|
||||||
memory using mmap(2). This option is experimental.
|
|
||||||
|
|
||||||
* Added CORS preflight request support in RPC interface. This change
|
* Reset iostream format state
|
||||||
is based on the patch from binux.
|
|
||||||
|
|
||||||
|
* gnutls: Added more status checking when verifying peer
|
||||||
|
|
||||||
aria2 1.15.1
|
* Content-Disposition parser conforming to RFC 6266.
|
||||||
============
|
|
||||||
|
|
||||||
Release Note
|
RFC 2231 Continuation is not supported.
|
||||||
------------
|
|
||||||
|
|
||||||
This release fixes the bug that prevents --bt-lpd-interface from
|
* Reworked download/upload statistics calculation
|
||||||
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.
|
|
||||||
|
|
||||||
Changes
|
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.
|
||||||
|
|
||||||
* Return appropriate HTTP status code on RPC failure. In this change,
|
This change removes all these aggregation code, and instead makes
|
||||||
we return 404 if the request path is neither /json-rpc nor /rpc. If
|
RequestGroup and RequestGroupMan objects hold NetStat object and
|
||||||
XML feature is not enabled and /rpc is requested, return 404. If
|
download/upload bytes are directly calculated by thier own NetStat.
|
||||||
XML parser failed, return 400. JSON parser failure has been handled
|
This is far more simplar than the old way and less runtime penalty
|
||||||
well in the existing code.
|
and brings more accuracy.
|
||||||
|
|
||||||
* Ignore unacceptable options in RPC request instead of throwing
|
* Added --rpc-save-upload-metadata option
|
||||||
error. This change allows RPC client to send same options for the
|
|
||||||
different type of downloads.
|
|
||||||
|
|
||||||
* Handle sockaddr_in.sin_len and sockaddr_in6.sin6_len. Check
|
If true is given, which is default, save the uploaded torrent or
|
||||||
sockaddr_in.sin_len and sockaddr_in6.sin6_len are available and
|
metalink metadata in the directory specified by --dir option. The
|
||||||
assign values to them properly. This change fixes unit test error
|
filename consists of SHA1-hash hex string of metadata plus
|
||||||
and most error related to getnameinfo() on netbsd.
|
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.
|
||||||
|
|
||||||
* Removed dependency on inet_aton. Implemented inetPton as a
|
* Perform SSL/TLS handshake after checking whether connection is established
|
||||||
replacement of inet_aton. inetPton is implemented using
|
|
||||||
net::getBinAddr. This change fixes bug#3525424.
|
|
||||||
|
|
||||||
* Added --with-bashcompletiondir configure option. By default,
|
* Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used
|
||||||
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.
|
|
||||||
|
|
||||||
* Converted README.asciidoc into README.rst
|
* RPC over SSL/TLS transport
|
||||||
|
|
||||||
* Use Sphinx for aria2 manual page documentation. The source files
|
To enable RPC over SSL/TLS, specify server certificate and private
|
||||||
for manual pages are placed under doc/manual-src. The manual pages
|
key using --rpc-certificate and --rpc-private-key options and enable
|
||||||
are generated under doc/manual-src/$LANG/_build. The HTML version
|
--rpc-secure option. After the encryption is enabled, use https and
|
||||||
manual page was dropped from the distribution archive.
|
wss scheme to access RPC server.
|
||||||
|
|
||||||
* Fixed the bug which prevents --bt-lpd-interface from working.
|
* aria2rpc: Added appendUri command
|
||||||
Fixes bug#3520125
|
|
||||||
|
|
||||||
|
This command calls aria2.changeUri(GID, fileIndex, [], [URI,...])
|
||||||
|
internally.
|
||||||
|
|
||||||
aria2 1.15.0
|
* Don't send Proxy-Connection header field
|
||||||
============
|
|
||||||
|
|
||||||
Release Note
|
* Don't set SNI hostname if it does not include "." for GNUTLS
|
||||||
------------
|
|
||||||
|
|
||||||
This release adds JSON-RPC over WebSocket. It uses the same
|
* Disable SSL/TLS compression with OpenSSL
|
||||||
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.
|
|
||||||
|
|
||||||
Changes
|
* Pause download even if download is completed
|
||||||
-------
|
|
||||||
|
|
||||||
* Use CreateProcessW instead of CreateProcessA in MinGW build. This
|
This allows to pause and unpause BitTorrent seed.
|
||||||
means filename is now passed as wchar string, not UTF-8 encoded char
|
|
||||||
string.
|
|
||||||
|
|
||||||
* Check with pkg-config only: c-ares, openssl, sqlite3 and zlib.
|
* Use execlp() instead of execl()
|
||||||
Removed --with-*-prefix configure option for c-ares, openssl,
|
|
||||||
sqlite3, zlib and expat. Use CPPFLAGS and/or PKG_CONFIG_PATH
|
|
||||||
instead.
|
|
||||||
|
|
||||||
* Fixed compile error with i686-w64-mingw32 and x86_64-w64-mingw32
|
|
||||||
cross compilers.
|
|
||||||
|
|
||||||
* Get the home directory of the effective user ID using getpwuid() if
|
|
||||||
$HOME is not defined.
|
|
||||||
|
|
||||||
* Don't use locale dependent toupper and tolower.
|
|
||||||
|
|
||||||
* Rewritten TLS hostname check based on RFC 6125 for both GNUTLS and
|
|
||||||
OpenSSL builds.
|
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
* Fixed compile error on Open Solaris. Fixes bug#3497518
|
|
||||||
|
|
||||||
* Added JSON-RPC over WebSocket.
|
|
||||||
|
|
||||||
* Fixed assertion failure if Chunked encoding along with
|
|
||||||
Content-Length is used.
|
|
||||||
|
|
||||||
* Fixed clang and gcc-4.7 warning and errors.
|
|
||||||
|
|
||||||
* Fixed the bug that aria2 cannot read line longer than 4096 bytes
|
|
||||||
from the file specified by --input-file option. Fixes bug#3495336
|
|
||||||
|
|
Loading…
Reference in New Issue