Allow stream to write on close
authorRyan Dahl <ry@tinyclouds.org>
Mon, 5 Apr 2010 23:50:05 +0000 (16:50 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Mon, 5 Apr 2010 23:50:05 +0000 (16:50 -0700)
benchmark/http_simple.js
doc/index.html
lib/http.js
lib/net.js
test/simple/test-http-1.0.js
test/simple/test-http-cat.js
test/simple/test-http-chunked.js
test/simple/test-http-client-race.js

index 4051577..99685f7 100644 (file)
@@ -49,6 +49,5 @@ http.createServer(function (req, res) {
                   , "Content-Length": content_length
                   }
                 );
-  res.write(body);
-  res.close();
+  res.close(body, 'ascii');
 }).listen(8000);
index e93e036..7c5f81f 100644 (file)
@@ -47,8 +47,7 @@ var sys = require('sys'),
 http.createServer(function (req, res) {
   setTimeout(function () {
     res.writeHead(200, {'Content-Type': 'text/plain'});
-    res.write('Hello World');
-    res.close();
+    res.close('Hello World');
   }, 2000);
 }).listen(8000);
 sys.puts('Server running at http://127.0.0.1:8000/');</pre>
index da957ea..353c7da 100644 (file)
@@ -372,7 +372,8 @@ OutgoingMessage.prototype.finish = function () {
   throw new Error("finish() has been renamed to close().");
 };
 
-OutgoingMessage.prototype.close = function () {
+OutgoingMessage.prototype.close = function (data, encoding) {
+  if (data) this.write(data, encoding);
   if (this.chunkedEncoding) this._send("0\r\n\r\n"); // last chunk
   this.finished = true;
   this.flush();
index 41f2be0..0e04cc4 100644 (file)
@@ -713,7 +713,8 @@ Stream.prototype._shutdown = function () {
 };
 
 
-Stream.prototype.close = function () {
+Stream.prototype.close = function (data, encoding) {
+  if (data) this.write(data, encoding);
   if (this.writable) {
     if (this._writeQueueLast() != END_OF_FILE) {
       this._writeQueue.push(END_OF_FILE);
index 105acdc..3a8cd0e 100644 (file)
@@ -8,8 +8,7 @@ var client_got_eof = false;
 
 var server = http.createServer(function (req, res) {
   res.writeHead(200, {"Content-Type": "text/plain"});
-  res.write(body);
-  res.close();
+  res.close(body);
 })
 server.listen(PORT);
 
index f333b5e..f270ca9 100644 (file)
@@ -8,8 +8,7 @@ var server = http.createServer(function (req, res) {
     ["Content-Length", body.length],
     ["Content-Type", "text/plain"]
   ]);
-  res.write(body);
-  res.close();
+  res.close(body);
 });
 server.listen(PORT);
 
index a3395fc..bb065de 100644 (file)
@@ -5,8 +5,7 @@ var UTF8_STRING = "南越国是前203年至前111年存在于岭南地区的一
 
 var server = http.createServer(function(req, res) {
   res.writeHead(200, {"Content-Type": "text/plain; charset=utf8"});
-  res.write(UTF8_STRING, 'utf8');
-  res.close();
+  res.close(UTF8_STRING, 'utf8');
 });
 server.listen(PORT);
 
index 9076924..b9b0df4 100644 (file)
@@ -10,8 +10,7 @@ var server = http.createServer(function (req, res) {
   res.writeHead(200, { "Content-Type": "text/plain"
                       , "Content-Length": body.length
                       });
-  res.write(body);
-  res.close();
+  res.close(body);
 });
 server.listen(PORT);