Fixes for PR #142

This commit is contained in:
Feross Aboukhadijeh 2016-03-30 00:31:51 -07:00
parent 74f9cda6f9
commit 3cd84411fb
3 changed files with 11 additions and 11 deletions

View File

@ -32,7 +32,7 @@ This module is used by [WebTorrent](http://webtorrent.io).
- Robust and well-tested - Robust and well-tested
- Comprehensive test suite (runs entirely offline, so it's reliable) - Comprehensive test suite (runs entirely offline, so it's reliable)
- Used by popular clients: [WebTorrent](http://webtorrent.io), [peerflix](https://github.com/mafintosh/peerflix), and [playback](https://mafintosh.github.io/playback/) - Used by popular clients: [WebTorrent](http://webtorrent.io), [peerflix](https://github.com/mafintosh/peerflix), and [playback](https://mafintosh.github.io/playback/)
- Web-Based Statistics - Tracker stats avaialable via web interface at `/stats`
Also see [bittorrent-dht](https://github.com/feross/bittorrent-dht). Also see [bittorrent-dht](https://github.com/feross/bittorrent-dht).
@ -144,7 +144,7 @@ var server = new Server({
udp: true, // enable udp server? [default=true] udp: true, // enable udp server? [default=true]
http: true, // enable http server? [default=true] http: true, // enable http server? [default=true]
ws: true, // enable websocket server? [default=true] ws: true, // enable websocket server? [default=true]
stats: true, // enable web-based statistics [default=true] stats: true, // enable web-based statistics? [default=true]
filter: function (infoHash, params, cb) { filter: function (infoHash, params, cb) {
// Blacklist/whitelist function for allowing/disallowing torrents. If this option is // Blacklist/whitelist function for allowing/disallowing torrents. If this option is
// omitted, all torrents are allowed. It is possible to interface with a database or // omitted, all torrents are allowed. It is possible to interface with a database or

View File

@ -20,7 +20,7 @@ var argv = minimist(process.argv.slice(2), {
'udp', 'udp',
'version', 'version',
'ws', 'ws',
'no-stats' 'stats'
], ],
string: [ string: [
'http-hostname', 'http-hostname',
@ -28,7 +28,8 @@ var argv = minimist(process.argv.slice(2), {
'udp6-hostname' 'udp6-hostname'
], ],
default: { default: {
port: 8000 port: 8000,
stats: true
} }
}) })
@ -57,7 +58,7 @@ if (argv.help) {
--http enable http server --http enable http server
--udp enable udp server --udp enable udp server
--ws enable websocket server --ws enable websocket server
--no-stats disable web-based statistics --stats enable web-based statistics (default: true)
-q, --quiet only show error output -q, --quiet only show error output
-s, --silent show no output -s, --silent show no output
-v, --version print the current version -v, --version print the current version
@ -77,12 +78,10 @@ argv.http = allFalsy || argv.http
argv.udp = allFalsy || argv.udp argv.udp = allFalsy || argv.udp
argv.ws = allFalsy || argv.ws argv.ws = allFalsy || argv.ws
argv['no-stats'] = !!argv['no-stats']
var server = new Server({ var server = new Server({
http: argv.http, http: argv.http,
interval: argv.interval, interval: argv.interval,
stats: argv['no-stats'], stats: argv.stats,
trustProxy: argv['trust-proxy'], trustProxy: argv['trust-proxy'],
udp: argv.udp, udp: argv.udp,
ws: argv.ws ws: argv.ws
@ -138,10 +137,10 @@ server.listen(argv.port, hostname, function () {
var wsPort = wsAddr.port var wsPort = wsAddr.port
console.log('WebSocket tracker: ws://' + wsHost + ':' + wsPort) console.log('WebSocket tracker: ws://' + wsHost + ':' + wsPort)
} }
if (server.http && argv['no-stats'] && !argv.quiet) { if (server.http && argv.stats && !argv.quiet) {
var statsAddr = server.http.address() var statsAddr = server.http.address()
var statsHost = statsAddr.address !== '::' ? statsAddr.address : 'localhost' var statsHost = statsAddr.address !== '::' ? statsAddr.address : 'localhost'
var statsPort = statsAddr.port var statsPort = statsAddr.port
console.log('Tracker statistics: http://' + statsHost + ':' + statsPort) console.log('Tracker stats: http://' + statsHost + ':' + statsPort + '/stats')
} }
}) })

View File

@ -31,6 +31,7 @@ inherits(Server, EventEmitter)
* @param {boolean} opts.http start an http server? (default: true) * @param {boolean} opts.http start an http server? (default: true)
* @param {boolean} opts.udp start a udp server? (default: true) * @param {boolean} opts.udp start a udp server? (default: true)
* @param {boolean} opts.ws start a websocket server? (default: true) * @param {boolean} opts.ws start a websocket server? (default: true)
* @param {boolean} opts.stats enable web-based statistics? (default: true)
* @param {function} opts.filter black/whitelist fn for disallowing/allowing torrents * @param {function} opts.filter black/whitelist fn for disallowing/allowing torrents
*/ */
function Server (opts) { function Server (opts) {
@ -128,7 +129,7 @@ function Server (opts) {
} }
// Http handler for '/stats' route // Http handler for '/stats' route
self.http.on('request', function (req, res, opts) { self.http.on('request', function (req, res) {
if (res.headersSent) return if (res.headersSent) return
var infoHashes = Object.keys(self.torrents) var infoHashes = Object.keys(self.torrents)