123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- aria2 1.16.3
- ============
- Release Note
- ------------
- This release fixes the bug which causes random crash. It also fixes
- socket option setting failure on Windows platform.
- Changes
- -------
- * Fix failure to set TCP_NODELAY on Windows
- On Windows setting TCP_NODELAY after non-blocking connect fails at
- least on Windows 7.
- * Fix invalid iterator handling when deleting RequestGroup
- aria2 1.16.2
- ============
- Release Note
- ------------
- This release fixes the bug which causes long running BitTorrent
- download to stall. The several new options have been added.
- Changes
- -------
- * Check SSL_OP_NO_COMPRESSION is available before using it
- * Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY
- 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.
- * Accept k and m as well as K and M in util::getRealSize()
- * mingw32: Make NTFS sparse file on --file-allocation=trunc
- * 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()
|