diff options
author | fengmk2 <fengmk2@gmail.com> | 2017-07-18 11:05:05 +0800 |
---|---|---|
committer | Tobias Nießen <tniessen@tnie.de> | 2017-08-16 12:27:43 +0200 |
commit | 620ba416940299fbad3e40258bb8fd99279ec8c5 (patch) | |
tree | a0771eea698aed5092b26832ec8ecbbbf456a280 /lib/_http_client.js | |
parent | e96b94970a0db7f9081594081a19c459731f4571 (diff) | |
download | android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.tar.gz android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.tar.bz2 android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.zip |
http: don't double-fire the req error event
req.socket._hadError should be set before emitting the error event.
PR-URL: https://github.com/nodejs/node/pull/14659
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'lib/_http_client.js')
-rw-r--r-- | lib/_http_client.js | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/_http_client.js b/lib/_http_client.js index dfcafbf11a..e972a3d5b9 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -373,8 +373,8 @@ function socketCloseListener() { // This socket error fired before we started to // receive a response. The error needs to // fire on the request. - req.emit('error', createHangUpError()); req.socket._hadError = true; + req.emit('error', createHangUpError()); } // Too bad. That output wasn't getting written. @@ -397,10 +397,10 @@ function socketErrorListener(err) { debug('SOCKET ERROR:', err.message, err.stack); if (req) { - req.emit('error', err); // For Safety. Some additional errors might fire later on // and we need to make sure we don't double-fire the error event. req.socket._hadError = true; + req.emit('error', err); } // Handle any pending data @@ -433,8 +433,8 @@ function socketOnEnd() { if (!req.res && !req.socket._hadError) { // If we don't have a response then we know that the socket // ended prematurely and we need to emit an error on the request. - req.emit('error', createHangUpError()); req.socket._hadError = true; + req.emit('error', createHangUpError()); } if (parser) { parser.finish(); @@ -455,8 +455,8 @@ function socketOnData(d) { debug('parse error', ret); freeParser(parser, req, socket); socket.destroy(); - req.emit('error', ret); req.socket._hadError = true; + req.emit('error', ret); } else if (parser.incoming && parser.incoming.upgrade) { // Upgrade or CONNECT var bytesParsed = ret; |