Commit Graph

58 Commits

Author SHA1 Message Date
Feross Aboukhadijeh
bdc7edea70 preserve backwards compatibility 2015-02-19 12:56:09 -08:00
Nick Rafter
de19b61c52 Exposed full http request to filter function for more configurable filtering 2015-02-19 12:01:46 -05:00
Astro
138bdb8573 server: rm check for http/udp option
my use-case brings its own http server, i just use onHttpRequest()
2015-02-06 18:16:47 +01:00
Astro
b33531d835 server: allow onHttpRequest() with options={ action: 'announce' } for custom routing
For GH issue #58
2015-02-04 20:35:52 +01:00
Astro
e1b7fa7e5c server: save HTTP req/res in params
For GH issue #58
2015-02-04 20:34:46 +01:00
Feross Aboukhadijeh
82e6792a6b BREAKING CHANGES
Breaking changes:
- 'listening' event no longer emits with `port` param
- `server.port` property removed (instead, use
`server.http.address().port`)

Added features:
- expose http server as `server.http`
- expose udp server as `server.udp`
- client.destroy() - ungracefully leave the swarm
- server: added `filter` option to black/whitelist torrents

Bugfixes:
- client considers udp tracker errors to be warnings
- emit 'start', 'stop', 'update', etc. AFTER response sent
- fix udp error response action and message being `undefined`

Internal:
- remove `portfinder` dep
- add complete test for `filter` functionality
2015-01-29 14:59:08 -08:00
Sidd Sridharan
55079798c5 white/blacklist implemented (#44) + docs/tests updated 2015-01-29 12:24:17 -08:00
Feross Aboukhadijeh
812c2ded4e style 2015-01-28 18:18:47 -08:00
Feross Aboukhadijeh
a6f14037ff style 2015-01-28 18:09:23 -08:00
Feross Aboukhadijeh
ebb86f728f JavaScript Standard Style
https://github.com/feross/standard
2015-01-26 18:16:01 -08:00
Astro
2b8423b04a server: fix interval unit 2015-01-05 19:55:58 +01:00
Astro
243c94e3d0 server: make onUdpRequest() part of public API
As per https://github.com/feross/bittorrent-tracker/pull/48#issuecomment-66893626
2014-12-14 00:12:21 +01:00
Feross Aboukhadijeh
83b4ecc7f5 Merge branch 'master' into server-ipv6
Conflicts:
	server.js
2014-12-13 14:35:29 -08:00
Feross Aboukhadijeh
37203fb7a6 Merge pull request #49 from feross/reuse-udp
Server: reuse UDP socket
2014-12-13 14:17:21 -08:00
Astro
d79bf92db0 server: ipv6 support 2014-12-13 00:12:47 +01:00
Astro
80da7c50d0 server: reuse udp socket for responses
Reasons:
* Save file-descriptors
* Support clients behind NAT
2014-12-12 17:27:03 +01:00
Astro
2f7a7131d0 server: make onHttpRequest() part of public API 2014-12-12 16:52:13 +01:00
Feross Aboukhadijeh
79068a49cf Use hex info_hash and peer_id throughout 2014-12-12 02:02:11 -08:00
Astro
991363a28c Revert "server _onHttpRequest(): ensure non-empty params"
This reverts commit 74d9139049.

Conflicts:
	server.js

feross commented on 74d9139 5 hours ago
> Do we need to check for empty params here?
>
> _onRequest should return an error via callback because
> params.action is missing. Won't that work?
74d9139049 (commitcomment-8937428)
2014-12-12 02:57:01 +01:00
Feross Aboukhadijeh
edb5c6e854 code style 2014-12-11 12:53:39 -08: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
7a417a591d parseUdpRequest(): fix params.ip 2014-12-11 16:11:12 +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
Feross Aboukhadijeh
2824f16c49 don't assume peer var will exist 2014-11-26 17:40:34 +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
01286e2ee7 listen() without port picks random port 2014-08-16 19:05:56 -07:00
Feross Aboukhadijeh
3d3c0d44d0 better 'listening' event handling 2014-08-06 22:35:43 -07:00
Feross Aboukhadijeh
a8ad0ca1fd handle numWant === 0 2014-08-03 02:28:54 -07:00
Feross Aboukhadijeh
ea1548abb0 remove extra peer_id check 2014-08-03 01:51:55 -07:00
Feross Aboukhadijeh
ab32d5e7a1 cleanup debug() usage 2014-08-02 14:41:04 -07:00
Feross Aboukhadijeh
ad5c5b6133 lots of little cleanup 2014-08-02 13:43:06 -07:00
Feross Aboukhadijeh
8a6744f276 server: add debug logs 2014-07-20 03:33:33 -07:00
Feross Aboukhadijeh
d1ac7d930e listen for error on udp socket 2014-07-13 15:28:23 -07:00
Feross Aboukhadijeh
24c8535792 tracker returns warnings for non-fatal conditions 2014-07-12 18:56:25 -07:00
Feross Aboukhadijeh
be875c40af Fix serious client+server encoding error (fix #32) 2014-07-12 18:44:41 -07:00
Feross Aboukhadijeh
65c44e81f7 http server: error on invalid peer_id 2014-07-12 18:40:52 -07:00
Feross Aboukhadijeh
a685cb8088 Servers should obey the numWant parameter (fix #21) 2014-07-11 03:51:29 -07:00
Feross Aboukhadijeh
b4928f001a Server perf: Use binary info_hash strings (fix #29) 2014-07-10 22:05:56 -07:00
Feross Aboukhadijeh
ec67f42b14 only /announce and /scrape are valid endpoints 2014-07-10 21:30:17 -07:00
Feross Aboukhadijeh
23d2c02fe6 Support scrape without info_hash specified (Fix #28) 2014-07-10 21:30:10 -07:00