diff options
author | Felix Geisendörfer <felix@debuggable.com> | 2011-02-20 13:31:37 +0100 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-02-24 12:41:51 -0800 |
commit | f423ec90fc6cfa47baf48485240dd338d61e9307 (patch) | |
tree | 5f25ac5f94515a121e877b411e77a11f67c877a8 | |
parent | 5287703cce59e2ee09c73a851bfdcd018a67926c (diff) | |
download | node-new-f423ec90fc6cfa47baf48485240dd338d61e9307.tar.gz |
In addition to 'aborted' emit 'close' from incoming requests
Closes GH-160.
-rw-r--r-- | lib/http.js | 1 | ||||
-rw-r--r-- | test/simple/test-http-response-close.js | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/lib/http.js b/lib/http.js index 8313c8cc64..5e86a33f0d 100644 --- a/lib/http.js +++ b/lib/http.js @@ -952,6 +952,7 @@ function connectionListener(socket) { while (incoming.length) { var req = incoming.shift(); req.emit('aborted'); + req.emit('close'); } // abort socket._httpMessage ? } diff --git a/test/simple/test-http-response-close.js b/test/simple/test-http-response-close.js new file mode 100644 index 0000000000..7a1b76e299 --- /dev/null +++ b/test/simple/test-http-response-close.js @@ -0,0 +1,34 @@ +var common = require('../common'); +var assert = require('assert'); +var http = require('http'); + +var gotEnd = false; + +var server = http.createServer(function(req, res) { + res.writeHead(200); + res.write('a'); + + req.on('close', function() { + console.error("aborted"); + gotEnd = true; + }); +}); +server.listen(common.PORT); + +server.addListener('listening', function() { + console.error("make req"); + http.get({ + port: common.PORT + }, function(res) { + console.error("got res"); + res.on('data', function(data) { + console.error("destroy res"); + res.destroy(); + server.close(); + }); + }); +}); + +process.on('exit', function() { + assert.ok(gotEnd); +}); |