Skip to content

v2.0.0-alpha.unstable.rev0192

Pre-release
Pre-release
Compare
Choose a tag to compare
@alanmcgovern alanmcgovern released this 02 Apr 11:23
· 672 commits to master since this release

General

  • Small performance improvements to some Bitfield methods
  • BitField is now immutable. If you need a mutable version use a MutableBitfield.ctor(BitField), or MutableBitfield.From (BitField) to create a mutable version of a bitfield. This is useful for custom piece pickers.
  • Optimised how partial download progress (the amount of data which will be downloaded after excluding files marked as DoNotDownload) is calculated.
  • Small change to how pieces are requested from a peer. Additional requests are batched when the number of pieces being requested gets larger.
  • Removed a confusing parameter from IPieceRequester. There was no need to include a BitField in the parameters as it wasn't used for anything meaningful.
  • ITorrentFile.Priority is now a readonly property publicly. If you want to change the priority for a file you should call TorrentManager.SetFilePriorityAsync (TorrentFile, Priority). This is a threadsafe way to update the priority, and allows internal state to be updated immediately, rather than having to continually poll for changes.
  • Small perf improvement when bootstrapping the DHT table from a list of cached nodes.
  • Fixed a cosmetic bug where mapping a PieceIndex to the corresponding ITorrentFile could return the wrong File in some scenarios. The impact was that the first or last piece for a given file may never be set to true, so the progress reported by ITorrentFileInfo.BitField would be < 100% even after the torrent entered Seeding mode after downloading all data.
  • Fix submitted by @phil-scott-78 to ensure web seeds with invalid Uris are gracefully discarded.