Commit Graph

55 Commits

Author SHA1 Message Date
Feross Aboukhadijeh
b2cbfafae7 use 'once' on some event handlers 2016-09-16 07:49:29 -07:00
Feross Aboukhadijeh
a35f1f8178 replace hat with randombytes 2016-08-20 19:37:36 -07:00
Yoann Ciabaud
fa0b3e4535 Double default for webrtc trackers (now Chrome 51 is released) #152 2016-06-07 18:50:06 +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
4431ae14ab Ensure client.destroy() callback is called when websocket pool used
Fixes #141
2016-03-31 21:49:18 -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
c92b1714db Remove all Function.bind calls
For https://github.com/feross/webtorrent-desktop/issues/256
2016-03-28 23:38:23 -07:00
Feross Aboukhadijeh
721a7bea7c make server and client always send { action: 'announce' } 2016-03-23 22:04:07 -07:00
Feross Aboukhadijeh
4159d35cfc ws client: drop support for old tracker servers
Old tracker server versions don’t send data.action === ‘announce’
2016-03-23 21:26:52 -07:00
Feross Aboukhadijeh
89b9fb7f40 prevent two reconnect timers for running at same time 2016-03-18 23:14:48 -07:00
Feross Aboukhadijeh
49025c1320 reset self.peers = {} after destroy
Supersedes PR #135
2016-03-18 23:12:54 -07:00
Feross Aboukhadijeh
db868cac78 guard against self.socket being null 2016-03-18 23:12:28 -07:00
Feross Aboukhadijeh
51e2439333 Lower generated offer number to 5
Temporary mitigation for leak issue
2016-03-16 18:06:42 -07:00
Feross Aboukhadijeh
c181020937 client: Do not include WebRTC offers with 'stopped' announce event (fix #132) 2016-03-16 18:04:56 -07:00
Feross Aboukhadijeh
2c23ae7f00 client: websocket: Unref peer.trackerTimeout 2016-03-16 17:59:01 -07:00
Feross Aboukhadijeh
d079171044 Fixes for PR #129 2016-03-16 17:58:47 -07:00
Yoann Ciabaud
5127aad052 Make electron webrtc working in headless and stabdard fix 2016-03-16 17:33:07 -07:00
Yoann Ciabaud
d4c34c344e Destroy peers and tracker timeouts on destroy 2016-03-16 17:33:07 -07:00
Yoann Ciabaud
3252070328 Clear reconnect timeout on destroy 2016-03-16 17:33:06 -07:00
Yoann Ciabaud
35e6eeaef2 Close the websocket only when no one is using it 2016-03-16 17:33:06 -07:00
Feross Aboukhadijeh
5d4cf75e0a Merge pull request #123 from DiegoRBaquero/patch-1
Reconnect timeout improvement
2016-03-15 21:41:01 -07:00
Diego Rodríguez Baquero
050d95ac72 Variance and higher max 2016-03-16 01:14:24 -03:00
Feross Aboukhadijeh
8c01cb7268 do not throw and crash client 2016-03-15 20:59:04 -07:00
Feross Aboukhadijeh
ba4a52d2d1 Fixes for PR #125 2016-03-15 20:06:39 -07:00
Feross Aboukhadijeh
3d753ab805 Merge pull request #125 from yciabaud/ws-scrape
Scrape implementation for websocket. Issue #116
2016-03-15 19:39:59 -07:00
Feross Aboukhadijeh
6df64ffe06 Fixes for PR #126 2016-03-14 19:16:00 -07:00
Autarc
09e2b55e42 invoke callbacks of destroyed trackers 2016-03-14 17:13:34 +01:00
Yoann Ciabaud
39507bf8be Scrape implementation for websocket. Issue #116 2016-03-14 00:36:51 +01:00
Diego Rodríguez Baquero
529203ea40 Max reconnect time 2016-03-11 15:26:55 -03:00
Diego Rodríguez Baquero
8e2dbdc576 Reconnect timeout increase lineally
Minimum set at 15 seconds, each retry adds 30 seconds.
2016-03-11 04:12:09 -03:00
Feross Aboukhadijeh
0585d8b18a use delete obj[key] instead of obj[key] = null 2016-03-10 21:26:28 -08:00
Feross Aboukhadijeh
a82f5c9878 websocket client: fix: emit 'update' when data.complete is 0 2016-02-29 14:48:59 -08:00
Feross Aboukhadijeh
b34fc100a1 fixes for PR #107 2016-02-29 12:34:06 -08:00
Feross Aboukhadijeh
1db2cb8736 Merge pull request #107 from yciabaud/announce-extension
Provide a way to give extra data on announce
2016-02-29 10:19:14 -08:00
Feross Aboukhadijeh
ad580c3d7c fixes for simple-websocket@4 2016-02-15 19:38:50 -08:00
Feross Aboukhadijeh
1e919c44cb changes for simple-get 2.0.0 2016-02-14 00:31:44 -08:00
Feross Aboukhadijeh
ab042bd2f6 remove old todo 2016-02-05 14:06:45 -08:00
Yoann Ciabaud
f1669a506e Provide a way to give updated announce opts via callback on setInterval 2016-02-03 08:28:38 +01:00
Feross Aboukhadijeh
8d735bf97d more cleanup 2015-12-05 03:06:54 -08:00
Feross Aboukhadijeh
3f1c9644ec 50s offer timeout 2015-12-05 03:06:46 -08:00
Feross Aboukhadijeh
5687a72fdb raise number of offers created to 10 again 2015-12-05 01:01:23 -08:00
Feross Aboukhadijeh
fe2ac4ac67 cleanup peers that never get an answer
attempt to fix https://github.com/feross/webtorrent/issues/502
2015-12-05 01:01:04 -08:00
Feross Aboukhadijeh
208ae5d911 calling tracker.setInterval() should override current interval 2015-12-04 23:59:11 -08:00
Feross Aboukhadijeh
582ac990a4 webtorrent perf: create 5 offers at a time 2015-12-04 23:38:50 -08:00
Feross Aboukhadijeh
177171b82c expose client.peerId and client.peerIdBuffer 2015-12-02 22:33:15 -08:00
Feross Aboukhadijeh
d344537766 expose client.infoHash and client.infoHashBuffer 2015-12-02 15:46:41 -08:00
Feross Aboukhadijeh
38a80093a1 Fix UDP scrape returning invalid info hashes (Fix #97) 2015-12-02 15:35:42 -08:00
Feross Aboukhadijeh
e9322a32d6 code style 2015-12-02 15:31:20 -08:00
Aram Drevekenin
ab3482fc4f Changed infoHash to always be hex 2015-11-29 16:02:29 +02:00
Feross Aboukhadijeh
abbb076484 client: interval.unref() 2015-08-24 00:11:48 +02:00