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.