diff --git a/spectrum/src/frontends/xmpp/XMPPUserManager.cpp b/spectrum/src/frontends/xmpp/XMPPUserManager.cpp index 86acc50b..6f9c92fd 100644 --- a/spectrum/src/frontends/xmpp/XMPPUserManager.cpp +++ b/spectrum/src/frontends/xmpp/XMPPUserManager.cpp @@ -56,6 +56,9 @@ XMPPUserManager::XMPPUserManager(Component *component, UserRegistry *userRegistr m_storageResponder = new StorageResponder(frontend->getIQRouter(), storageBackend, this); m_storageResponder->start(); } + else { + m_storageResponder = NULL; + } m_vcardResponder = new VCardResponder(frontend->getIQRouter(), component->getNetworkFactories(), this); m_vcardResponder->onVCardRequired.connect(boost::bind(&XMPPUserManager::handleVCardRequired, this, _1, _2, _3)); @@ -97,10 +100,16 @@ XMPPUserManager::~XMPPUserManager() { delete m_userRegistration; } + m_gatewayResponder->stop(); delete m_gatewayResponder; + + m_adHocManager->stop(); delete m_adHocManager; - delete m_settings; + + m_vcardResponder->stop(); delete m_vcardResponder; + + m_rosterResponder->stop(); delete m_rosterResponder; } diff --git a/src/NetworkPluginServer.cpp b/src/NetworkPluginServer.cpp index 583e4601..99228c41 100644 --- a/src/NetworkPluginServer.cpp +++ b/src/NetworkPluginServer.cpp @@ -310,6 +310,10 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U } NetworkPluginServer::~NetworkPluginServer() { +#ifndef _WIN32 + signal(SIGCHLD, SIG_IGN); +#endif + for (std::list::const_iterator it = m_clients.begin(); it != m_clients.end(); it++) { LOG4CXX_INFO(logger, "Stopping backend " << *it); std::string message; diff --git a/src/UserManager.cpp b/src/UserManager.cpp index f67409e6..f4746013 100644 --- a/src/UserManager.cpp +++ b/src/UserManager.cpp @@ -65,7 +65,7 @@ UserManager::UserManager(Component *component, UserRegistry *userRegistry, Stora m_removeTimer = m_component->getNetworkFactories()->getTimerFactory()->createTimer(1); } -UserManager::~UserManager(){ +UserManager::~UserManager() { }