Skip to content

Commit

Permalink
fix: clear completionTimer on response completion
Browse files Browse the repository at this point in the history
It was breaking `keepAlive` before this.
  • Loading branch information
dbushong committed Jun 7, 2018
1 parent a3fa6ca commit 368d061
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions lib/request.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,18 @@ function requestFunc(options, resolve, reject) {
headers: null,
};

function clearCompletionTimer() {
clearIOTimeout(completionTimer);
completionTimer = null;
}

function failAndAbort(error) {
debug('<- %s %s', error.code || error.statusCode, fullUrl);
clearIOTimeout(connectTimer);
connectTimer = null;
clearIOTimeout(responseTimer);
responseTimer = null;
clearIOTimeout(completionTimer);
completionTimer = null;
clearCompletionTimer();
clearImmediateSafe(socketTimer);
socketTimer = null;

Expand Down Expand Up @@ -219,6 +223,7 @@ function requestFunc(options, resolve, reject) {
resObj = Object.defineProperties(res, resProperties);
resObj.url = fullUrl;
resObj.on('error', failAndAbort);
resObj.on('end', clearCompletionTimer);

if (!isAcceptableStatus(res.statusCode)) {
generateStatusCodeError();
Expand Down Expand Up @@ -287,7 +292,10 @@ function requestFunc(options, resolve, reject) {
reqObj = req;

if (options.completionTimeout > 0) {
setIOTimeout(onCompletionTimedOut, options.completionTimeout);
completionTimer = setIOTimeout(
onCompletionTimedOut,
options.completionTimeout
);
}

req.setTimeout(options.timeout, onSocketTimedOut);
Expand Down

0 comments on commit 368d061

Please sign in to comment.