diff --git a/src/reverseproxy.js b/src/reverseproxy.js index 7285ff40a..4cd52049d 100644 --- a/src/reverseproxy.js +++ b/src/reverseproxy.js @@ -170,7 +170,11 @@ function validateCertificate(location, domainObject, certificate) { function reload(callback) { if (process.env.BOX_ENV === 'test') return callback(); - shell.sudo('reload', [ RELOAD_NGINX_CMD ], {}, callback); + shell.sudo('reload', [ RELOAD_NGINX_CMD ], {}, function (error) { + if (error) return callback(new BoxError(BoxError.NGINX_ERROR, error)); + + callback(); + }); } function generateFallbackCertificateSync(domainObject) { @@ -390,7 +394,7 @@ function writeAdminNginxConfig(bundle, configFileName, vhost, callback) { var nginxConf = ejs.render(NGINX_APPCONFIG_EJS, data); var nginxConfigFilename = path.join(paths.NGINX_APPCONFIG_DIR, configFileName); - if (!safe.fs.writeFileSync(nginxConfigFilename, nginxConf)) return callback(safe.error); + if (!safe.fs.writeFileSync(nginxConfigFilename, nginxConf)) return callback(new BoxError(BoxError.FS_ERROR, safe.error)); reload(callback); } @@ -469,7 +473,7 @@ function writeAppNginxConfig(app, bundle, callback) { if (!safe.fs.writeFileSync(nginxConfigFilename, nginxConf)) { debug('Error creating nginx config for "%s" : %s', app.fqdn, safe.error.message); - return callback(safe.error); + return callback(new BoxError(BoxError.FS_ERROR, safe.error)); } reload(callback); @@ -501,7 +505,7 @@ function writeAppRedirectNginxConfig(app, fqdn, bundle, callback) { if (!safe.fs.writeFileSync(nginxConfigFilename, nginxConf)) { debug('Error creating nginx redirect config for "%s" : %s', app.fqdn, safe.error.message); - return callback(safe.error); + return callback(new BoxError(BoxError.FS_ERROR, safe.error)); } reload(callback); @@ -610,7 +614,7 @@ function renewCerts(options, auditSource, progressCallback, callback) { if (appDomain.type === 'webadmin') configureFunc = writeAdminNginxConfig.bind(null, bundle, `${settings.adminFqdn()}.conf`, settings.adminFqdn()); else if (appDomain.type === 'main') configureFunc = writeAppNginxConfig.bind(null, appDomain.app, bundle); else if (appDomain.type === 'alternate') configureFunc = writeAppRedirectNginxConfig.bind(null, appDomain.app, appDomain.fqdn, bundle); - else return iteratorCallback(new Error(`Unknown domain type for ${appDomain.fqdn}. This should never happen`)); + else return iteratorCallback(new BoxError(BoxError.INTERNAL_ERROR, `Unknown domain type for ${appDomain.fqdn}. This should never happen`)); configureFunc(iteratorCallback); }); @@ -646,7 +650,7 @@ function writeDefaultConfig(callback) { var cn = 'cloudron-' + (new Date()).toISOString(); // randomize date a bit to keep firefox happy if (!safe.child_process.execSync(`openssl req -x509 -newkey rsa:2048 -keyout ${keyFilePath} -out ${certFilePath} -days 3650 -subj /CN=${cn} -nodes`)) { debug(`writeDefaultConfig: could not generate certificate: ${safe.error.message}`); - return callback(safe.error); + return callback(new BoxError(BoxError.OPENSSL_ERROR, safe.error)); } }