Commit Graph

48 Commits

Author SHA1 Message Date
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
e6d3189edf
feat: esm (#431)
BREAKING CHANGE: ESM only

* feat: esm

* fix: linter oops
2022-12-05 23:06:54 +01:00
Linus Unnebäck
8222ccd1d6
style: use object shorthand for properties (#400) 2021-10-29 09:36:47 -05:00
Alex
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
c88bbb4a62 standard 2020-10-28 18:57:47 -10:00
Linus Unnebäck
ae5e99f0af
Use object shorthand for properties 2020-04-25 10:34:40 +01:00
Feross Aboukhadijeh
d6751dac41 remove safe-buffer 2019-08-06 17:58:05 -07:00
Feross Aboukhadijeh
1a075bd159 standard 2019-07-05 14:36:14 -07:00
Alex
a8869b0d28 Add tests to validate tracker 2019-04-08 20:43:50 +02:00
Feross Aboukhadijeh
c3bf7f87f6 test: add failing test for the second part of #190 2017-01-20 18:34:05 -08:00
Feross Aboukhadijeh
63d24611ec test: speed up testClientUpdate() test 2017-01-20 18:33:30 -08:00
Feross Aboukhadijeh
1424a00c3a test: don't rely on setTimeout in testClientStop() 2017-01-20 18:33:17 -08:00
Feross Aboukhadijeh
c4f4f012dd Add fixes and tests for PR #179 2017-01-16 15:43:47 -08:00
Feross Aboukhadijeh
52aacc1db0 Merge pull request #156 from yciabaud/scrape-test
Restore scrape test for websocket tracker now it is is supported
2016-06-04 23:09:20 -07:00
Yoann Ciabaud
54782bc7e0 Restore scrape test for websocket tracker now it is is supported 2016-06-04 15:50:46 +02:00
Feross Aboukhadijeh
2959c2cea6 Use safe-buffer
Use the new Buffer APIs from Node v6 for added security. For example,
`Buffer.from()` will throw if passed a number, unlike `Buffer()` which
allocated UNINITIALIZED memory in that case.

Use the `safe-buffer` package for compatibility with previous versions
of
Node.js, including v4.x, v0.12, and v0.10.

https://github.com/feross/safe-buffer
2016-05-29 23:12:23 -07:00
Feross Aboukhadijeh
2966165a8f BREAKING: Client() takes single opts object now
To use the client, you used to pass in four arguments:

`new Client(peerId, port, parsedTorrent, opts)`

Now, passing in the torrent is no longer required, just the `announce`
and `infoHash` properties. This decouples this package from
`parse-torrent`.

All options get passed in together now:

new Client({
infoHash: '', // hex string or Buffer
peerId: '', // hex string or Buffer
announce: [], // list of tracker server urls
port: 6881 // torrent client port, (in browser, optional)
})

All the normal optional arguments (rtcConfig, wrtc, etc.) can still be
passed in with the rest of these options.

Fixes #118. Fixes #115.

Added ws tests for scrape.
2016-03-31 21:37:51 -07:00
Feross Aboukhadijeh
e336f1a070 test: use webtorrent-fixtures 2016-03-16 12:22:33 -07:00
Feross Aboukhadijeh
012b31553b test: add large torrent tests for ws tracker 2016-02-29 17:11:02 -08:00
Feross Aboukhadijeh
e15125ca80 test: add tests for getAnnounceOpts (#107) 2016-02-29 17:02:55 -08:00
Feross Aboukhadijeh
7893d5c5bf remove failing ws test 2016-02-29 17:02:36 -08:00
Feross Aboukhadijeh
7a0fe31ba5 add websocket tracker tests 2016-02-29 14:48:23 -08:00
Feross Aboukhadijeh
87d3189420 standard 6 prep 2016-02-05 14:08:46 -08:00
Feross Aboukhadijeh
959ddbd5f3 fix test for setInterval() change 2015-12-05 00:06:23 -08:00
Feross Aboukhadijeh
9db28c2fad massive cleanup 2015-07-29 01:47:09 -07:00
Feross Aboukhadijeh
c3abef72ce tracker should not modify opts object, it's passed to all trackers 2015-07-27 15:19:18 -07:00
Feross Aboukhadijeh
f285c9dd3c client.stop() no longer calls client.destroy()
You must call client.destroy() manually to clean up resources
2015-05-16 23:24:20 -07:00
Feross Aboukhadijeh
d759456d7a test: speed up 2015-03-24 01:02:10 -07:00
Feross Aboukhadijeh
ebb86f728f JavaScript Standard Style
https://github.com/feross/standard
2015-01-26 18:16:01 -08:00
Feross Aboukhadijeh
32b622aa51 cleanup tests 2014-11-26 20:18:56 +08:00
Feross Aboukhadijeh
9e22aa40f1 cleanup tests 2014-07-23 19:16:23 -07:00
Feross Aboukhadijeh
e6de7a2f54 add tests for scraping a udp tracker (fix #34) 2014-07-21 22:58:13 -07:00
Feross Aboukhadijeh
231ff5709c correctly detect UDP tracker scrape support
Before this fix, udp tracker urls needed to contain “/announce” or else
we would assume the tracker doesn’t support scrape. (This is correct
behavior for http trackers, but not udp)
2014-07-20 04:34:32 -07:00
Feross Aboukhadijeh
8b9dfb55b8 add test for announce with numwant 2014-07-11 03:50:48 -07:00
Feross Aboukhadijeh
7b5cd6bb7f unify client http + udp test suites 2014-07-11 03:50:35 -07:00
Feross Aboukhadijeh
1681474f0e fail client tests on warning 2014-07-10 21:58:19 -07:00
Feross Aboukhadijeh
0a51e59bd0 better test error messages 2014-07-10 21:00:02 -07:00
Feross Aboukhadijeh
bf1d382c7a http tracker server: error on missing params 2014-07-10 19:59:33 -07:00
Feross Aboukhadijeh
15a6f3c715 require('bittorrent-tracker') returns Client 2014-06-07 15:15:00 -07:00
Feross Aboukhadijeh
2aea063b8c make client tests work offline
for #18
2014-05-23 21:14:19 -07:00
Feross Aboukhadijeh
6f565ed6fa add test: tracker client from magnet uri 2014-05-14 12:45:48 -07:00
Feross Aboukhadijeh
e5e0fa9e27 minor style cleanup 2014-05-11 17:32:57 -07:00
fisch0920
5064a05dde added client and server support for scrape messages in addition to announce messages (tcp and udp) 2014-05-09 02:38:41 -04:00
Feross Aboukhadijeh
b406d4ec5e tests: use publicbt.com
seems to have more lenient rate limiting
2014-03-27 21:29:00 -07:00
Feross Aboukhadijeh
2e76f786c6 add tests for udp client 2014-03-27 21:04:33 -07:00
Feross Aboukhadijeh
31b82e0a2b add bittorrent tracker server implementation! 2014-03-27 00:17:49 -07:00