Releases: alanmcgovern/monotorrent
Releases · alanmcgovern/monotorrent
v1.0.15
General
- Fixed a very minor memory allocation regression from 1.0.13.
- Significant memory usage reductions for torrents with hundreds, or thousands, of files.
- Web Seeding will work with
https
in addition to the originalhttp
support. - Several WebRequest related operations are forcibly moved to the ThreadPool to ensure the main thread is not blocked unexpectedly.
- Added some new
Torrent.LoadAsync
methods to complement the pre-existingTorrent.Load
methods. - Local Peer Discovery now uses batching to reduce overheads when dozens/hundreds of torrents are started concurrently.
v1.0.14
General
- Improve compatibility when running under UWP. A workaround for dotnet/corert#5603 was added.
v1.0.13
General
- Added some tests to improve overall code coverage.
- The
UW
client identifier is now recognised as uTorrentWeb. - A list of peers are retained when a torrent is stopped and restarted. This will allow connections to be initiated before the first announce completes. It can be useful when the tracker is unreliable. Peers which are retained are replaced with fresh peers as soon as a tracker, or DHT, announce completes. This ensures the freshest set of peers is always used when initiating connections.
- Improved performance of reading/writing files. Patch thanks to @ilyalatt .
- Misc code formatting for consistency.
v1.0.12
General
- Multi-file torrents downloaded using magnet links will be placed in a containing directory, just like they would if they were loaded from a .torrent file. Patch from @jpmikkers
- Tracker.Status is more accurately updated for Http and Udp based trackers.
- The paths for files in a .torrent are validated when loading a torrent in addition to when a torrent is being created. The validation ensures that path traversal attacks will cause the torrent to fail to load.
- Added the ability to put a timeout on the final announce when calling
TorrentManager.StopAsync (TimeSpan)
orClientEngine.StopAllAsync (TimeSpan)
. In the event the Tracker is unresponsive, the announce will be cancelled after the timeout is reached, allowingTorrentManager
to enter theStopped
state.
v1.0.11
General
- Ensure that tracker scrape and announce requests always run on a background thread to avoid slowing down the core engine.
- Added a tweak so that invalid 'nodes' elements in the torrent metadata will be gracefully ignored.
- Fixed a bug in PauseAsync introduced when adding the ability to pause in Hashing mode.
v1.0.10
General
- The correct events are raised when hashing is paused/resumed.
- When a TorrentManager is stopped all the files associated with it should be reliably closed.
- The bitfield representing the completion status of a TorrentFile is always accurately refreshed when partial downloading is enabled and that TorrentFile is marked as
DoNotDownload
. - Minor improvements to the SuperSeeding mode.
- Fixed an issue when downloading torrents using an infohash instead of the full .torrent file. If a peer connection was in the middle of the initial handshake process when the final metadata piece was received, the connection would not be updated appropriately.
- Small tweaks to EndGame mode to ensure it always respects file prioritisation (i.e. files marked as DoNotDownload).
v1.0.9
General
- Updates the ReusableTasks dependency to 1.0.6 to pull in a fix for ReusableTaskCompletionSource.
v1.0.9-beta
General
- Update the minimum required ReusableTasks version to 1.0.6-beta to see if it resolves a task reuse issue.
v1.0.8
General
- Reduced the layer of 'async' methods for IPV4 and IPV6 connections
- Minor improvements to endgame mode. The window within which a torrent has entered endgame mode has been enlarged, and performance has been improved in the case where a piece which completes in endgame mode fails it's hash check. It will be re-requested much faster now.
- Webseeding has been fully re-enabled and new parameters have been added to
EngineSettings
to control its behaviour. - Fixed auto piece size calculations in TorrentCreator
- TorrentCreator has has some minor performance improvements.
v1.0.7
General
- Peers discovered on the local network will be treated as high priority when choosing a peer to connect to.
- Reduced memory usage when sending Have messages to peers when a piece is complete.
- Put a cap on the maximum number of peers stored in memory.
- Small memory allocation improvements when negotiating encrypted connections.