NEWS 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. aria2 1.16.3
  2. ============
  3. Release Note
  4. ------------
  5. This release fixes the bug which causes random crash. It also fixes
  6. socket option setting failure on Windows platform.
  7. Changes
  8. -------
  9. * Fix failure to set TCP_NODELAY on Windows
  10. On Windows setting TCP_NODELAY after non-blocking connect fails at
  11. least on Windows 7.
  12. * Fix invalid iterator handling when deleting RequestGroup
  13. aria2 1.16.2
  14. ============
  15. Release Note
  16. ------------
  17. This release fixes the bug which causes long running BitTorrent
  18. download to stall. The several new options have been added.
  19. Changes
  20. -------
  21. * Check SSL_OP_NO_COMPRESSION is available before using it
  22. * Fix bug returnPeer is not called if sequence_ == INITIATOR_SEND_KEY
  23. In InitiatorMSEHandshakeCommand, when aborting connection, we must
  24. return peer to the PeerStorage. But it is not done if sequence_ is
  25. INITIATOR_SEND_KEY. This causes stale Peer objects whose usedBy()
  26. returns true eventually occupies peer list and aria2 cannot make any
  27. connections.
  28. * Accept k and m as well as K and M in util::getRealSize()
  29. * mingw32: Make NTFS sparse file on --file-allocation=trunc
  30. * Added --save-session-interval option
  31. --save-session-interval option saves error/unfinished downloads to a
  32. file specified by --save-session option every SEC seconds. If 0 is
  33. given, file will be saved only when aria2 exits.
  34. * Use request URI as referer if --referer="*" is given
  35. * Log warn if unknown option is found in config file or -i file
  36. * Added --console-log-level option
  37. --console-log-level option sets log level to output to console.
  38. aria2 1.16.1
  39. ============
  40. Release Note
  41. ------------
  42. This release adds the ability to persist GID across sessions. The GID
  43. will be saved with --save-session. There are several restrictions how
  44. GID is persisted. See the manual for details. For this change, now GID
  45. is 64 bits binary data and represented by 16 characters hex string in
  46. RPC query. The disk cache feature was added, which may reduce disk
  47. activity. The console readout was redesigned. The warning displayed
  48. when --file-allocation=falloc is used on MinGW32 build was removed as
  49. a bug.
  50. Changes
  51. -------
  52. * mingw32: Re-open files with read-only mode enabled on seeding
  53. On Mingw32 build, if aria2 opens file with GENERIC_WRITE access
  54. right, some programs cannot open the file aria2 is seeding. To avoid
  55. this situation, re-open files with read-only enabled when seeding is
  56. about to begin.
  57. * Save gid option with --save-session option
  58. * Added --gid option
  59. This option sets GID manually. aria2 identifies each download by the
  60. ID called GID. The GID must be hex string of 16 characters, thus
  61. [0-9a-zA-Z] are allowed and leading zeros must not be stripped. The
  62. GID all 0 is reserved and must not be used. The GID must be unique,
  63. otherwise error is reported and the download is not added. This
  64. option is useful when restoring the sessions saved using
  65. --save-session option. If this option is not used, new GID is
  66. generated by aria2.
  67. * Use 64 bits random bytes as GID
  68. This change replaces the current 64 bit sequential GID with 64 bits
  69. random bytes GID in an attempt to support persistent
  70. GID. Internally, the GID is stored as uint64_t. For human
  71. representation and RPC interface, GID is represented as 16 bytes hex
  72. string. For console readout, 16 bytes are too long, so it is
  73. abbreviated to first 6 bytes. When querying GID in RPC calls, user
  74. can speicfy the prefix of GID as long as the prefix is shared by
  75. more than 1 GID entries.
  76. * Fixed BitfieldMan::getOffsetCompletedLength overflow on 32-bit systems
  77. * mingw32: Use HANDLE only for MinGW32 build
  78. * Changed console readout, making it more compact
  79. "SIZE:" is removed because it is obvious. SEEDING, SEED, SPD and UP
  80. are now replaced with SEED, SD, DL and UL respectively.
  81. * Compact readout when more than 1 simultaneous downloads are going on
  82. If more than 1 simultaneous downloads are going on, use more compact
  83. format in readout. Currently, at most 5 download stats are
  84. displayed.
  85. util::abbrevSize() is rewritten to support "Gi" unit and provides
  86. more compact abbreviation.
  87. * Console color output
  88. Log level and download result string is now colored.
  89. * Logger: Simplified console output and change level format in log
  90. The date and time are now removed from console output. The log
  91. level is now formatted as "[LEVEL]".
  92. * Start to find faster host before the number of missing segments becomes 1
  93. The old implementation starts to find faster host when the number of
  94. missing segment becomes 1. Because of --min-split-size option,
  95. before the number of missing segment becomes 1, the number of
  96. connection becomes 1 and it can be slow. In this case, we have to
  97. wait until the last segment is reached. The new implementation
  98. starts to find faster host when the remaining length is less than
  99. --min-split-size * 2, to mitigate the problem stated above.
  100. * Removed warning when --file-allocation=falloc is used in MinGW32 build
  101. The warning was just a mistake. SetFilePointerEx + SetEndOfFile
  102. actually allocate disk space.
  103. * Write data in 4K aligned offset in write with disk cache enabled
  104. This greatly reduces disk activity especially on Win + NTFS. Not so
  105. much difference on Linux.
  106. * mingw32: Removed FSCTL_SET_SPARSE set
  107. * Added --disk-cache option
  108. This option enables disk cache. If SIZE is 0, the disk cache is
  109. disabled. This feature caches the downloaded data in memory, which
  110. grows to at most SIZE bytes. The cache storage is created for aria2
  111. instance and shared by all downloads. The one advantage of the disk
  112. cache is reduce the disk seek time because the data is written in
  113. larger unit and it is reordered by the offset of the file. If the
  114. underlying file is heavily fragmented it is not the case.
  115. aria2 1.16.0
  116. ============
  117. Release Note
  118. ------------
  119. This release adds SSL/TLS encryption support in RPC transport. The new
  120. RPC method aria2.appendUri is added, which is a wrapper to
  121. aria2.changeUri. The Content-Disposition parser is now RFC 6266
  122. conformant. The resource leak in XmlParser, JSON and Bencode parser
  123. was fixed. The uploaded data size calculation bug was fixed. For
  124. MinGW32 build, files are now opened with read/write shared mode.
  125. Changes
  126. -------
  127. * mingw32: Open file using _wsopen and added --enable-mmap support
  128. I tried CreateFile but the subsequent ReadFile fails with Access
  129. Denied if sparse file is read on NTFS. I mostly reverted previous
  130. changes and use _wsopen with read/write share enabled instead of
  131. CreateFile.
  132. This change also includes --enable-mmap support for MinGW32
  133. build. Memory mapped file may be useful for 64-bits OS and lots of
  134. RAM. Currently, FlushViewOfFile is not called during the download,
  135. so it is slightly vulnerable against sudden power loss. I found lots
  136. of read when resuming download due to page fault. So for now it is
  137. useful for the initial download. I recommend not to use
  138. --file-allocation=prealloc with --enable-mmap for MinGW32, because
  139. it triggers page faults even in the initial download. Anyway, the
  140. option is experimental.
  141. * Removed PO files and generated aria2.pot from repository
  142. Currently, message translation is done at launchpad. All PO files
  143. can be exported from there. The merge process from launchpad is done
  144. when new release. First download export file from launchpad And use
  145. import-po script to import PO files into po directory.
  146. * Set F_GLOBAL_NOCACHE for Mac OS X
  147. * Enabled TCP_NODELAY
  148. * Don't use AC_FUNC_MMAP
  149. Don't use AC_FUNC_MMAP becaue it fails on some platforms (e.g.,
  150. OpenWRT) which have mmap and it works in the way we use in aria2.
  151. Instead use mmap in AC_CHECK_FUNCS list.
  152. * Added --force-save option.
  153. --force-save option saves download with --save-session option even
  154. if the download is completed or removed. This may be useful to save
  155. BitTorrent seeding which is recognized as completed state. The
  156. default value is false.
  157. * Get the correct uploaded data size
  158. Subtract msgHdrLen_ from writtenLength to get the uploaded data
  159. size. Without this correction, the seeder assumes it has uploaded
  160. more data than it actually has.
  161. * Made --http-no-cache false by default
  162. * Fixed memory leak in AsyncNameResolver
  163. * Fixed resource leak in XmlParser and GenericParser
  164. * Reset iostream format state
  165. * gnutls: Added more status checking when verifying peer
  166. * Content-Disposition parser conforming to RFC 6266.
  167. RFC 2231 Continuation is not supported.
  168. * Reworked download/upload statistics calculation
  169. The old implementation calculates download/upload statistics for a
  170. RequestGroup by summing up all PeerStat objects. For global
  171. statistics, those are summed together. This clearly incurs runtime
  172. penalty and we introduced some kind of caching which updates
  173. statistics every 250ms but it did not work right.
  174. This change removes all these aggregation code, and instead makes
  175. RequestGroup and RequestGroupMan objects hold NetStat object and
  176. download/upload bytes are directly calculated by thier own NetStat.
  177. This is far more simplar than the old way and less runtime penalty
  178. and brings more accuracy.
  179. * Added --rpc-save-upload-metadata option
  180. If true is given, which is default, save the uploaded torrent or
  181. metalink metadata in the directory specified by --dir option. The
  182. filename consists of SHA1-hash hex string of metadata plus
  183. extension. For torrent, the extension is '.torrent'. For metalink,
  184. it is '.meta4'. If false is given to this option, the downloads
  185. added by aria2.addTorrent or aria2.addMetalink will not be saved by
  186. --save-session option.
  187. * Perform SSL/TLS handshake after checking whether connection is established
  188. * Fixed bug that --enable-mmap won't work if MultiDiskAdaptor is used
  189. * RPC over SSL/TLS transport
  190. To enable RPC over SSL/TLS, specify server certificate and private
  191. key using --rpc-certificate and --rpc-private-key options and enable
  192. --rpc-secure option. After the encryption is enabled, use https and
  193. wss scheme to access RPC server.
  194. * aria2rpc: Added appendUri command
  195. This command calls aria2.changeUri(GID, fileIndex, [], [URI,...])
  196. internally.
  197. * Don't send Proxy-Connection header field
  198. * Don't set SNI hostname if it does not include "." for GNUTLS
  199. * Disable SSL/TLS compression with OpenSSL
  200. * Pause download even if download is completed
  201. This allows to pause and unpause BitTorrent seed.
  202. * Use execlp() instead of execl()