Commit Graph

139 Commits

Author SHA1 Message Date
Yoann Ciabaud
2c7ea4e307 Refactor id usage in announce and fix default peersCacheTtl 2016-06-14 07:15:57 +02:00
Yoann Ciabaud
d51a77b028 Update lru package to 3.0.0 and set peersCacheLength to 1K as default 2016-06-10 10:00:19 +02:00
Yoann Ciabaud
5843b7d2f6 Bugfix in manual peer eviction. 2016-06-10 00:29:56 +02:00
Yoann Ciabaud
7f98203d5e Manually clean peers on announce 2016-06-09 16:28:31 +02:00
Yoann Ciabaud
5dcc932247 Refresh cache on changes and handle access to evicted peer 2016-06-09 02:10:07 +02:00
Yoann Ciabaud
ca522c0c4b Prune old peers in server with lru based cache. Issue #4 2016-06-08 23:57:01 +02: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
4a0758db24 Fix unnecessary escape 2016-04-23 23:02:52 -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
f60ecec0dc remove buffer-equals dependency 2016-03-24 03:25:31 -07:00
Feross Aboukhadijeh
35697f5187 Merge pull request #137 from fanatid/feature/buffer-equals
buffer-equals instead buffer-equal
2016-03-24 03:21:08 -07:00
Feross Aboukhadijeh
721a7bea7c make server and client always send { action: 'announce' } 2016-03-23 22:04:07 -07:00
Feross Aboukhadijeh
2fffdc6730 ws server: drop support for old tracker clients
old clients don’t send params.action === ‘action’
2016-03-23 21:27:32 -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
Kirill Fomichev
0193f58654 buffer-equals instead buffer-equal 2016-03-21 14:46:39 +03: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
Yoann Ciabaud
eb3cefec35 Use type from server to filter peers to offer 2016-03-13 15:51:08 +01:00
Feross Aboukhadijeh
e3c65bc2a3 PR Feedback for #120 2016-03-11 17:21:19 -08:00
Diego Rodríguez Baquero
529203ea40 Max reconnect time 2016-03-11 15:26:55 -03:00
Yoann Ciabaud
af631d9fce Merge remote-tracking branch 'upstream/master' into client-infos 2016-03-11 10:34:07 +01:00
Yoann Ciabaud
2f37e6c476 Adds a type param to identify the source of the peer 2016-03-11 10:09:09 +01: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
Diego Rodríguez Baquero
e185f321d3 Delete peer on announce stopped 2016-03-11 01:10:34 -03:00
Yoann Ciabaud
60f03b9529 Provide IP and HTTP headers in both HTTP and Websocket server 2016-03-03 11:10:54 +01: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