Fix bug where http response.readable was never set to false
authorAbe Fettig <abe@fettig.net>
Thu, 31 Mar 2011 21:02:14 +0000 (17:02 -0400)
committerRyan Dahl <ry@tinyclouds.org>
Tue, 12 Apr 2011 21:55:18 +0000 (14:55 -0700)
Closes GH-867.

lib/http.js
test/simple/test-http-response-readable.js [new file with mode: 0644]

index d10f58d9ed691da0762b49d42c909991995f3848..1e7512d5425f4596cd0c8a062ef2dbf2a453a77d 100644 (file)
@@ -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 (file)
index 0000000..d0adfe3
--- /dev/null
@@ -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();
+    });
+  });
+});
+