diff --git a/src/cron.js b/src/cron.js index e0172ecb6..25e85a6c8 100644 --- a/src/cron.js +++ b/src/cron.js @@ -149,13 +149,8 @@ async function handleSettingsChanged(key, value) { await startJobs(); break; case settings.EXPOSED_LDAP_KEY: - if (value.enabled) { - debug('handleSettingsChanged: starting exposed LDAP'); - await ldap.startExposed(); - } else { - debug('handleSettingsChanged: stopping exposed LDAP'); - await ldap.stopExposed(); - } + if (value.enabled) await ldap.startExposed(); + else await ldap.stopExposed(); break; default: break; diff --git a/src/ldap.js b/src/ldap.js index 19b1b4a9a..f9c12755c 100644 --- a/src/ldap.js +++ b/src/ldap.js @@ -15,7 +15,7 @@ const addonConfigs = require('./addonconfigs.js'), BoxError = require('./boxerror.js'), constants = require('./constants.js'), debug = require('debug')('box:ldap'), - debugExposed = require('debug')('box:ldapExposed'), + debugExposed = require('debug')('box:exposedLdap'), dns = require('./dns.js'), domains = require('./domains.js'), eventlog = require('./eventlog.js'), @@ -698,7 +698,10 @@ async function start() { } async function stop() { - if (gServer) gServer.close(); + if (!gServer) return; + + gServer.close(); + gServer = null; } // FIXME this needs to be restarted if settings changes or dashboard cert got renewed @@ -725,7 +728,7 @@ async function startExposed() { }); gExposedServer.on('error', function (error) { - debugExposed('start: server error ', error); + debugExposed('server startup error ', error); }); gExposedServer.search('ou=users,dc=cloudron', authenticateApp, userSearch); @@ -741,9 +744,15 @@ async function startExposed() { return next(); }); + debugExposed(`starting server on port ${constants.LDAPS_PORT}`); await util.promisify(gExposedServer.listen.bind(gExposedServer))(constants.LDAPS_PORT, '0.0.0.0'); } async function stopExposed() { - if (gExposedServer) gExposedServer.close(); + if (!gExposedServer) return; + + debugExposed('stopping server'); + + gExposedServer.close(); + gExposedServer = null; }