From af99aa31d9d19d8f779c9ad29378d05fb84c7660 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 18 Jul 2010 15:35:30 +0000 Subject: [PATCH] Updated for 1.10.0 release --- NEWS | 408 ++++++++++------------------------------------------------- 1 file changed, 67 insertions(+), 341 deletions(-) diff --git a/NEWS b/NEWS index 9f4ac2fa..74dd7767 100644 --- a/NEWS +++ b/NEWS @@ -1,349 +1,75 @@ -aria2 1.9.5 -=========== +aria2 1.10.0 +============ Release Note ------------ -This release fixes the bug that causes corrupted file. It also fixes -assertion error in DefaultPeerStorage class. Now aria2 doesn't reset -referer to "" on redirect. log and log-level option can be used -in aria2.changeGlobalOption XML-RPC method. This means you can -dynamically start or stop logging and change log file and log level. +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 ------- - * Don't set previousUri_ to "" on redirect. - - * Fixed Peer::updateSeeder() to reflect current bitfield. - - * Made log and log-level option modifiable using - aria2.changeGlobalOption. This means you can dynamically start or - stop logging and change log file and log level. - - * Fixed that bug that when aria2 is stopped before whole hash - check(not piece hash check) is done, aria2 reports its file is - downloaded successfully. It should report the download is - in-progress and next invocation of aria2 should check hash. - - * Fixed the bug that corrups file if segment returned from - SegmetnMan::getCleanSegmentIfOwnerIsIdle() has writtenLength > 0. - - * Fixed assertion error if updateTransferStatFor is called with peer - X before calculateStat() after peer X is added. - - - -aria2 1.9.4 -=========== - -Release Note ------------- - -This release fixes the bug that connection reuse on FTP does not work -if FTP server changes root directory based on account. It also fixes -the bug that reading Metalink document from pipe (-M- option) does not -work when aria2 is built with expat or old libxml2(2.7.6 or -earlier). Now aria2 does not emit error if given Metalink document is -empty(no file element). The response of aria2.tellStopped XML-RPC -method now has more information: totalLength, completedLength, -uploadLength, bitfield and so on. - -Changes -------- - - * Updated Italian translation. Added Korean translation. Thanks to - all translators. - - * Fixed the bug that reading Metalink from pipe fails on older - libxml2. It only accepts "-" as a special keyword to read stdin. - - * Added log message when cookies are loaded. Added filename to log - message when serializing session. - - * Treat SIGHUP and SIGTERM signal as emergency shutdown because they - are usually issued by system or other process. - - * Don't throw exception when Metalink document is empty(no file - element). It is a valid Metalink document anyway. - - * Fixed the bug that feeding Metalink XML via pipe (-M- option) does - not work when aria2 is built with expat. Fixed the bug that when - Metalink XML is fed via pipe and --save-session is used, entry - "/dev/stdin" is saved in session file. - - * Added totalLength, completedLength, uploadLength, bitfield, - downloadSpeed, uploadSpeed, infoHash, numSeeders, pieceLength, - numPieces, connections and dir to the response of aria2.tellStopped - XML-RPC method. aria2.tellWaiting now always returns numSeeders - for BitTorrent download. - - * Fixed the bug that connection pooling does not take into account - proxy. This means that when connection A via proxy X is pooled, it - will be wrongly reused in the download using proxy Y. - - * Fixed the bug that FTP download may fail when control connection is - reused. This happens because FTP server can offer different root - directory for different account. If pooled connections has - different root directory, then download will fail. - - - -aria2 1.9.3 -=========== - -Release Note ------------- - -This release fixes the bug that aria2 cuts filename after ';' if -filename in Content-Disposition header includes ';'. It also fixes -the bug that name attribute of file element in Metalink file is not -properly sanitized. - -Changes -------- - - * Fixed the bug that name attribute of file element in Metalink file - is not properly sanitized. - - * Fixed the bug that if filename in Content-Disposition header - includes ';', aria2 cuts filename after ';'. - - - -aria2 1.9.2 -=========== - -Release Note ------------- - -This release adds kqueue, port_associate/port_getn and poll() support -for socket event notification to eliminate 1024 file descriptor -limitation of select() call. The bug that aria2.unpause and -aria2.unpauseAll XML-RPC method fail when -s1 is given in command-line -argument was fixed. - -Changes -------- - - * Print warning when trying to add file descriptor >= FD_SET or < 0 - to fd_set for other than MinGW32 build. For MinGW32 build, print - warning when trying to add file descriptor to fd_set when it - already contains FD_SET file descriptors. - - * Defined FD_SETSIZE 1024 for MinGW32. - - * Added missing timespec.h to SRCS - - * Fixed the bug that aria2.unpause fails with -s1. - - * Supported poll, kqueue, port_associate/port_getn for socket event - notification - - - -aria2 1.9.1 -=========== - -Release Note ------------- - -This release adds the ability to save unfinished downloads as text -file. aria2 can read the file with -i option on restart. This -release also adds the ability to download file from scratch when aria2 -sees resume is not supported by remote server. This feature is -disabled by default. See --always-resume option for -details. --no-proxy option accepts IPv4 network address with CIDR -block. aria2 now doesn't send "Accept-Encoding: deflate, gzip" by -default. --http-accept-gzip option was added to toggle this behavior. -aria2 now treats lines starting "#" in -i list as comments. Several -XML-RPC methods were added: aria2.pause, aria2.unpause, -aria2.shutdown, and their families. The new exist status code '8' was -added. The bug that makes aria2 hang when system time changes while -aria2 is running was fixed on MinGW32, Mac OS X and the system which -has clock_gettime(). Several other bugs also have been fixed. - -Changes -------- - - * Updated Ukrainian, Russian, Simplified Chinese, German and Greek - translation. Thanks to all translators. - - * Added warning for the system which lacks clock_gettime with - CLOCK_MONOTONIC. - - * Fixed the bug that hash check hangs when aria2.pause is issued - while aria2 is checking piece hashes. Fixed the bug that the - download is paused after file allocation completion even if - aria2.pause is issued during file allocation. - - * Fixed compile error on opensolaris - - * Added aria2.forcePause, aria2.pauseAll, aria2.forcePauseAll and - aria2.unpauseAll XML-RPC method. - - * Use clock_gettime(CLOCK_MONOTONIC, ...) if it is available and - usable to prevent from aria2 from being affected by system time - change. - - * Added aria2.pause and aria2.unpause XML-RPC method. aria2.pause - pauses the download denoted by gid. gid is of type string. The - status of paused download becomes "paused" and the download is - placed on the first position of waiting queue. As long as the - status is "paused", the download is not started. To change status - to "waiting", use aria2.unpause method. This method returns GID of - paused download. aria2.unpause changes the status of the download - denoted by gid from "paused" to "waiting". This makes the download - eligible to restart. gid is of type string. This method returns GID - of unpaused download. - - * Added --save-session=FILE option. This option saves - error/unfinished downloads to FILE on exit. You can pass this - output file to aria2c with -i option on restart. Please note that - downloads added by aria2.addTorrent and aria2.addMetalink XML-RPC - method are not saved. - - * Fixed the bug that FTP data connection is not established via proxy - when --ftp-proxy is defined and --ftp-pasv=true and - --proxy-method=tunnel. - - * Fixed the bug that web-seed URI is not percent-encoded. - - * Added aria2.shutdown and aria2.forceShutdown XML-RPC method. These - methods, as their name imply, shutdown aria2. These methods are - useful for Windows because it lacks signal mechanism. - - * Don't send "Accept-Encoding: default, gzip" by default. This is - because some servers respond with "Content-Encoding: gzip" for a - file which itself is gzipped file and aria2 inflates them. This is - a problem if user doesn't want to inflate the file. Apparently this - is server configuration error, but we cannot do anything about - this. So we turned this off. Added --http-accept-gzip option. If - true is given to this option, aria2 sends "Accept-Encoding: - deflate, gzip" request header and inflates response if remote - server responds with "Content-Encoding: gzip" or "Content-Encoding: - deflate". We removed extension "tgz" hack in order not to inflate - files with tgz extensions. - - * Made aria2 not send - "application/metalink4+xml,application/metalink+xml" in Accept - header for web-seeding URIs and tracker request. - - * Added --dht-message-timeout option. - - * Added --bt-tracker-connect-timeout and --bt-tracker-timeout - option. - - * Documented that specifying --seed-time=0 disables seeding after - download completed. - - * Drop connection if same Peer ID has been already seen. - - * Fixed the bug that waiting download unintentionally starts when - URIs are added to it using aria2.changeUri XML-RPC method. - - * Fixed compile error with g++-4.4 on FreeBSD. - - * Fixed the bug that URIs added using aria2.changeUri XML-RPC method - are not used immediately if there is no URI remaining before - calling aria2.changeUri and the number of connection is less than - the value in -s(or -C for Metalink downloads). - - * Added --always-resume and --max-resume-failure-tries option. If - --always-resume=false is given, when all given URIs do not - support resume or aria2 encounters N URIs which does not support - resume (N is the value specified using --max-resume-failure-tries - option), aria2 downloads file from scratch. The default behavior is - --always-resume=true, which means if all URIs do not support - resume, download fails. I think this is OK because user normally - doesn't like to see that partially downloaded file is - overwritten(this is particularly true if file size is big). This - option is useful when aria2 is used as a download backend and - graceful falling back to overwritten behavior is preferable. Added - exit status value 8, which means download failed because server did - not support resume. - - * Added --remove-control-file option. This option removes control - file(*.aria2 file) before download. Using with - --allow-overwrite=true, download always starts from scratch. This - will be useful for users behind proxy server which disables - resume. For such proxy user, -C1 is also recommended for Metalink - downloads to avoid establishing unnecessary connections. - - * Added v key in DHT message. aria2's DHT version is independent of - the package version and we defined it as 1 at the moment. It is - defined as DHT_VERSION in src/DHTConstants.h. aria2's DHT version - scheme is "A2"+2bytes DHT version number in network byte order. - - * Fixed the bug that value of numSeeders in aria2.tellStatus XML-RPC - method response is integer, while it should be string. The man - page says it is string. When peer's port is not listening port, - set '0' to port in aria2.getPeers response. - - * Lines starting "#" in -i list are treated as comments. - - * Accept IPv4 network address with CIDR block in --no-proxy option - and no_proxy environment variable. Current implementation does not - resolve hostname in URI to compare network address. So it is only - effecive if URI has numeric IP address. - - - -aria2 1.9.0 -=========== - -Release Note ------------- - -This release adds Metalink4 support and BitTorrent Local Peer -Discovery. aria2.changeUri XML-RPC method was added. It enables you -to add/remove URIs to existing downloads dynamically. The user and -password for proxy server now can be specified in command-line -separately. We refactored the code based on profiler results, so -aria2 now runs more efficiently than ever. Russian and Simplified -Chinese translation were updated. - -Changes -------- - - * Resurrected --http-proxy-user and --http-proxy-passwd option. - Added --https-proxy-user, --https-proxy-passwd, --ftp-proxy-user, - --ftp-proxy-passwd, --all-proxy-user, --all-proxy-passwd option. - - * Updated Russian and Simplified Chinese translation. - - * Added --reuse-uri option. This option has existed quite long, but - been hidden. - - * Fixed the bug that filename is percent encoded where it must be - percent decoded in sendMdtm(). - - * Added getServers XML-RPC method. It returns currently connected - HTTP(S)/FTP server and download speed, etc. - - * Added 'status' key to the response of getUri XML-RPC method. - - * Added changeUri XML-RPC method. This method removes/adds URIs - dynamically. - - * Replaced null or control characters in file path with '_'. For - MinGW32 build, additional characters which is not allowed in - Windows kernel are also replaced. util::detectDirTraversal() now - returns true if given string contains null or control characters. - - * Discard torrent file if path data in it contains directory - traversal directives. Discard metalink:file element in Metalink3 - format if its name attribute contains directory traversal - directives. Ignore name attribute of metalink:signature element in - Metalink3 format if it contains directory traversal directives. - - * Added Metalink4 support. Files with same metaurl are - grouped and downloaded in one RequestGroup. - - * Added --bt-lpd-interface option to specify the interface to use for - Local Peer Discovery. LpdMessageDispatcher object now has its own - socket. LpdMessageReceiver's socket is binded to multicast address - to only receive multicast packets. - - * Added Local Peer Discovery. It is disabled by default. Use - --bt-enable-lpd to enable the function. + * 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.