aria2 1.10.1 ============ Release Note ------------ This release adds IPv6 support for FTP, BitTorrent and BitTorrent DHT. For FTP, EPSV and EPRT command support was added. Enabling IPv6 DHT requires several options, so please check out the usage example in man page or wiki usage example page. By default, the asynchronous DNS resolver does not handle IPv6 address. To work with IPv6 address, use --enable-async-dns6 option. aria2 now listens on both IPv4 and IPv6 socket for BitTorrent, its DHT and XML-RPC. aria2 uses same port for both IPv4 and IPv6. The ability to add/remove BitTorrent tracker announce URI was added. The link error for FallocFileAllocationIterator was fixed. Please note that since 1.10.0 release, aria2 uses 1 connection per host by default and has 20MiB segment size restriction. So whatever value you specify using -s option, it uses 1 connection per host. To make it behave like 1.9.x, use --max-connection-per-server=4 --min-split-size=1M. If you specify multiple hosts, aria2 will use all of them and open multiple connections. Changes ------- * Enter end game mode as soon as all pieces are assigned to peers to avoid substantial slow down at the very last stage of download. * Set max outstanding request size of BitTorrent download to 100. Set stepping to 6. * Added --bt-tracker and --bt-exclude-tracker option. In --bt-tracker option, you can specify comma separated list of additional BitTorrent tracker's announce URI. These URIs are not affected by --bt-exclude-tracker option because they are added after URIs in --bt-exclude-tracker option are removed. In --bt-exclude-tracker option, you can specify comma separated list of BitTorrent tracker's announce URI to remove. You can use special value '*' which matches all URIs, thus removes all announce URIs. When specifying '*' in shell command-line, don't forget to escape or quote it. Added bt-tracker and bt-exclude-tracker to -i list option. * Listen both IPv4 and IPv6 for BitTorrent protocol. * Listen both IPv4 and IPv6 for xml-rpc request. * Added IPv6 DHT. Added --dht-entry-porint6, --dht-file-path6, --dht-listen-addr6 and --enable-dht6 option. IPv6 DHT is disabled by default. To use IPv6 DHT, you need to use --enable-dht6 and specify a global unicast address to --dht-listen-addr6. IPv6 DHT is highly experimental. * Added support for peers6 key in tracker response. Added added6, added6.f and dropped6 in ut_pex. * Add only gracefully disconnected peer to ut_pex dropped list. Add incoming dropped list to PeerStorage. * Don't use pre-calculate hash value when end-game mode. Throw exception if bad piece is received. * Added bittorrent::packcompact() which replaces bittorrent::createcompact() and supports IPv6 addresses. Rewritten bittorrent::unpackcompact() and bittorrent::extractPeer() to support IPv6 addresses. Fixed added.f flags in ut_pex. * Added --enable-async-dns6 option. This option enables IPv6 name resolution in asynchronous DNS resolver. This option will be ignored when --async-dns=false. * Use hostname of original URI when counting hostname in inFlightRequest. * Fixed the bug that AdaptiveFileAllocationIterator::getCurrentLength() does not return updated allocated bytes. * Added FTP EPSV and EPRT command support. aria2 issues these commands when address family of local socket is AF_INET6. * Rewritten check for fallocate using AC_COMPILE_IFELSE. * Fixed the bug that HAVE_SOME_FALLOCATE gets undefined if fallocate is not available even if posix_fallocate is available. This causes FallocFileAllocationIterator.cc is out of compile targets and linker error. aria2 1.10.0 ============ Release Note ------------ 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 ------- * 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.