summaryrefslogtreecommitdiff
path: root/lib/_http_client.js
diff options
context:
space:
mode:
authorfengmk2 <fengmk2@gmail.com>2017-07-18 11:05:05 +0800
committerTobias Nießen <tniessen@tnie.de>2017-08-16 12:27:43 +0200
commit620ba416940299fbad3e40258bb8fd99279ec8c5 (patch)
treea0771eea698aed5092b26832ec8ecbbbf456a280 /lib/_http_client.js
parente96b94970a0db7f9081594081a19c459731f4571 (diff)
downloadandroid-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.js8
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;