Commit Graph
115 Commits
Author SHA1 Message Date
Cas_ e9d8f8cd75 fix: statuscode (#526) 2024-08-13 23:38:01 +02:00
Cas_ 83a24ce77f perf: drop clone (#523) 2024-07-01 18:23:38 +01:00
Cas_ bce64e155d feat(major): drop simple-get (#443)
BREAKING CHANGE: drop simple-get

* perf: drop simple-get

* feat: undici agent and socks

* fix: undici as dev dependency

* feat: require user passed proxy objects for http and ws

* chore: include undici for tests
2023-10-31 10:51:04 +01:00
Cas 11cce83ddd fix: mangled scrape infohashes (#486) 2023-08-01 23:05:46 +01:00
Cas 7c845f030d perf: use peer/lite (#474) 2023-06-16 23:05:28 +02:00
Cas d7061f73b2 fix: bigInt (#472) 2023-06-07 17:44:34 +01:00
Cas a12022ac2c fix: imports (#471) 2023-06-05 22:56:44 +01:00
Cas 3b2dedb415 fix: replace simple-peer with maintained one (#466) 2023-05-27 18:14:52 +01:00
Cas c99eb89208 fix: drop buffer (#465) 2023-05-26 17:54:30 +01:00
Cas 3f01c29122 perf: replace simple websocket with maintained one (#464) 2023-05-25 18:18:36 +01:00
renovate[bot]renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>Cas
b72d226ed8 chore(deps): update webtorrent (#445)
* chore(deps): update webtorrent

* fix: dependencies (#446)

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Cas <6506529+ThaUnknown@users.noreply.github.com>
2023-02-01 03:43:44 +01:00
Cas e6d3189edf feat: esm (#431)
BREAKING CHANGE: ESM only

* feat: esm

* fix: linter oops
2022-12-05 23:06:54 +01:00
Diego Rodríguez Baquero 8d54938f16 fix: revert #420 2022-05-10 19:56:27 -05:00
Lookis f7928cfcc6 fix: connection leaks (#420) 2022-03-25 11:43:36 +03:00
Linus Unnebäck 8222ccd1d6 style: use object shorthand for properties (#400) 2021-10-29 09:36:47 -05:00
AlexandYoann Ciabaud ad64dc3a68 feat: add proxy support for tracker clients (#356)
* Add a httpAgent options to http and websocket client trackers.

* Add a socks proxy to udp client trackers.

* Update http agent mock to node 5+

* Bugfix in socks configuration

* Use new socket to connect to the proxy relay and slice the proxy header from the message

* Add documentation for proxy

* Provide http and https agents for proxy.
Change proxy options structure and auto populate socks HTTP agents.

* Update documentation

* Check socks version for UDP proxy

* Clone proxy settings to prevent Socks instances concurrency

* Generate socks http agents on the fly (reuse is not working)

* Use clone to deepcopy socks opts

* Dont create agent for now since we cannot reuse it between requests.

* Removed unused require

* Add .gitignore

* Fix merge conflict

* Fix URL toString

* Fix new Socket constructor

Co-authored-by: Yoann Ciabaud <yoann@sonora.io>
2021-08-20 16:08:36 -05:00
Diego Rodriguez Baquero e5994d2ebd fix: modernize 2021-06-14 20:54:41 -05:00
Alex 8e24a8c97b fix: UDP url parsing 2021-05-20 21:38:51 +02:00
Feross Aboukhadijeh dd02cddcb8 ensure that 'peer' is emitted before 'connect' event fires
This is just a defensive code change to ensure that if signal() were somehow able to cause the peer to synchronously emit the 'connect' event that we won't cause the 'error' listener to be unregistered before 'peer' is emitted and the user has a chance to register their own 'error' listener
2021-04-12 16:13:35 -07:00
Feross Aboukhadijeh ce8ea41f27 Lower the max number of WebRTC peers in an announce to 5 2021-04-12 15:54:01 -07:00
Feross Aboukhadijeh 2a828292b8 standard 2020-10-29 10:25:57 -10:00
Feross Aboukhadijeh c88bbb4a62 standard 2020-10-28 18:57:47 -10:00
Feross Aboukhadijeh eb69f8d7ab standard 2020-10-21 13:47:38 -10:00
Diego Rodríguez Baquero 51db46f4b2 increase reconnect variance and maximum 2020-03-29 13:34:50 -05:00
Diego Rodríguez Baquero e5df6fc2fc fix: error param 2020-03-29 12:22:44 -05:00
Koushik Dutta 29d2e6b1b3 Error.message is read only on some platforms.
This causes another Error to be thrown.
2020-02-03 15:52:37 -08:00
Eric Guan fc2f84ad60 Check if socket is already connected in _openSocket(). Fixes https://github.com/webtorrent/webtorrent/issues/1245. 2019-08-14 14:20:18 -07:00
Feross Aboukhadijeh ddee6b96b5 Fix URL constructor on udp:// urls in Chrome App environment
For: https://github.com/brave/brave-browser/issues/5604

`bittorrent-tracker` is broken when run in a Chrome App environment.

The issue is that the `URL` constructor is buggy Chromium. https://bugs.chromium.org/p/chromium/issues/detail?id=734880

We switched to `URL` from `require('url')` in `bittorrent-tracker@9.13.0`. Commit: https://github.com/webtorrent/bittorrent-tracker/commit/93b41391a95546b11bceb1ee0d5b44f4c6a71592

This code path was not exercised by `bittorrent-tracker`'s tests because UDP trackers are normally only used in a Node.js environment. Braves run the code in a Chrome extension environment which we don't test.
2019-08-08 20:04:41 -07:00
Feross Aboukhadijeh d6751dac41 remove safe-buffer 2019-08-06 17:58:05 -07:00
Feross Aboukhadijeh 93b41391a9 BREAKING: drop Node 8 support 2019-08-05 14:54:20 -07:00
Feross Aboukhadijeh 1a075bd159 standard 2019-07-05 14:36:14 -07:00
Feross Aboukhadijeh 85e7a606a6 standard 2019-07-04 21:58:13 -07:00
Diego Rodríguez Baquero dd861404e2 Leave default case without brackets 2018-12-20 15:03:15 -05:00
Justin Kalland dc79834f77 Use blocks with brackets 2018-12-20 12:59:53 -07:00
Justin Kalland bc861ef10a Revert "Remove declarations from inside switch statements"
This reverts commit d1b9047c03.
2018-12-20 12:52:05 -07:00
Justin Kalland d1b9047c03 Remove declarations from inside switch statements 2018-12-20 12:36:54 -07:00
Diego Rodríguez Baquero d410c6c088 Merge branch 'master' into modernize_lib_client 2018-11-22 11:00:48 -05:00
Diego Rodríguez Baquero f7d3e9b7c0 Lower reconnect min and increase variance
This will allow servers to "breathe" when lots of peers are reconnecting.
2018-11-22 10:59:34 -05:00
Jimmy Wärting c8ceaee306 replace self with this 2018-10-03 15:06:38 +02:00
Jimmy Wärting 386e0a5fbe lebab lib/client 2018-10-03 14:44:11 +02:00
Jimmy Wärting 65b2bdc804 removed xtend 2018-10-02 15:09:02 +02:00
John Hiesey 7ac0e9539a Expose WebSocketTracker socket pool
This is necessary for the Internet Archive superpeer implementation.
2018-08-09 15:28:13 -07:00
Feross Aboukhadijeh 63c953cbea dry some code 2017-04-07 18:24:16 -07:00
Feross Aboukhadijeh 48d0ea42ad Handle peer 'error' events correctly
Handle peer 'error' events that are fired *before* the peer is emitted
in a 'peer' event. Once the peer is emitted in a 'peer' event, then
it's the consumer's responsibility to listen for errors.

This fixes the most common error in WebTorrent Desktop according to our
telemetry.
2017-04-07 17:34:08 -07:00
Feross Aboukhadijeh f65983e466 do not filter out extra keys from 'update' events 2017-03-10 13:38:04 -08:00
Yoann Ciabaud 8482c3af0a Add extra data on ws annouce event 2017-03-09 11:19:46 +01:00
Feross Aboukhadijeh 1dd1cc32da Revert "client: socketPool should not be shared across clients"
This reverts commit 3f3db7deb1.
2017-02-28 15:41:52 -08:00
Feross Aboukhadijeh 7d2318dce6 Use unordered-array-remove for better performance! 2017-02-13 17:30:22 -08:00
Feross Aboukhadijeh 3f3db7deb1 client: socketPool should not be shared across clients
Caught this issue because of the new eviction tests. Essentially, this
change moves the socketPool into the client instance instead of a
reused variable at the module level.

When a client sends stop (or is evicted) the server will close the
websocket connection if that client is not in any other swarms (based
on peerId). However, if we are using a single socket for multiple
clients (as was the case before this commit), then other clients will
have their sockets unintentionally closed by the server.
2017-02-08 13:20:41 -08:00
Feross Aboukhadijeh 30b6f176b1 ws client: Don't include offers with 'completed' event
It's not necessary to include webrtc offers because the client is not
really looking for more peers when it has just completed the torrent.

Fewer WebRTC offers = less resource usage
2017-02-02 16:59:36 -08:00