From 81c007ccbe0785d21a37f65cd86c5dfd926f7cbd Mon Sep 17 00:00:00 2001 From: Jarred Sumner Date: Mon, 14 Oct 2024 20:53:44 -0700 Subject: [PATCH] Update http.ts --- src/js/node/http.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/js/node/http.ts b/src/js/node/http.ts index 67158f32c9..c5e6f2f119 100644 --- a/src/js/node/http.ts +++ b/src/js/node/http.ts @@ -1260,8 +1260,10 @@ const IncomingMessagePrototype = { _finish() { this.emit("prefinish"); }, - _destroy(err, cb) { - if (!this.readableEnded || !this.complete) { + _destroy: function IncomingMessage_destroy(err, cb) { + const shouldEmitAborted = !this.readableEnded || !this.complete; + + if (shouldEmitAborted) { this[abortedSymbol] = true; // IncomingMessage emits 'aborted'. // Client emits 'abort'. @@ -1281,7 +1283,7 @@ const IncomingMessagePrototype = { nodeHTTPResponse.abort(); } const socket = this.socket; - if (socket && !socket.destroyed && this.aborted) { + if (socket && !socket.destroyed && shouldEmitAborted) { socket.destroy(err); } } else { @@ -1292,11 +1294,11 @@ const IncomingMessagePrototype = { if (streamState === $streamReadable || streamState === $streamWaiting || streamState === $streamWritable) { stream?.cancel?.().catch(nop); } - } - const socket = this[fakeSocketSymbol]; - if (socket) { - socket.destroy(err); + const socket = this[fakeSocketSymbol]; + if (socket && !socket.destroyed && shouldEmitAborted) { + socket.destroy(err); + } } if ($isCallable(cb)) {