Added check to make sure writeHead() is called before write(), to prevent silent failure.

This commit is contained in:
Jed Schmidt 2010-03-14 12:36:45 +09:00 committed by Ryan Dahl
parent 49d30c6478
commit 004faf3846

View File

@ -110,6 +110,7 @@ function OutgoingMessage (connection) {
this.use_chunked_encoding_by_default = true;
this.flushing = false;
this.headWritten = false;
this.finished = false;
}
@ -215,6 +216,10 @@ OutgoingMessage.prototype.sendBody = function () {
OutgoingMessage.prototype.write = function (chunk, encoding) {
if ( (this instanceof ServerResponse) && !this.headWritten) {
throw new Error("writeHead() must be called before write()")
}
encoding = encoding || "ascii";
if (this.chunked_encoding) {
this._send(process._byteLength(chunk, encoding).toString(16));
@ -279,6 +284,7 @@ ServerResponse.prototype.writeHead = function (statusCode) {
var status_line = "HTTP/1.1 " + statusCode.toString() + " "
+ reasonPhrase + CRLF;
this.sendHeaderLines(status_line, headers);
this.headWritten = true;
};
// TODO eventually remove sendHeader(), writeHeader()