diff options
author | Feross Aboukhadijeh <feross@feross.org> | 2016-04-22 03:50:45 +0300 |
---|---|---|
committer | Feross Aboukhadijeh <feross@feross.org> | 2016-04-22 03:50:45 +0300 |
commit | c85dd3b83bdbd7fcbbb32c65a080b7011e4daede (patch) | |
tree | 0b28bec09d7015f127f6c4f4a3f4f9b5764beac3 /CHANGELOG.md | |
parent | 6b6c1341fc1a8348dba202ec30def3d9015af152 (diff) | |
parent | fa2a6c541849853ded575b95ee424ab94c0936a4 (diff) |
Merge pull request #762 from feross/fixes-for-desktop
BREAKING: Many fixes; all leaks fixed
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..a0d574d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,63 @@ +# WebTorrent Version History + +## UNRELEASED + +### Added + +- `client.listening` property to signal whether TCP server is listening for incoming + connections. + +- `client.dhtPort` property reflects the actual DHT port when user doesn't specify one + (this is parallel to `client.torrentPort` for the TCP torrent listening server) + +### Changed + +- Merged `Swarm` class into `Torrent` object. Properties on `torrent.swarm` (like + `torrent.swarm.wires`) now exist on `torrent` (e.g. `torrent.wires`). + +- `torrent.addPeer` can no longer be called before the `infoHash` event has been + emitted. + +- Remove `torrent.on('listening')` event. Use `client.on('listening')` instead. + +- Remove support from `TCPPool` for listening on multiple ports. This was not used by + WebTorrent and just added complexity. There is now a single `TCPPool` instance for the + whole WebTorrent client. + +- Deprecate: Do not use `client.download()` anymore. Use `client.add()` instead. + +- Deprecate: Do not use `torrent.swarm` anymore. Use `torrent` instead. + +- Only pass `torrent.infoHash` to the Chunk Store constructor, instead of the `Torrent` + instance itself, to prevent accidental memory leaks of the `Torrent` object by the + store. (Open an issue if you were using other properties. They can be re-added.) + +- Non-fatal errors with a single torrent will be emitted at `torrent.on('error')`. You + should listen to this event. Previously, all torrent errors were also emitted on + `client.on('error')` and handling `torrent.on('error')` was optional. This design is + better since now it is possible to distinguish between fatal client errors + (`client.on('error')`) when the whole client becomes unusable versus recoverable errors + where only a single torrent fails (`torrent.on('error')`) but the client can continue to + be used. However, if there is no `torrent.on('error')` event, then the error will be + forwarded to `client.on('error')`. This prevents crashing the client when the user + only has a listener on the client, but it makes it impossible for them to determine + a client error versus a torrent error. + +### Fixed + +- If `client.get` is passed a `Torrent` instance, it now only returns it if it is present + in the client. + +- Errors creating a torrent with `client.seed` are now emitted on the returned `torrent` + object instead of the client (unless there is no event listeners on + `torrent.on('error')` as previously discussed). The torrent object is now also destroyed + automatically for the user, as was probably expected. + +- Do not return existing torrent object when duplicate torrent is added. Fire an + `'error'` event instead. + +- Memory leaks of `Torrent` object caused by many internal subclasses of WebTorrent, + including `RarityMap`, `TCPPool`, `WebConn`, `Server`, `File`. + +- `client.ratio` and `torrent.ratio` are now calculated as `uploaded / received` instead + of `uploaded / downloaded`. |