From e1e4d86941a24157aadbca75ea02929421867d9a Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sat, 6 Jun 2015 00:05:37 +0000 Subject: [PATCH] slightly better debugging --- lib/vhost-sni-server.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/vhost-sni-server.js b/lib/vhost-sni-server.js index 976cfda..8590dcc 100644 --- a/lib/vhost-sni-server.js +++ b/lib/vhost-sni-server.js @@ -29,14 +29,24 @@ module.exports.create = function (securePort, certsPath, vhostsdir) { return dummyCerts; } - function handleAppScopedError(domaininfo, req, res, fn) { + function handleAppScopedError(tag, domaininfo, req, res, fn) { function next(err) { if (!err) { fn(req, res); return; } - console.error(err); + if (res.headersSent) { + console.error('[ERROR] handleAppScopedError headersSent'); + console.log(err); + console.log(err.stack); + return; + } + + console.error('[ERROR] handleAppScopedError'); + console.log(err); + console.log(err.stack); + res.writeHead(500); res.end( "" @@ -61,9 +71,6 @@ module.exports.create = function (securePort, certsPath, vhostsdir) { + "" + "" ); - - // for debugging only - throw err; } return next; @@ -140,15 +147,15 @@ module.exports.create = function (securePort, certsPath, vhostsdir) { // we always add it explicitly function localAppWrapped(req, res) { console.log('[debug]', domaininfo.hostname + '/' + domaininfo.pathname, req.url); - localApp(req, res, handleAppScopedError(domaininfo, req, res, function (req, res) { + localApp(req, res, handleAppScopedError('localApp', domaininfo, req, res, function (req, res) { if (!serveFavicon) { serveFavicon = require('serve-favicon')(path.join(__dirname, '..', 'public', 'favicon.ico')); } // TODO redirect GET /favicon.ico to GET (req.headers.referer||'') + /favicon.ico // TODO other common root things - robots.txt, app-icon, etc - serveFavicon(req, res, handleAppScopedError(domaininfo, req, res, function (req, res) { - connectContext.static(req, res, handleAppScopedError(domaininfo, req, res, function (req, res) { + serveFavicon(req, res, handleAppScopedError('serveFavicon', domaininfo, req, res, function (req, res) { + connectContext.static(req, res, handleAppScopedError('connect.static', domaininfo, req, res, function (req, res) { res.writeHead(404); res.end( ""