Feross Aboukhadijeh
0aadcc1cbb
Wait up to 1s for pending requests before destroy()
...
If the user calls:
client.stop()
client.destroy()
We should ensure that the final 'stopped' message reaches the tracker
server, even though the client will not get the response (because they
destroyed the client and no more events will be emitted).
If there are pending requests when destroy() is called, then a 1s timer
is set after which point all requests are forcibly cleaned up. If the
requests complete before the 1s timer fires, then cleanup happens right
away (so we're not stuck waiting for the 1s timer).
So, destroy() can happen one of three ways:
- immediately, if no pending requests exist
- after exactly 1s, if pending requests exist and they don't complete
within 1s
- less than 1s, if pending requests exist and they all complete before
the 1s timer fires
2017-01-20 18:41:28 -08:00
Feross Aboukhadijeh
9cf2dffa67
debug: better debug names
2017-01-20 18:34:33 -08:00
Feross Aboukhadijeh
c4f4f012dd
Add fixes and tests for PR #179
2017-01-16 15:43:47 -08:00
Feross Aboukhadijeh
91cb2d3439
Merge pull request #179 from zunsthy/feature-add-user-agent
...
add 'user-agent' in HTTP header
2017-01-16 15:20:11 -08:00
Sidd Sridharan
9d9893a0f2
parse params.left = 0 properly
2016-12-04 12:42:57 -08:00
Feross Aboukhadijeh
3a0fec0701
standard fixes
2016-11-22 19:52:01 -03:00
ZunSThy
bd8bc9f6af
add 'user-agent' in HTTP header
2016-11-06 16:00:08 +08:00
ZunSThy
e0ede27049
Revert "add 'user-agent' in HTTP header"
...
This reverts commit 725527aa84ad8fdb3ddf378b48d4180da1ca85d5.
2016-11-06 15:59:04 +08:00
ZunSThy
7ae7a2ca07
Revert "fix eslint"
...
This reverts commit 0444e937e27e80c79fd6cfc7386c827bba84c141.
2016-11-06 15:58:52 +08:00
ZunSThy
0444e937e2
fix eslint
2016-10-29 04:25:50 +08:00
ZunSThy
725527aa84
add 'user-agent' in HTTP header
2016-10-29 02:51:37 +08:00
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
Alex
f14d0b83df
Add id parameter in announce calls
2016-08-08 17:25:25 +02:00
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