aria2 1.20.0 ============ Release Note ------------ This release fixes lots of bugs. See the Changes section below. There are new features in this release. We added "seeder" key in aria2.tellStatus RPC response. We added system.listMethods RPC method to return all RPC method supported. We added --max-mmap-limit option to avoid mmap if total file size is greater than given size. Changes ------- * src/WinConsoleFile.cc: fix colour Set default foreground/background colour correctly Patch from kwkam * configure.ac: fix autoreconf error Use m4_ifdef so we do not have to install optional libraries Patch from kwkam * Don't inherit file descriptor to child process For non-Mingw32 build, set FD_CLOEXEC to file descriptors which live beyond function scope. For Mingw32 build, just pass false to bInheritHandles parameter of CreateProcessW. * Update Russian version documentation Patch from ITriskTI * Add "seeder" key to tellStatus RPC response * WinTLS: Fix hang because of buffered received data WinTLSSession buffers received decrypted data into its own buffer. If read is requested, it copies the data from its buffer. But if requested buffer size is less than decrypted buffer, some of the data is left in the buffer. Previously, we had no facility to check the existence of this pending data. If this data is the last requested data from remote server, we may end up waiting for read event even if we have already data in our buffer, which may cause hang. This commit fixes this issue by introducing function to return the buffered length in TLSSession. SocketCore also provides the same function, which delegates to TLSSession object. * Add --max-mmap-limit option Set the maximum file size to enable mmap (see --enable-mmap option). The file size is determined by the sum of all files contained in one download. For example, if a download contains 5 files, then file size is the total size of those files. If file size is strictly greater than the size specified in this option, mmap will be disabled. * mingw: Use SetFileValidData to make --file-allocation=falloc work * Retry with 504 status code * Increase DHT transaction ID from 2 to 4 bytes to avoid conflict * Update wslay * Add --enable-werror option to configure to enable warning flags * Don't modify user variables (e.g., CFLAGS, LIBS, etc) * Improve error message when loading pkcs12 file failed * Updated dependency and source url's The RaspberryPi Dockerfile had some out-of-date dependency packages and was downloading an outdated aria2 source from Sourceforge, which resulted in a build for version 1.19.0. The new fetch-latest-release-from-GitHub script I've cooked up should always work as long as GitHub doesn't change their API and aria2's platform agnostic releases follow the "{version number}.tar.bz2" naming format. Patch from c3mb0 * Reduce delay in tracker request We eliminated 1 second delay between completion of name resolution for tracker request and time when it is actually issued. We also elimited 1 second delay after last torrent download exists and it is told to DHTInteractionCommand. * Disable IPv6 on non-async NameResolver if configuration wants * Fix mysterious 1 second delay with async DNS * Fix bug that UDP port was incorrectly used in UDP tracker announce request * Refactor HttpRequest This also makes comparison performed when replacing builtin header field with user-defined one case-insensitive. * Send Want-Digest as per RFC 3230 * Try all found address set to bind sockets with --multiple-interface Fixes GH-523 * Replace sourceforge references with aria2.github.io * Add system.listMethods RPC method system.listMethods just returns the available RPC method names. It can be executed without secret token, because it just returns the method names, and does not alter anything. See GH-437 * Support content-range from non-compliant server See GH-509 * Reduce UDP tracker request timeout See GH-507 * Apply --retry-wait when retrying after 404 Previously, --retry-wait was not used when retrying after 404 (--max-file-not-found). The retry was done without delay. Also the maximum retry count (--max-retries) was ignored when retrying with 404. This commit makes --retry-wait apply for retrying with 404 as well. It also combines --max-retries and --max-file-not-found. When retrying with 404, it is counted toward retry count.