summaryrefslogtreecommitdiff
path: root/lib/_http_client.js
diff options
context:
space:
mode:
authorAndrew Johnston <apjohnsto@gmail.com>2018-02-17 19:03:12 +0100
committerLeko <leko.noor@gmail.com>2018-03-02 01:07:41 +0900
commit1980a36dd45997e9dee03fe11688319c2f5c3644 (patch)
treeb86dcbcb6d9d645e2c0312f3a39f221bae2c677e /lib/_http_client.js
parentabd0d79304c97911a343f945dde35113012ed291 (diff)
downloadandroid-node-v8-1980a36dd45997e9dee03fe11688319c2f5c3644.tar.gz
android-node-v8-1980a36dd45997e9dee03fe11688319c2f5c3644.tar.bz2
android-node-v8-1980a36dd45997e9dee03fe11688319c2f5c3644.zip
http: prevent aborted event when already completed
When socket is closed on a response for a request that is being piped to a stream there is a condition where aborted event will be fired to http client when socket is closing and the incomingMessage stream is still set to readable. We need a check for request being complete and to only raise the 'aborted' event on the http client if we have not yet completed reading the response from the server. Fixes: https://github.com/nodejs/node/issues/18756 PR-URL: https://github.com/nodejs/node/pull/18999 Reviewed-By: Shingo Inoue <leko.noor@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib/_http_client.js')
-rw-r--r--lib/_http_client.js2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/_http_client.js b/lib/_http_client.js
index 311da63c5b..db7a01055a 100644
--- a/lib/_http_client.js
+++ b/lib/_http_client.js
@@ -321,7 +321,7 @@ function socketCloseListener() {
var parser = socket.parser;
if (req.res && req.res.readable) {
// Socket closed before we emitted 'end' below.
- req.res.emit('aborted');
+ if (!req.res.complete) req.res.emit('aborted');
var res = req.res;
res.on('end', function() {
res.emit('close');