http: avoid extra listener
PR-URL: https://github.com/nodejs/node/pull/28705 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
This commit is contained in:
parent
1721034a40
commit
2fd2dd7565
@ -320,10 +320,6 @@ ClientRequest.prototype.abort = function abort() {
|
|||||||
// If we're aborting, we don't care about any more response data.
|
// If we're aborting, we don't care about any more response data.
|
||||||
if (this.res) {
|
if (this.res) {
|
||||||
this.res._dump();
|
this.res._dump();
|
||||||
} else {
|
|
||||||
this.once('response', (res) => {
|
|
||||||
res._dump();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// In the event that we don't have a socket, we will pop out of
|
// In the event that we don't have a socket, we will pop out of
|
||||||
@ -576,12 +572,11 @@ function parserOnIncomingClient(res, shouldKeepAlive) {
|
|||||||
// Add our listener first, so that we guarantee socket cleanup
|
// Add our listener first, so that we guarantee socket cleanup
|
||||||
res.on('end', responseOnEnd);
|
res.on('end', responseOnEnd);
|
||||||
req.on('prefinish', requestOnPrefinish);
|
req.on('prefinish', requestOnPrefinish);
|
||||||
const handled = req.emit('response', res);
|
|
||||||
|
|
||||||
// If the user did not listen for the 'response' event, then they
|
// If the user did not listen for the 'response' event, then they
|
||||||
// can't possibly read the data, so we ._dump() it into the void
|
// can't possibly read the data, so we ._dump() it into the void
|
||||||
// so that the socket doesn't hang there in a paused state.
|
// so that the socket doesn't hang there in a paused state.
|
||||||
if (!handled)
|
if (req.aborted || !req.emit('response', res))
|
||||||
res._dump();
|
res._dump();
|
||||||
|
|
||||||
if (method === 'HEAD')
|
if (method === 'HEAD')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user