Skip to content

Commit

Permalink
Add guards to every throw-able res.end call
Browse files Browse the repository at this point in the history
  • Loading branch information
isaacs committed Aug 28, 2011
1 parent 62201a0 commit 7bda25b
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions lib/node-http-proxy.js
Original file line number Diff line number Diff line change
Expand Up @@ -404,8 +404,13 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
// then respond with `404` since we do not have a valid proxy target.
//
if (!location) {
res.writeHead(404);
return res.end();
try {
res.writeHead(404);
res.end();
} catch (er) {
console.error("res.writeHead/res.end error: %s", er.message);
}
return;
}

//
Expand Down Expand Up @@ -480,7 +485,11 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
}
}

res.end();
try {
res.end();
} catch (er) {
console.error("res.end error: %s", er.message);
}
}

outgoing = {
Expand Down Expand Up @@ -508,7 +517,12 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {

// `response.statusCode === 304`: No 'data' event and no 'end'
if (response.statusCode === 304) {
return res.end();
try {
res.end();
} catch (er) {
console.error("res.end error: %s", er.message)
}
return;
}

// For each data `chunk` received from the `reverseProxy`
Expand All @@ -520,9 +534,12 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
try {
res.write(chunk);
} catch (er) {
console.error("res.write error: %s", er.message);
try {
res.end();
} catch (er) {}
} catch (er) {
console.error("res.end error: %s", er.message);
}
}
}
});
Expand All @@ -535,7 +552,11 @@ HttpProxy.prototype.proxyRequest = function (req, res, options) {
response.on('end', function () {
if (!errState) {
reverseProxy.removeListener('error', proxyError);
res.end();
try {
res.end();
} catch (er) {
console.error("res.end error: %s", er.message);
}

// Emit the `end` event now that we have completed proxying
self.emit('end', req, res);
Expand Down

0 comments on commit 7bda25b

Please sign in to comment.