diff --git a/src/cloudron.js b/src/cloudron.js index c3b4c91c7..87331305f 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -135,7 +135,7 @@ function initialize(callback) { function uninitialize(callback) { assert.strictEqual(typeof callback, 'function'); - callback(null); + mailer.stop(callback); } function onConfigured(callback) { @@ -144,7 +144,8 @@ function onConfigured(callback) { async.series([ addDnsRecords, configureAdmin, - platform.restartMail + platform.restartMail, + mailer.start ], callback); } diff --git a/src/mailer.js b/src/mailer.js index cef21cb92..5a9733f9f 100644 --- a/src/mailer.js +++ b/src/mailer.js @@ -1,8 +1,8 @@ 'use strict'; exports = module.exports = { - initialize: initialize, - uninitialize: uninitialize, + start: start, + stop: stop, userAdded: userAdded, userRemoved: userRemoved, @@ -35,7 +35,6 @@ exports = module.exports = { var assert = require('assert'), async = require('async'), - cloudron = require('./cloudron.js'), config = require('./config.js'), debug = require('debug')('box:mailer'), dns = require('native-dns'), @@ -57,23 +56,17 @@ var gMailQueue = [ ], gDnsReady = false, gCheckDnsTimerId = null; -function initialize(callback) { +function start(callback) { assert.strictEqual(typeof callback, 'function'); - if (cloudron.getConfigStateSync().configured) { - checkDns(); - } else { - cloudron.events.on(cloudron.EVENT_CONFIGURED, checkDns); - } + checkDns(); callback(null); } -function uninitialize(callback) { +function stop(callback) { assert.strictEqual(typeof callback, 'function'); - cloudron.events.removeListener(cloudron.EVENT_CONFIGURED, checkDns); - // TODO: interrupt processQueue as well clearTimeout(gCheckDnsTimerId); gCheckDnsTimerId = null; diff --git a/src/server.js b/src/server.js index cc8aa74a9..76358bcce 100644 --- a/src/server.js +++ b/src/server.js @@ -17,7 +17,6 @@ var assert = require('assert'), eventlog = require('./eventlog.js'), express = require('express'), http = require('http'), - mailer = require('./mailer.js'), middleware = require('./middleware'), passport = require('passport'), path = require('path'), @@ -273,7 +272,6 @@ function start(callback) { cloudron.configureAdmin, // keep this before cron to block heartbeats until cert is ready platform.initialize, taskmanager.initialize, - mailer.initialize, cron.initialize, gHttpServer.listen.bind(gHttpServer, config.get('port'), '127.0.0.1'), gSysadminHttpServer.listen.bind(gSysadminHttpServer, config.get('sysadminPort'), '127.0.0.1'), @@ -292,7 +290,6 @@ function stop(callback) { taskmanager.uninitialize, platform.uninitialize, cron.uninitialize, - mailer.uninitialize, database.uninitialize, gHttpServer.close.bind(gHttpServer), gSysadminHttpServer.close.bind(gSysadminHttpServer)