NEWS 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545
  1. aria2 1.10.9
  2. ============
  3. Release Note
  4. ------------
  5. This release fixes the bug which prevents from making directories on
  6. Windows OS. It also fixes the bug that aria2 wrongly determines peer
  7. as a seeder and drop connection in seed state. Some improvements and
  8. bug fixes in BitTorrent implementation were made.
  9. Please note that since 1.10.0 release, aria2 uses 1 connection per
  10. host by default and has 20MiB segment size restriction. So whatever
  11. value you specify using -s option, it uses 1 connection per host. To
  12. make it behave like 1.9.x, use -x16 -k1M (see
  13. --max-connection-per-server and --min-split-size option in man
  14. page). If you specify multiple hosts, aria2 will use all of them and
  15. open multiple connections.
  16. Changes
  17. -------
  18. * Bump up DHT version number to 3.
  19. * Don't try legacy BitTorrent handshake when first connection attempt
  20. timed out.
  21. * Fixed the bug that making directory fails on Windows OS.
  22. * Don't send announce_peer message with empty token in
  23. DHTPeerLookupTask. Replace old node ID with new node ID when
  24. response message is received in DHTAbstractNodeLookupTask.
  25. * Drop old node from DHT routing table if node ID has changed.
  26. * Drop connection if client and peer are both seeders.
  27. * Fixed the bug that peer is marked as seeder whenever it sends
  28. extension handshake with metadata size.
  29. aria2 1.10.8
  30. ============
  31. Release Note
  32. ------------
  33. This release fixes the compile error which occurs with --disable-nls
  34. configure option. It also fixes the compile error which occurs when
  35. the system does not have fallocate() but has posix_fallocate().
  36. Please note that since 1.10.0 release, aria2 uses 1 connection per
  37. host by default and has 20MiB segment size restriction. So whatever
  38. value you specify using -s option, it uses 1 connection per host. To
  39. make it behave like 1.9.x, use -x16 -k1M (see
  40. --max-connection-per-server and --min-split-size option in man
  41. page). If you specify multiple hosts, aria2 will use all of them and
  42. open multiple connections.
  43. Changes
  44. -------
  45. * Moved #include <gettext.h> inside of #ifdef ENABLE_NLS. If we put
  46. #include <gettext.h> outside of #ifdef ENABLE_NLS and --disable-nls
  47. is used, gettext(msgid) is defined as ((const char *)
  48. (Msgid)). System header includes libintl.h regardless of
  49. --disable-nls. For example, #include <string> will include
  50. libintl.h through include chain. Since libintl.h refers gettext and
  51. it is defined as non-function form, this causes compile error. User
  52. reported gcc-4.2.2 has this problem. But gcc-4.4.5 does not suffer
  53. from this problem.
  54. * Fixed compile error which occurs when system has posix_fallocate()
  55. but does not have fallocate().
  56. * Removed specializations of std::swap(PeerEntry&, PeerEntry&).
  57. Declaring std::swap(PeerEntry&, PeerEntry&) in class declaration
  58. breaks under Mac OS X 10.5. They are also not used. So we simply
  59. removed them.
  60. aria2 1.10.7
  61. ============
  62. Release Note
  63. ------------
  64. This release fixes the bug that causes memory leak when parsing
  65. Metalink document if aria2 is built with expat. It also add several
  66. exit status codes to help identify the cause of error.
  67. --max-connection-per-server option now works with Metalink. aria2 now
  68. passes number of files and file path in addition to gid to command
  69. specified in --on-download-* options. MinGW32 build now encodes
  70. non-ASCII characters in file path using percent-encoding. With this
  71. release, bash_completion file for aria2c is included in the
  72. distribution. See doc/bash_completion directory in the archive.
  73. Please note that since 1.10.0 release, aria2 uses 1 connection per
  74. host by default and has 20MiB segment size restriction. So whatever
  75. value you specify using -s option, it uses 1 connection per host. To
  76. make it behave like 1.9.x, use -x16 -k1M (see
  77. --max-connection-per-server and --min-split-size option in man
  78. page). If you specify multiple hosts, aria2 will use all of them and
  79. open multiple connections.
  80. Changes
  81. -------
  82. * Pass the number of requested files and file path to the command
  83. specified --{bt-}on-download-* option.
  84. * Throw exception when unrecognized URI, bad Metalink or bad .torrent
  85. file are given in command-line and exits with status non-zero.
  86. * Added aria2c bash_completion.
  87. * Added more error code values.
  88. * For MINGW32 build, percent-encode non-ASCII characters in filename.
  89. * Made --continue, --daemon, --no-conf, --no-netrc, --show-files,
  90. --allow-overwrite, --allow-piece-length-change,
  91. --realtime-chunk-checksum and --bt-require-crypto option take
  92. optional argument.
  93. * Enter 'end game' mode from the beginning when getting torrent
  94. metadata for quick data retrieval.
  95. * Use --max-connection-per-server option value for Metalink as well
  96. * Fixed memory leak with expat.
  97. * Added sha-224, sha-384, sha-512 hash function support.
  98. aria2 1.10.6
  99. ============
  100. Release Note
  101. ------------
  102. This release fixes the bug that downloading files larger than 4GB
  103. fails on 32 bit systems. It also fixes the bug that dht.dat file is
  104. not saved. The improper use of return value of vsnprintf was fixed,
  105. which caused segmentation fault when formatting strings more than 1024
  106. characters long.
  107. Please note that since 1.10.0 release, aria2 uses 1 connection per
  108. host by default and has 20MiB segment size restriction. So whatever
  109. value you specify using -s option, it uses 1 connection per host. To
  110. make it behave like 1.9.x, use -x16 -k1M (see
  111. --max-connection-per-server and --min-split-size option in man
  112. page). If you specify multiple hosts, aria2 will use all of them and
  113. open multiple connections.
  114. Changes
  115. -------
  116. * Fixed the bug that downloading > 4GB file fails on 32bit systems.
  117. * Fixed improper use of vsnprintf in StringFormat which is mainly
  118. used for formatting strings of exception message. The actual bug
  119. reported by the user was that aria2 emitted segmentation fault
  120. error when very long URI(few thousands characters long) was given.
  121. * Fixed the bug that dht.dat file could not be saved. This is because
  122. a directory denoting temporary file path is wrongly created and
  123. thus aria2 fails to open the file as regular file.
  124. aria2 1.10.5
  125. ============
  126. Release Note
  127. ------------
  128. This release fixes the bug that file allocation is enabled in HTTP
  129. even if --file-allocation=none is specified.
  130. Please note that since 1.10.0 release, aria2 uses 1 connection per
  131. host by default and has 20MiB segment size restriction. So whatever
  132. value you specify using -s option, it uses 1 connection per host. To
  133. make it behave like 1.9.x, use -x16 -k1M (see
  134. --max-connection-per-server and --min-split-size option in man
  135. page). If you specify multiple hosts, aria2 will use all of them and
  136. open multiple connections.
  137. Changes
  138. -------
  139. * Don't reuse socket which is readable because we assume that if
  140. socket is readable it means peer shutdowns connection and the
  141. socket will receive EOF. Added default timeout value to
  142. DownloadEngine::poolSocket().
  143. * Fixed the bug that file allocation is enabled in HTTP even if
  144. --file-allocation=none is specified.
  145. aria2 1.10.4
  146. ============
  147. Release Note
  148. ------------
  149. This release fixes the bug that aria2 hangs when FTP server does not
  150. send '226 Transfer Complete' message and the bug that the time used in
  151. file allocation is taken into account when calculating download speed.
  152. Non UTF-8 filenames are now percent-encoded. The comments and name in
  153. .torrent file in XML-RPC response are also percent-encoded if they are
  154. not UTF-8. Compile error on OpenBSD4.7(i386) was fixed. A warning
  155. message when CA certificates are not imported is not printed in
  156. console. It is shown when certificate verification error is actually
  157. occurred.
  158. Please note that since 1.10.0 release, aria2 uses 1 connection per
  159. host by default and has 20MiB segment size restriction. So whatever
  160. value you specify using -s option, it uses 1 connection per host. To
  161. make it behave like 1.9.x, use -x16 -k1M (see
  162. --max-connection-per-server and --min-split-size option in man
  163. page). If you specify multiple hosts, aria2 will use all of them and
  164. open multiple connections.
  165. Changes
  166. -------
  167. * Updated Russian, Simplified Chinese and French translation. Thanks
  168. to all translators.
  169. * Use RFC1123 date format for creation date of .torrent file printed
  170. using -S.
  171. * Rewritten Cookie class and Cookie parser based on
  172. http://tools.ietf.org/html/draft-ietf-httpstate-cookie-15
  173. * Use inet_ntoa if inet_ntop is not available. Since inet_ntoa does
  174. not handle IPv6 address, IPv6 support is limited in this
  175. case. Fixed unit test error under mingw32.
  176. * Don't show warning message in console when CA certificates are not
  177. imported. --ca-certificate and --check-certificate option were
  178. mentioned in the error message displayed when certificate
  179. verification failed.
  180. * Print message when performing slow file allocation at first time.
  181. * Fixed compile error on OpenBSD4.7(i386).
  182. * Execute 5 DHT tasks concurrently in each task queue.
  183. * Fixed the bug that FtpFinishDownloadCommand does not handle
  184. timeout. This means it waits for the remote server to send "226
  185. Transfer Complete" message *without* its own timeout until the
  186. remote server shutdowns connection(we can detect EOF in this case).
  187. * Rewritten util::escapePath(). Now it does not replace bad chars
  188. with '_':it performs percent-encoding against them.
  189. util::fixTaintedBasename() now replaces "/" with "%2F". Added 0x7f
  190. as bad chars in util::detectDirTraversal().
  191. * Non-UTF8 filenames are now percent-encoded. For example, filename
  192. for http://example.org/%90%A2%8AE will be %90%A2%8AE because it is
  193. Shift_JIS. The comments and name in .torrent file in XML-RPC
  194. response are percent-encoded if they are not UTF-8.
  195. * Reset download start time of PeerStat because it is started before
  196. file allocation begins. Without reset, we have incorrect download
  197. time and aria2 wrongly determines that download speed is too low if
  198. --lowest-speed-limit is used.
  199. * Added keys parameter to aria2.tellStatus, aria2.tellActive,
  200. aria2.tellWaiting and aria2.tellStopped XML-RPC method. 'keys' is
  201. array of string. If it is specified, the response contains only
  202. keys in 'keys' array. If 'keys' is empty or not specified, the
  203. response contains all keys. This is useful when you just want
  204. specific keys and avoid unnecessary transfers. For example,
  205. aria2.tellStatus("1", ["gid", "status"]) returns 'gid' and
  206. 'status' key.
  207. aria2 1.10.3
  208. ============
  209. Release Note
  210. ------------
  211. This release adds short option -x for --max-connection-per-server
  212. option and -k for --min-split-size option. It also adds
  213. --max-download-result=NUM option. This option sets maximum number of
  214. download result kept in memory and the default value is 1000.
  215. --max-connection-per-server now accepts up to 16. '@' character is
  216. now allowed in username embedded in URI. This release fixes the bug
  217. that aria2 reports error and exits with non-zero status when file is
  218. already downloaded and checksum is available.
  219. Please note that since 1.10.0 release, aria2 uses 1 connection per
  220. host by default and has 20MiB segment size restriction. So whatever
  221. value you specify using -s option, it uses 1 connection per host. To
  222. make it behave like 1.9.x, use -x16 -k1M (see
  223. --max-connection-per-server and --min-split-size option in man
  224. page). If you specify multiple hosts, aria2 will use all of them and
  225. open multiple connections.
  226. Changes
  227. -------
  228. * Replaced V_TRUE with A2_V_TRUE. Replaced V_FALSE with A2_V_FALSE.
  229. * Added short option -k for --min-split-size option and -x for
  230. --max-connection-per-server option. Raised maximum value of
  231. --max-connection-per-server up to 16.
  232. * Added --max-download-result=NUM option. This option sets maximum
  233. number of download result kept in memory. The download results are
  234. completed/error/ removed downloads. The download results are stored
  235. in FIFO queue and it can store at most NUM download results. When
  236. queue is full and new download result is created, oldest download
  237. result is removed from the front of the queue and new one is pushed
  238. to the back. Setting big number in this option may result high
  239. memory consumption after thousands of downloads. Specifying 0 means
  240. no download result is kept. Default value is 1000.
  241. * Check hash(hash for entire file, not piece hash) if
  242. --check-integrity option is given and file is downloaded(determined
  243. by file length). If it fails, re-download file.
  244. * Mark cached IP address bad on timeout to allow
  245. aria2 to renew IP address cache.
  246. * Fixed the bug that aria2 reports error and exits with non-zero
  247. status when file is already downloaded.
  248. * Allow '@' in username and password embedded in URI. It should be
  249. percent-encoded but many people use their mail address as an
  250. username and forget about PE.
  251. * Data from remote server in HTTP/FTP download are now written to the
  252. disk(or memory) through StreamFilter. Decoding chunked and gziped
  253. streams are done cascading StreamFilter. Removed inefficient 1byte
  254. read code.
  255. aria2 1.10.2
  256. ============
  257. Release Note
  258. ------------
  259. This release fixes the bug that prevents HTTP redirect from working
  260. when multiple files are downloaded from same host at the same time.
  261. For netrc, aria2 now performs domain match if machine name defined in
  262. .netrc starts with ".".
  263. Please note that since 1.10.0 release, aria2 uses 1 connection per
  264. host by default and has 20MiB segment size restriction. So whatever
  265. value you specify using -s option, it uses 1 connection per host. To
  266. make it behave like 1.9.x, use --max-connection-per-server=4
  267. --min-split-size=1M. If you specify multiple hosts, aria2 will use
  268. all of them and open multiple connections.
  269. Changes
  270. -------
  271. * In .netrc file, if machine name starts ".", aria2 performs domain
  272. match instead of exact match.
  273. * Fixed the bug which prevents HTTP redirection from working when
  274. downloading multiple files from same host at the same time.
  275. aria2 1.10.1
  276. ============
  277. Release Note
  278. ------------
  279. This release adds IPv6 support for FTP, BitTorrent and BitTorrent DHT.
  280. For FTP, EPSV and EPRT command support was added. Enabling IPv6 DHT
  281. requires several options, so please check out the usage example in man
  282. page or wiki usage example page. By default, the asynchronous DNS
  283. resolver does not handle IPv6 address. To work with IPv6 address, use
  284. --enable-async-dns6 option. aria2 now listens on both IPv4 and IPv6
  285. socket for BitTorrent, its DHT and XML-RPC. aria2 uses same port for
  286. both IPv4 and IPv6. The ability to add/remove BitTorrent tracker
  287. announce URI was added. The link error for
  288. FallocFileAllocationIterator was fixed.
  289. Please note that since 1.10.0 release, aria2 uses 1 connection per
  290. host by default and has 20MiB segment size restriction. So whatever
  291. value you specify using -s option, it uses 1 connection per host. To
  292. make it behave like 1.9.x, use --max-connection-per-server=4
  293. --min-split-size=1M. If you specify multiple hosts, aria2 will use
  294. all of them and open multiple connections.
  295. Changes
  296. -------
  297. * Enter end game mode as soon as all pieces are assigned to peers to
  298. avoid substantial slow down at the very last stage of download.
  299. * Set max outstanding request size of BitTorrent download to 100. Set
  300. stepping to 6.
  301. * Added --bt-tracker and --bt-exclude-tracker option. In
  302. --bt-tracker option, you can specify comma separated list of
  303. additional BitTorrent tracker's announce URI. These URIs are not
  304. affected by --bt-exclude-tracker option because they are added
  305. after URIs in --bt-exclude-tracker option are removed. In
  306. --bt-exclude-tracker option, you can specify comma separated list
  307. of BitTorrent tracker's announce URI to remove. You can use special
  308. value '*' which matches all URIs, thus removes all announce
  309. URIs. When specifying '*' in shell command-line, don't forget to
  310. escape or quote it. Added bt-tracker and bt-exclude-tracker to -i
  311. list option.
  312. * Listen both IPv4 and IPv6 for BitTorrent protocol.
  313. * Listen both IPv4 and IPv6 for xml-rpc request.
  314. * Added IPv6 DHT. Added --dht-entry-porint6, --dht-file-path6,
  315. --dht-listen-addr6 and --enable-dht6 option. IPv6 DHT is disabled
  316. by default. To use IPv6 DHT, you need to use --enable-dht6 and
  317. specify a global unicast address to --dht-listen-addr6. IPv6 DHT
  318. is highly experimental.
  319. * Added support for peers6 key in tracker response. Added added6,
  320. added6.f and dropped6 in ut_pex.
  321. * Add only gracefully disconnected peer to ut_pex dropped list. Add
  322. incoming dropped list to PeerStorage.
  323. * Don't use pre-calculate hash value when end-game mode. Throw
  324. exception if bad piece is received.
  325. * Added bittorrent::packcompact() which replaces
  326. bittorrent::createcompact() and supports IPv6 addresses. Rewritten
  327. bittorrent::unpackcompact() and bittorrent::extractPeer() to
  328. support IPv6 addresses. Fixed added.f flags in ut_pex.
  329. * Added --enable-async-dns6 option. This option enables IPv6 name
  330. resolution in asynchronous DNS resolver. This option will be
  331. ignored when --async-dns=false.
  332. * Use hostname of original URI when counting hostname in
  333. inFlightRequest.
  334. * Fixed the bug that
  335. AdaptiveFileAllocationIterator::getCurrentLength() does not return
  336. updated allocated bytes.
  337. * Added FTP EPSV and EPRT command support. aria2 issues these
  338. commands when address family of local socket is AF_INET6.
  339. * Rewritten check for fallocate using AC_COMPILE_IFELSE.
  340. * Fixed the bug that HAVE_SOME_FALLOCATE gets undefined if fallocate
  341. is not available even if posix_fallocate is available. This causes
  342. FallocFileAllocationIterator.cc is out of compile targets and
  343. linker error.
  344. aria2 1.10.0
  345. ============
  346. Release Note
  347. ------------
  348. This release adds an option to limit the number of connections to the
  349. same host in each download. aria2 now chooses server which is least
  350. used in aria2c instance. This release also adds Chromium cookie
  351. support and HTTP only conditional download support which is download
  352. file only when the local file is older than remote file. aria2 now
  353. can handle %2F in FTP URI properly. HTTP/1.1 chunked decoder was
  354. fixed. For Linux, aria2 uses fallocate by default if it is usable.
  355. Changes
  356. -------
  357. * Metadata download may take very long time. If URIs are available,
  358. give up metadata download in at most 30 seconds.
  359. * Added --on-bt-download-complete=COMMAND option. For BitTorrent, a
  360. command specified in --on-download-complete is called when download
  361. completes and seeding is over. On the other hand, this option set
  362. the command to be executed when download completes but before
  363. seeding.
  364. * Added --conditional-get option. Download file only when the local
  365. file is older than remote file. This function only works with
  366. HTTP(S) downloads only. It does not work if file size is specified
  367. in Metalink. It also ignores Content-Disposition header. If a
  368. control file exists, this option will be ignored. This function
  369. uses If-Modified-Since header to get only newer file
  370. conditionally. When getting modification time of local file, it
  371. uses user supplied filename(see --out option) or filename part in
  372. URI if --out is not specified.
  373. * FeedbackURISelector now tries to select URI whose host is least
  374. used in aria2 globally.
  375. * Added --min-split-size=SIZE option. aria2 does not split less than
  376. 2*SIZE byte range. For example, let's consider downloading 20MiB
  377. file. If SIZE is 10M, aria2 can split file into 2 range [0-10MiB)
  378. and [10MiB-20MiB) and download it using 2 sources(if --split >= 2,
  379. of course). If SIZE is 15M, since 2*15M > 20MiB, aria2 does not
  380. split file and download it using 1 source.
  381. * Added --max-connection-per-server=NUM option. The default value of
  382. NUM is 1. This option limits the number of connections allowed to
  383. one server for each download. This means when NUM is 2 and 1 URI is
  384. provided, even if you specified -s 5, aria2 establishes 2
  385. connections.
  386. * Set end byte in Range header if start byte > 0 to get more chance
  387. to pool socket.
  388. * Fixed ChunkedDecoder. It does not read trailer and final CRLF.
  389. * Send each CWD component of FTP URI in separate CWD command as
  390. described in RFC1738.
  391. * Fixed the bug that aria2 cannot handle %2F in FTP URI properly. If
  392. directory component starts with %2F which percent-encode of '/',
  393. client should issue CWD to absolute path, but aria2 does not do
  394. that. It just issues relative path and download fails.
  395. * Added Chromium/Google Chrome Cookies file support. Thanks to
  396. gotrunks for original patch.
  397. * When allocating disk space, for Linux system with fallocate()
  398. system call, first check file system supports fallocate. This just
  399. run fallocate with small chunk and see it succeeds or fails. If it
  400. succeeds, use fallocate() to allocate entire file otherwise fall
  401. back to traditional slower method: writing zeros. This behavior is
  402. enabled in --file-allocation=prealloc, so this is enabled by
  403. default for most modern Linux.