diff --git a/src/index.js b/src/index.js index f5f39844e..513b05225 100644 --- a/src/index.js +++ b/src/index.js @@ -387,13 +387,7 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { } }; - socket.prependListener('close', onSocketClose); - - request.on('abort', () => { - socket.removeListener('close', onSocketClose); - }); - - socket.on('data', buf => { + const onData = buf => { properLastChunkReceived = Buffer.compare(buf.slice(-5), LAST_CHUNK) === 0; // Sometimes final 0-length chunk and end of message code are in separate packets @@ -405,6 +399,14 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) { } previousChunk = buf; + }; + + socket.prependListener('close', onSocketClose); + socket.on('data', onData); + + request.on('close', () => { + socket.removeListener('close', onSocketClose); + socket.removeListener('data', onData); }); }); }