diff --git a/lib/http.js b/lib/http.js index d10f58d9ed6..1e7512d5425 100644 --- a/lib/http.js +++ b/lib/http.js @@ -129,6 +129,7 @@ var parsers = new FreeList('parsers', 1000, function() { } if (!parser.incoming.upgrade) { // For upgraded connections, also emit this after parser.execute + parser.incoming.readable = false; parser.incoming.emit('end'); } }; diff --git a/test/simple/test-http-response-readable.js b/test/simple/test-http-response-readable.js new file mode 100644 index 00000000000..d0adfe364c7 --- /dev/null +++ b/test/simple/test-http-response-readable.js @@ -0,0 +1,19 @@ +var common = require('../common'); +var assert = require('assert'); +var http = require('http'); + +var testServer = new http.Server(function(req, res) { + res.writeHead(200); + res.end('Hello world'); +}); + +testServer.listen(common.PORT, function() { + http.get({ port: common.PORT }, function(res) { + assert.equal(res.readable, true, 'res.readable initially true'); + res.on('end', function() { + assert.equal(res.readable, false, 'res.readable set to false after end'); + testServer.close(); + }); + }); +}); +