Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/webtorrent/webtorrent.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeross Aboukhadijeh <feross@feross.org>2015-07-28 08:29:33 +0300
committerFeross Aboukhadijeh <feross@feross.org>2015-07-28 08:29:33 +0300
commit4b48bad8766a5215c68451f70250a7f6f7262303 (patch)
treea0aba47a714fe64a8fcb6eddd7960713ca1a4bbb /lib/server.js
parentd721cb80b472c4faf3691fc81d55d968981d3fef (diff)
cmd: --vlc keeps the event loop alive during "graceful exit" stage (fix #388)
Diffstat (limited to 'lib/server.js')
-rw-r--r--lib/server.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/server.js b/lib/server.js
index a9c2542..540794e 100644
--- a/lib/server.js
+++ b/lib/server.js
@@ -1,3 +1,5 @@
+module.exports = Server
+
var debug = require('debug')('webtorrent:server')
var http = require('http')
var mime = require('mime')
@@ -5,13 +7,27 @@ var pump = require('pump')
var rangeParser = require('range-parser')
var url = require('url')
-module.exports = function Server (torrent, opts) {
+function Server (torrent, opts) {
var server = http.createServer(opts)
+ var sockets = []
+
server.on('connection', function (socket) {
socket.setTimeout(36000000)
+ sockets.push(socket)
+ socket.on('close', function () {
+ var index = sockets.indexOf(socket)
+ if (index >= 0) sockets.splice(index, 1)
+ })
})
+ server.destroy = function (cb) {
+ sockets.forEach(function (socket) {
+ socket.destroy()
+ })
+ server.close(cb)
+ }
+
server.on('request', function (req, res) {
debug('onRequest')