diff options
Diffstat (limited to 'lib/server.js')
-rw-r--r-- | lib/server.js | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/server.js b/lib/server.js index dd9a529..4b700a2 100644 --- a/lib/server.js +++ b/lib/server.js @@ -12,6 +12,7 @@ function Server (torrent, opts) { var server = http.createServer(opts) var sockets = [] + var closed = false server.on('connection', function (socket) { socket.setTimeout(36000000) @@ -22,11 +23,20 @@ function Server (torrent, opts) { }) }) + var _close = server.close + server.close = function (cb) { + closed = true + _close.call(server, cb) + } + server.destroy = function (cb) { sockets.forEach(function (socket) { socket.destroy() }) - server.close(cb) + + // Only call `server.close` if user has not called it already + if (closed) process.nextTick(cb) + else server.close(cb) } server.on('request', function (req, res) { |