diff options
author | Weijia Wang <starkwang@126.com> | 2018-10-09 16:38:34 +0800 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2018-10-12 14:53:36 -0700 |
commit | d7f17b2a6107e25ac343cf11667b3f6b8d48f4a3 (patch) | |
tree | 56ee2b3d264a1a5e366b3015eade692ab5cbae18 /lib | |
parent | 846cc7e498426d19740331f1f3143afced5bae22 (diff) | |
download | android-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.js | 32 |
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, |