summaryrefslogtreecommitdiff
path: root/lib/_http_common.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_http_common.js')
-rw-r--r--lib/_http_common.js10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/_http_common.js b/lib/_http_common.js
index b4caf5939e..a7e8b0c59b 100644
--- a/lib/_http_common.js
+++ b/lib/_http_common.js
@@ -34,6 +34,7 @@ const {
const debug = require('util').debuglog('http');
+const kIncomingMessage = Symbol('IncomingMessage');
const kOnHeaders = HTTPParser.kOnHeaders | 0;
const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;
const kOnBody = HTTPParser.kOnBody | 0;
@@ -73,7 +74,11 @@ function parserOnHeadersComplete(versionMajor, versionMinor, headers, method,
parser._url = '';
}
- parser.incoming = new IncomingMessage(parser.socket);
+ // Parser is also used by http client
+ var ParserIncomingMessage = parser.socket && parser.socket.server ?
+ parser.socket.server[kIncomingMessage] : IncomingMessage;
+
+ parser.incoming = new ParserIncomingMessage(parser.socket);
parser.incoming.httpVersionMajor = versionMajor;
parser.incoming.httpVersionMinor = versionMinor;
parser.incoming.httpVersion = `${versionMajor}.${versionMinor}`;
@@ -300,5 +305,6 @@ module.exports = {
freeParser,
httpSocketSetup,
methods,
- parsers
+ parsers,
+ kIncomingMessage
};