http: misc cleanup and minor optimizations
PR-URL: https://github.com/nodejs/node/pull/6533 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
This commit is contained in:
parent
175ed520c1
commit
14c76f8671
@ -198,7 +198,6 @@ function freeParser(parser, req, socket) {
|
|||||||
parser[kOnExecute] = null;
|
parser[kOnExecute] = null;
|
||||||
if (parsers.free(parser) === false)
|
if (parsers.free(parser) === false)
|
||||||
parser.close();
|
parser.close();
|
||||||
parser = null;
|
|
||||||
}
|
}
|
||||||
if (req) {
|
if (req) {
|
||||||
req.parser = null;
|
req.parser = null;
|
||||||
|
@ -380,8 +380,7 @@ OutgoingMessage.prototype.getHeader = function getHeader(name) {
|
|||||||
|
|
||||||
if (!this._headers) return;
|
if (!this._headers) return;
|
||||||
|
|
||||||
var key = name.toLowerCase();
|
return this._headers[name.toLowerCase()];
|
||||||
return this._headers[key];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -585,7 +584,6 @@ OutgoingMessage.prototype.end = function end(data, encoding, callback) {
|
|||||||
if (this.connection && data)
|
if (this.connection && data)
|
||||||
this.connection.cork();
|
this.connection.cork();
|
||||||
|
|
||||||
var ret;
|
|
||||||
if (data) {
|
if (data) {
|
||||||
// Normal body write.
|
// Normal body write.
|
||||||
this.write(data, encoding);
|
this.write(data, encoding);
|
||||||
@ -598,6 +596,7 @@ OutgoingMessage.prototype.end = function end(data, encoding, callback) {
|
|||||||
this.emit('finish');
|
this.emit('finish');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var ret;
|
||||||
if (this._hasBody && this.chunkedEncoding) {
|
if (this._hasBody && this.chunkedEncoding) {
|
||||||
ret = this._send('0\r\n' + this._trailer + '\r\n', 'latin1', finish);
|
ret = this._send('0\r\n' + this._trailer + '\r\n', 'latin1', finish);
|
||||||
} else {
|
} else {
|
||||||
@ -677,8 +676,7 @@ OutgoingMessage.prototype._flushOutput = function _flushOutput(socket) {
|
|||||||
var outputCallbacks = this.outputCallbacks;
|
var outputCallbacks = this.outputCallbacks;
|
||||||
socket.cork();
|
socket.cork();
|
||||||
for (var i = 0; i < outputLength; i++) {
|
for (var i = 0; i < outputLength; i++) {
|
||||||
ret = socket.write(output[i], outputEncodings[i],
|
ret = socket.write(output[i], outputEncodings[i], outputCallbacks[i]);
|
||||||
outputCallbacks[i]);
|
|
||||||
}
|
}
|
||||||
socket.uncork();
|
socket.uncork();
|
||||||
|
|
||||||
|
@ -88,6 +88,8 @@ function ServerResponse(req) {
|
|||||||
if (req.method === 'HEAD') this._hasBody = false;
|
if (req.method === 'HEAD') this._hasBody = false;
|
||||||
|
|
||||||
this.sendDate = true;
|
this.sendDate = true;
|
||||||
|
this._sent100 = false;
|
||||||
|
this._expect_continue = false;
|
||||||
|
|
||||||
if (req.httpVersionMajor < 1 || req.httpVersionMinor < 1) {
|
if (req.httpVersionMajor < 1 || req.httpVersionMinor < 1) {
|
||||||
this.useChunkedEncodingByDefault = chunkExpression.test(req.headers.te);
|
this.useChunkedEncodingByDefault = chunkExpression.test(req.headers.te);
|
||||||
@ -195,8 +197,7 @@ function writeHead(statusCode, reason, obj) {
|
|||||||
if (common._checkInvalidHeaderChar(this.statusMessage))
|
if (common._checkInvalidHeaderChar(this.statusMessage))
|
||||||
throw new Error('Invalid character in statusMessage.');
|
throw new Error('Invalid character in statusMessage.');
|
||||||
|
|
||||||
var statusLine = 'HTTP/1.1 ' + statusCode.toString() + ' ' +
|
var statusLine = 'HTTP/1.1 ' + statusCode + ' ' + this.statusMessage + CRLF;
|
||||||
this.statusMessage + CRLF;
|
|
||||||
|
|
||||||
if (statusCode === 204 || statusCode === 304 ||
|
if (statusCode === 204 || statusCode === 304 ||
|
||||||
(100 <= statusCode && statusCode <= 199)) {
|
(100 <= statusCode && statusCode <= 199)) {
|
||||||
@ -232,7 +233,7 @@ function Server(requestListener) {
|
|||||||
net.Server.call(this, { allowHalfOpen: true });
|
net.Server.call(this, { allowHalfOpen: true });
|
||||||
|
|
||||||
if (requestListener) {
|
if (requestListener) {
|
||||||
this.addListener('request', requestListener);
|
this.on('request', requestListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
/* eslint-disable max-len */
|
||||||
@ -242,7 +243,7 @@ function Server(requestListener) {
|
|||||||
/* eslint-enable max-len */
|
/* eslint-enable max-len */
|
||||||
this.httpAllowHalfOpen = false;
|
this.httpAllowHalfOpen = false;
|
||||||
|
|
||||||
this.addListener('connection', connectionListener);
|
this.on('connection', connectionListener);
|
||||||
|
|
||||||
this.timeout = 2 * 60 * 1000;
|
this.timeout = 2 * 60 * 1000;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user