Commit Graph

244 Commits

Author SHA1 Message Date
Feross Aboukhadijeh
c75ca05479 swarm.announce() should always call callback
It’s important that calls to swarm.announce() always calls the callback
that it’s passed otherwise http announce/scrape requests
will hang (because res.end() is never called).

Also, since this swarm implementation is in-memory, we can get rid of
the callbacks to internal functions.

Lastly, fixed references to non-existent start() function.
2014-12-11 13:43:11 -08:00
Feross Aboukhadijeh
edb5c6e854 code style 2014-12-11 12:53:39 -08:00
Feross Aboukhadijeh
20cb18272e Merge pull request #45 from feross/refactor
Refactor the server-side code
2014-12-11 12:38:32 -08:00
Astro
c97e4236f4 server parseHttpRequest(): simplify info_hash checking 2014-12-11 17:07:37 +01:00
Astro
217bcf7de5 server _onUdpRequest(): don't check empty params, errors will be thrown now 2014-12-11 16:39:10 +01:00
Astro
7a8f9a779f server _onHttpRequest(): don't wrap errors in errors 2014-12-11 16:24:33 +01:00
Astro
74d9139049 server _onHttpRequest(): ensure non-empty params 2014-12-11 16:22:17 +01:00
Astro
e64fecc063 parseUdpRequest(): throw on invalid packet 2014-12-11 16:19:08 +01:00
Astro
7a417a591d parseUdpRequest(): fix params.ip 2014-12-11 16:11:12 +01:00
Astro
e234f14d56 server swarm: split out announce events 2014-12-10 17:01:34 +01:00
Astro
8439300df9 server: unify compact serialization 2014-12-10 16:51:35 +01:00
Astro
b72960dee3 server: split out Swarm 2014-12-10 16:47:41 +01:00
Astro
1c754a2f49 move parseHttpRequest(), parseUdpRequest() to lib/parse_{http,udp}.js 2014-12-10 00:44:45 +01:00
Astro
aea3c44c08 server: expose getSwarm()
drops capability to pass a *hex* infoHash
2014-12-09 23:18:47 +01:00
Astro
fee289b074 server: rm superfluous action fields 2014-12-09 23:18:35 +01:00
Astro
366b49bf06 server: split out _onRequest() et al 2014-12-09 02:35:05 +01:00
Astro
85be917d51 server: replace request string by action number 2014-12-09 00:29:02 +01:00
Astro
0bc88bcf22 server: split out parseUdpRequest() 2014-12-09 00:22:36 +01:00
Astro
037a53accb server: split out parseHttpRequest() 2014-12-08 23:42:05 +01:00
Astro
28189a0b12 server tests: fix serverType in announceUrl 2014-12-05 02:41:57 +01:00
Astro
f77015c046 server tests: run udp tests with udp 2014-12-04 17:38:03 +01:00
Feross Aboukhadijeh
8ef041f4f8 2.9.1 2014-11-27 17:32:38 +08:00
Feross Aboukhadijeh
84f6107345 check for domain names in data.peers6 2014-11-27 17:31:49 +08:00
Feross Aboukhadijeh
0b831d2fde actually iterate over ipv6 peers 2014-11-27 17:31:33 +08:00
Feross Aboukhadijeh
0c709523df 2.9.0 2014-11-26 20:21:49 +08:00
Feross Aboukhadijeh
6db96d6125 bn.js@0.15 & bump dev-deps 2014-11-26 20:20:23 +08:00
Feross Aboukhadijeh
d7c4af4ce8 handle case where server returns ip in square brackets 2014-11-26 20:18:56 +08:00
Feross Aboukhadijeh
b079bad35a code style 2014-11-26 20:18:56 +08:00
Feross Aboukhadijeh
32b622aa51 cleanup tests 2014-11-26 20:18:56 +08:00
Astro
1ca387f2fe client IPv6 support [BEP-7] 2014-11-26 20:18:56 +08:00
Feross Aboukhadijeh
54b8d7112a 2.8.2 2014-11-26 17:40:59 +08:00
Feross Aboukhadijeh
2824f16c49 don't assume peer var will exist 2014-11-26 17:40:34 +08:00
Feross Aboukhadijeh
20d08f6d03 2.8.1 2014-11-26 16:22:12 +08:00
Feross Aboukhadijeh
deee4e1d7d fix client handling to support http peers non-compact response 2014-11-26 16:21:45 +08:00
Astro
4f1ea32f35 client _handleResponse: allow string form of peer.ip 2014-11-26 16:20:14 +08:00
Feross Aboukhadijeh
7376843920 2.8.0 2014-11-26 15:27:31 +08:00
Feross Aboukhadijeh
026f2c2de0 Recover from unexpected events better
When you restart the tracker server, all peers it's tracking are
discarded. Then, clients that are already running will continue to send
`update` events, but the tracker throws them away because it was
expected to get a `start` event first.

This should only be a warning, and not a fatal error. I just made the
following changes:

- unexpected `started` event (for peer already in swarm) is treated as
an `update`
- unexpected `stopped` event is discarded
- unexpected `completed` event is treated as a `start`
- unexpected `update` event (from peer not in swarm) is treated as
`start`

Fixes #42
2014-11-26 15:27:02 +08:00
Feross Aboukhadijeh
b44715d37a 2.7.0 2014-10-06 23:14:35 -07:00
Feross Aboukhadijeh
07850cdc13 Fixes for PR #39
- emit 'warning' instead of 'error' because it's not a fatal error,
just a bad tracker response.
- made the try block more concise so it only catches the errors from
`string2compact`
2014-10-06 23:14:09 -07:00
Feross Aboukhadijeh
7e081f88d1 Merge pull request #39 from Theadd/master
handle .* IP/PORTs (6 bytes) error
2014-10-06 23:10:27 -07:00
Theadd
e898ef45f6 handle .* IP/PORTs (6 bytes) error 2014-09-24 18:03:30 +02:00
Feross Aboukhadijeh
a357dd2957 2.6.1 2014-09-16 19:58:24 -07:00
Feross Aboukhadijeh
1e354c8f22 debug@2 and bn.js@0.14 2014-09-16 19:58:05 -07:00
Feross Aboukhadijeh
b956132918 update dep 2014-09-09 09:39:49 +01:00
Feross Aboukhadijeh
0edafda089 2.6.0 2014-08-18 01:40:52 -07:00
Feross Aboukhadijeh
61cfe0afa6 don't emit 'error' for non-fatal errors 2014-08-18 01:40:30 -07:00
Feross Aboukhadijeh
1bcb3e4097 2.5.1 2014-08-17 20:56:39 -07:00
Feross Aboukhadijeh
48dcab8420 don't crash if torrent.announce is undefined 2014-08-17 20:56:11 -07:00
Feross Aboukhadijeh
8ba742eed4 whitespace 2014-08-17 01:41:09 -07:00
Feross Aboukhadijeh
06eab6871d 2.5.0 2014-08-16 19:06:23 -07:00