Catch errors where header contains invalid characters

pull/315/head
Tim Robinson 2016-06-08 19:45:36 +00:00
rodzic 9fee4dc0b8
commit 700c8b7358
1 zmienionych plików z 27 dodań i 17 usunięć

Wyświetl plik

@ -162,24 +162,34 @@ define(function(require, exports, module) {
} }
debug("proxy call %s", url); debug("proxy call %s", url);
httpModule.get({ try {
path: parsedUrl.path, httpModule.get({
hostname: parsedUrl.hostname, path: parsedUrl.path,
port: parsedUrl.port, hostname: parsedUrl.hostname,
headers: req.headers port: parsedUrl.port,
}, function(request) { headers: req.headers
if (request.statusCode >= 400) }, function(request) {
handleError(request); if (request.statusCode >= 400)
else if (isDir) handleError(request);
serveListing(request); else if (isDir)
else if (request.headers["content-type"] == "text/html") serveListing(request);
serveHtml(request, parsedUrl.hostname, req); else if (request.headers["content-type"] == "text/html")
else serveHtml(request, parsedUrl.hostname, req);
serveFile(request); else
}).on("error", function(err) { serveFile(request);
}).on("error", function(err) {
metrics.increment("preview.failed.error");
next(err);
});
} catch (e) {
logError(new Error("httpModule.get threw unexpected error"), {
message: e.message,
url: url,
headers: req.headers
});
metrics.increment("preview.failed.error"); metrics.increment("preview.failed.error");
next(err); return next(new error.BadRequest(e.message));
}); }
function handleError(request) { function handleError(request) {
var body = ""; var body = "";