mirror of
https://github.com/aria2/aria2.git
synced 2025-01-01 07:36:24 +00:00
Update NEWS for 1.17.0 release
This commit is contained in:
parent
71713709e5
commit
51f3bc59e1
461
NEWS
461
NEWS
@ -1,446 +1,81 @@
|
||||
aria2 1.16.5
|
||||
aria2 1.17.0
|
||||
============
|
||||
|
||||
Release Note
|
||||
------------
|
||||
|
||||
This release fixes the bug that invalid range error is thrown when
|
||||
requesting range starts from 0 in HTTP download.
|
||||
This release adds Mac OS X native SSL/TLS library support. The IPv6
|
||||
asynchronous DNS is enabled by default and A/AAAA lookups are done in
|
||||
parallel. The simple Happy Eyeballs algorithm was implemented to
|
||||
mitigate long timeout when connecting to IPv6 host on dual-stack host.
|
||||
--save-session option only saves the options specified by command-line
|
||||
or RPC.
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
* Fix bug that invalid range error when requesting range starting 0
|
||||
* Updated Russian manual
|
||||
|
||||
Since the change b782a56b, we use endOffsetOverride_ as the return
|
||||
value of getEndByte(). But aria2 does not send Range header field
|
||||
when range starts 0 (this is because some server returns error if it
|
||||
received Range: 0-), and the HttpRequest::isRangeSatisfied() checks
|
||||
the equality of getEndByte() and the end byte in response header and
|
||||
fails. The fix is send Range header if getEndByte() is set.
|
||||
Contributed by ITriskTI
|
||||
|
||||
|
||||
* Updated Portuguese manual
|
||||
|
||||
aria2 1.16.4
|
||||
============
|
||||
|
||||
Release Note
|
||||
------------
|
||||
|
||||
This release fixes the bug that active downloads are not saved with
|
||||
--save-session-interval and the bug that aria2 hangs when size of
|
||||
download result exceeds its maximum. BitTorrent UDP tracker support
|
||||
was added. If the filename specified using --save-session ends with
|
||||
".gz", aria2 stores the session file in gzipped form. The -i option
|
||||
can handle this gzipped file as well as plain text file. 1.15.2 based
|
||||
Portuguese translated manual was added.
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
* Make configure argument meaning more consistent and obvious.
|
||||
|
||||
Most other software uses --disable/--without for features it does
|
||||
build or at least check by default.
|
||||
|
||||
Change aria2 configure options so that:
|
||||
|
||||
* --enable-*: do not build by default, unless --enable specified
|
||||
* --disable-*: check and build by default, unless --disable specified
|
||||
* --with-*: do not use by default, unless --with specified
|
||||
* --without-*: check and use by default, unless without specified
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Allow for out-of-tree Sphinx builds
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Bring back datetime in console log
|
||||
|
||||
* Run checksum check if -V and -c are used and file is completed
|
||||
|
||||
With -c option, aria2 can continue download after the existing file
|
||||
position. If it is not completed, then after completion aria2 runs
|
||||
checksum checking if available. But if existing file has already
|
||||
been completed, then CreateRequestCommand exits without issuing
|
||||
checksum checking. And aria2 treats it download error because it
|
||||
needs checksum verification but it has not been done. This change
|
||||
fixes this by properly checking download state and issue checksum
|
||||
checking before CreateRequestCommand.
|
||||
|
||||
* Support for gzipped -i and --save-session
|
||||
|
||||
Saved sessions may very large, as in hundreds and even thousands of
|
||||
megabyte when dealing with large queues. Add support to save and
|
||||
reload sessions to gzipped files, when libz is available.
|
||||
|
||||
The session serializer will output gzipped contents when the file
|
||||
ends with .gz, while the input file reader (UriListParser) will
|
||||
accept whatever is thrown at it.
|
||||
|
||||
Document -i/--save-session gzip behaviour
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Do not use a virtual varargs function
|
||||
|
||||
This stuff breaks in some compiler (configurations)
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Check for sys/signal.h and/or signal.h
|
||||
|
||||
mingw-w64 does not actually have sys/signal.h, while OSX currently
|
||||
has a broken signal.h Better check the presence of both and use
|
||||
sys/signal.h if present, else signal.h
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Hygiene: Fix some clang warnings, mostly unused private members.
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Fix bustage on OSX with ./configure CC=cc CXX=c++ (clang)
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Do not reference RequestGroups longer than necessary
|
||||
|
||||
There is an initial vector of SharedHandle<RequestGroup> to seed the
|
||||
DownloadEngine. This vector was however kept alive via main.cc ->
|
||||
MultiUrlRequestInfo up until the program exits, hence effetively
|
||||
leaking all initial RequestGroups and associated object instances.
|
||||
|
||||
Hence, as a matter of dirty-workaround, drop the contents of that
|
||||
initial vector as soon as it is not required any longer.
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Detect console with on Windows
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
|
||||
|
||||
* Support BitTorrent UDP tracker
|
||||
|
||||
It shares UDP listening port with IPv4 DHT. At the moment, in order
|
||||
to enable UDP tracker support, enable IPv4 DHT.
|
||||
|
||||
* Show correct end byte in error message when HTTP response range is not ok
|
||||
|
||||
Previously, unless HTTP pipelining is enabled, end byte in that
|
||||
message is always 0. With this change, it shows correct end byte
|
||||
sent to the HTTP server.
|
||||
|
||||
* Add Portuguese manual
|
||||
|
||||
This translation is based on aria2 version 1.15.2 manual.
|
||||
Contributed by Gilberto dos Santos Alves
|
||||
|
||||
* Fix bug that active downloads are not saved with --save-session-interval
|
||||
* Append --static to pkg-config arguments when ARIA2_STATIC=yes
|
||||
|
||||
|
||||
* Save options directly specified for download in --save-session
|
||||
|
||||
aria2 1.16.3
|
||||
============
|
||||
This change makes --save-session save only options specified for
|
||||
download, more specifically, options in command-line, -i file and
|
||||
via RPC. The other options from conf file and default values are not
|
||||
saved. This will drastically decrease the size of session file.
|
||||
|
||||
Release Note
|
||||
------------
|
||||
* Save URI returned only from FileEntry::getRemainingUris()
|
||||
|
||||
This release fixes the bug which causes random crash. It also fixes
|
||||
socket option setting failure on Windows platform.
|
||||
The currently used URIs are inserted back into remaining URI list in
|
||||
FileEntry::putBackRequest(), which overlaps to some of the URIs in
|
||||
spentUris_. If we save spent URIs, each time save is performed, the
|
||||
number of URIs are increased due to this overlap. This change fixes
|
||||
this bug.
|
||||
|
||||
Changes
|
||||
-------
|
||||
* Print linked 3rd party libraries with version in `aria2c -v` output
|
||||
|
||||
* Fix failure to set TCP_NODELAY on Windows
|
||||
* AppleTLS: Support credentials via KeyChain fingerprints
|
||||
|
||||
On Windows setting TCP_NODELAY after non-blocking connect fails at
|
||||
least on Windows 7.
|
||||
Contributed by Nils Maier
|
||||
|
||||
* Fix invalid iterator handling when deleting RequestGroup
|
||||
* AppleTLS: Implement AppleTLS and Apple Message Digest
|
||||
|
||||
|
||||
Contributed by Nils Maier
|
||||
|
||||
aria2 1.16.2
|
||||
============
|
||||
* Use info level log for system trusted ca imports failure
|
||||
|
||||
Release Note
|
||||
------------
|
||||
This is because on some platforms (gnutls on cygwin for example),
|
||||
library always fails for this function and getting ERROR every time
|
||||
aria2c invoked is too hard.
|
||||
|
||||
This release fixes the bug which causes long running BitTorrent
|
||||
download to stall. The several new options have been added.
|
||||
* Don't add Windows native DLLs for Cygwin build
|
||||
|
||||
Changes
|
||||
-------
|
||||
* Remove deprecated options: --enable-direct-io and --metalink-servers
|
||||
|
||||
* Check SSL_OP_NO_COMPRESSION is available before using it
|
||||
* Deprecate --enable-async-dns6
|
||||
|
||||
* Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY
|
||||
The IPv6 asynchronous name resolver is enabled if the host has at
|
||||
least one interface with IPv6 address configured (the loopback
|
||||
address will not be counted), which is roughly the same behaviour of
|
||||
the standard getaddrinfo(3). To disable IPv6 asynchronous name
|
||||
resolver, use --disable-ipv6.
|
||||
|
||||
In InitiatorMSEHandshakeCommand, when aborting connection, we must
|
||||
return peer to the PeerStorage. But it is not done if sequence_ is
|
||||
INITIATOR_SEND_KEY. This causes stale Peer objects whose usedBy()
|
||||
returns true eventually occupies peer list and aria2 cannot make any
|
||||
connections.
|
||||
* Fix uninitialized UDPTrackerClient::numWatchers_
|
||||
|
||||
* Accept k and m as well as K and M in util::getRealSize()
|
||||
* Implement simple Happy Eyeballs for HTTP/FTP downloads
|
||||
|
||||
* mingw32: Make NTFS sparse file on --file-allocation=trunc
|
||||
* Parallel A and AAAA record lookups with c-ares
|
||||
|
||||
* Added --save-session-interval option
|
||||
|
||||
--save-session-interval option saves error/unfinished downloads to a
|
||||
file specified by --save-session option every SEC seconds. If 0 is
|
||||
given, file will be saved only when aria2 exits.
|
||||
|
||||
* Use request URI as referer if --referer="*" is given
|
||||
|
||||
* Log warn if unknown option is found in config file or -i file
|
||||
|
||||
* Added --console-log-level option
|
||||
|
||||
--console-log-level option sets log level to output to console.
|
||||
|
||||
|
||||
|
||||
aria2 1.16.1
|
||||
============
|
||||
|
||||
Release Note
|
||||
------------
|
||||
|
||||
This release adds the ability to persist GID across sessions. The GID
|
||||
will be saved with --save-session. There are several restrictions how
|
||||
GID is persisted. See the manual for details. For this change, now GID
|
||||
is 64 bits binary data and represented by 16 characters hex string in
|
||||
RPC query. The disk cache feature was added, which may reduce disk
|
||||
activity. The console readout was redesigned. The warning displayed
|
||||
when --file-allocation=falloc is used on MinGW32 build was removed as
|
||||
a bug.
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
* mingw32: Re-open files with read-only mode enabled on seeding
|
||||
|
||||
On Mingw32 build, if aria2 opens file with GENERIC_WRITE access
|
||||
right, some programs cannot open the file aria2 is seeding. To avoid
|
||||
this situation, re-open files with read-only enabled when seeding is
|
||||
about to begin.
|
||||
|
||||
* Save gid option with --save-session option
|
||||
|
||||
* Added --gid option
|
||||
|
||||
This option sets GID manually. aria2 identifies each download by the
|
||||
ID called GID. The GID must be hex string of 16 characters, thus
|
||||
[0-9a-zA-Z] are allowed and leading zeros must not be stripped. The
|
||||
GID all 0 is reserved and must not be used. The GID must be unique,
|
||||
otherwise error is reported and the download is not added. This
|
||||
option is useful when restoring the sessions saved using
|
||||
--save-session option. If this option is not used, new GID is
|
||||
generated by aria2.
|
||||
|
||||
* Use 64 bits random bytes as GID
|
||||
|
||||
This change replaces the current 64 bit sequential GID with 64 bits
|
||||
random bytes GID in an attempt to support persistent
|
||||
GID. Internally, the GID is stored as uint64_t. For human
|
||||
representation and RPC interface, GID is represented as 16 bytes hex
|
||||
string. For console readout, 16 bytes are too long, so it is
|
||||
abbreviated to first 6 bytes. When querying GID in RPC calls, user
|
||||
can speicfy the prefix of GID as long as the prefix is shared by
|
||||
more than 1 GID entries.
|
||||
|
||||
* Fixed BitfieldMan::getOffsetCompletedLength overflow on 32-bit systems
|
||||
|
||||
* mingw32: Use HANDLE only for MinGW32 build
|
||||
|
||||
* Changed console readout, making it more compact
|
||||
|
||||
"SIZE:" is removed because it is obvious. SEEDING, SEED, SPD and UP
|
||||
are now replaced with SEED, SD, DL and UL respectively.
|
||||
|
||||
* Compact readout when more than 1 simultaneous downloads are going on
|
||||
|
||||
If more than 1 simultaneous downloads are going on, use more compact
|
||||
format in readout. Currently, at most 5 download stats are
|
||||
displayed.
|
||||
|
||||
util::abbrevSize() is rewritten to support "Gi" unit and provides
|
||||
more compact abbreviation.
|
||||
|
||||
* Console color output
|
||||
|
||||
Log level and download result string is now colored.
|
||||
|
||||
* Logger: Simplified console output and change level format in log
|
||||
|
||||
The date and time are now removed from console output. The log
|
||||
level is now formatted as "[LEVEL]".
|
||||
|
||||
* Start to find faster host before the number of missing segments becomes 1
|
||||
|
||||
The old implementation starts to find faster host when the number of
|
||||
missing segment becomes 1. Because of --min-split-size option,
|
||||
before the number of missing segment becomes 1, the number of
|
||||
connection becomes 1 and it can be slow. In this case, we have to
|
||||
wait until the last segment is reached. The new implementation
|
||||
starts to find faster host when the remaining length is less than
|
||||
--min-split-size * 2, to mitigate the problem stated above.
|
||||
|
||||
* Removed warning when --file-allocation=falloc is used in MinGW32 build
|
||||
|
||||
The warning was just a mistake. SetFilePointerEx + SetEndOfFile
|
||||
actually allocate disk space.
|
||||
|
||||
* Write data in 4K aligned offset in write with disk cache enabled
|
||||
|
||||
This greatly reduces disk activity especially on Win + NTFS. Not so
|
||||
much difference on Linux.
|
||||
|
||||
* mingw32: Removed FSCTL_SET_SPARSE set
|
||||
|
||||
* Added --disk-cache option
|
||||
|
||||
This option enables disk cache. If SIZE is 0, the disk cache is
|
||||
disabled. This feature caches the downloaded data in memory, which
|
||||
grows to at most SIZE bytes. The cache storage is created for aria2
|
||||
instance and shared by all downloads. The one advantage of the disk
|
||||
cache is reduce the disk seek time because the data is written in
|
||||
larger unit and it is reordered by the offset of the file. If the
|
||||
underlying file is heavily fragmented it is not the case.
|
||||
|
||||
|
||||
|
||||
aria2 1.16.0
|
||||
============
|
||||
|
||||
Release Note
|
||||
------------
|
||||
|
||||
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
|
||||
-------
|
||||
|
||||
* mingw32: Open file using _wsopen and added --enable-mmap support
|
||||
|
||||
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 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.
|
||||
|
||||
* Removed PO files and generated aria2.pot from repository
|
||||
|
||||
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.
|
||||
|
||||
* Set F_GLOBAL_NOCACHE for Mac OS X
|
||||
|
||||
* Enabled TCP_NODELAY
|
||||
|
||||
* Don't use AC_FUNC_MMAP
|
||||
|
||||
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.
|
||||
|
||||
* Added --force-save option.
|
||||
|
||||
--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.
|
||||
|
||||
* 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.
|
||||
|
||||
* Made --http-no-cache false by default
|
||||
|
||||
* Fixed memory leak in AsyncNameResolver
|
||||
|
||||
* Fixed resource leak in XmlParser and GenericParser
|
||||
|
||||
* 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.
|
||||
|
||||
* Perform SSL/TLS handshake after checking whether connection is established
|
||||
|
||||
* Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used
|
||||
|
||||
* RPC over SSL/TLS transport
|
||||
|
||||
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.
|
||||
|
||||
* aria2rpc: Added appendUri command
|
||||
|
||||
This command calls aria2.changeUri(GID, fileIndex, [], [URI,...])
|
||||
internally.
|
||||
|
||||
* Don't send Proxy-Connection header field
|
||||
|
||||
* Don't set SNI hostname if it does not include "." for GNUTLS
|
||||
|
||||
* Disable SSL/TLS compression with OpenSSL
|
||||
|
||||
* Pause download even if download is completed
|
||||
|
||||
This allows to pause and unpause BitTorrent seed.
|
||||
|
||||
* Use execlp() instead of execl()
|
||||
But we don't wait for AAAA query response if A query response has
|
||||
been received. If we got IPv4 lookup response, we don't wait for
|
||||
IPv6 lookup response. This is because DNS server may drop AAAA query
|
||||
and we have to wait for the long time before timeout. We don't do
|
||||
the inverse, because, based on todays deployment of DNS server,
|
||||
almost all of them can respond A query just fine.
|
||||
|
Loading…
Reference in New Issue
Block a user