aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorWeijia Wang <starkwang@126.com>2018-10-09 16:38:34 +0800
committerAnna Henningsen <anna@addaleax.net>2018-10-12 14:53:36 -0700
commitd7f17b2a6107e25ac343cf11667b3f6b8d48f4a3 (patch)
tree56ee2b3d264a1a5e366b3015eade692ab5cbae18 /lib
parent846cc7e498426d19740331f1f3143afced5bae22 (diff)
downloadandroid-node-v8-d7f17b2a6107e25ac343cf11667b3f6b8d48f4a3.tar.gz
android-node-v8-d7f17b2a6107e25ac343cf11667b3f6b8d48f4a3.tar.bz2
android-node-v8-d7f17b2a6107e25ac343cf11667b3f6b8d48f4a3.zip
http: reduce duplicated code for cleaning parser
PR-URL: https://github.com/nodejs/node/pull/23351 Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/_http_common.js32
1 files changed, 13 insertions, 19 deletions
diff --git a/lib/_http_common.js b/lib/_http_common.js
index b37814f783..8b68d0c815 100644
--- a/lib/_http_common.js
+++ b/lib/_http_common.js
@@ -151,22 +151,13 @@ function parserOnMessageComplete() {
const parsers = new FreeList('parsers', 1000, function parsersCb() {
const parser = new HTTPParser(HTTPParser.REQUEST);
- parser._headers = [];
- parser._url = '';
- parser._consumed = false;
-
- parser.socket = null;
- parser.incoming = null;
- parser.outgoing = null;
-
- parser.maxHeaderPairs = MAX_HEADER_PAIRS;
+ cleanParser(parser);
parser.onIncoming = null;
parser[kOnHeaders] = parserOnHeaders;
parser[kOnHeadersComplete] = parserOnHeadersComplete;
parser[kOnBody] = parserOnBody;
parser[kOnMessageComplete] = parserOnMessageComplete;
- parser[kOnExecute] = null;
return parser;
});
@@ -182,17 +173,9 @@ function closeParserInstance(parser) { parser.close(); }
// should be all that is needed.
function freeParser(parser, req, socket) {
if (parser) {
- parser._headers = [];
- parser._url = '';
- parser.maxHeaderPairs = MAX_HEADER_PAIRS;
- parser.onIncoming = null;
if (parser._consumed)
parser.unconsume();
- parser._consumed = false;
- parser.socket = null;
- parser.incoming = null;
- parser.outgoing = null;
- parser[kOnExecute] = null;
+ cleanParser(parser);
if (parsers.free(parser) === false) {
// Make sure the parser's stack has unwound before deleting the
// corresponding C++ object through .close().
@@ -238,6 +221,17 @@ function checkInvalidHeaderChar(val) {
return headerCharRegex.test(val);
}
+function cleanParser(parser) {
+ parser._headers = [];
+ parser._url = '';
+ parser.socket = null;
+ parser.incoming = null;
+ parser.outgoing = null;
+ parser.maxHeaderPairs = MAX_HEADER_PAIRS;
+ parser[kOnExecute] = null;
+ parser._consumed = false;
+}
+
module.exports = {
_checkInvalidHeaderChar: checkInvalidHeaderChar,
_checkIsHttpToken: checkIsHttpToken,