diff --git a/include/transport/networkpluginserver.h b/include/transport/networkpluginserver.h index 83b35b991544e4f3df77fbf8e2ef1343085c0b5b..c1edda8f4be0f0b0ff58f47a38e211b55f1e1423 100644 --- a/include/transport/networkpluginserver.h +++ b/include/transport/networkpluginserver.h @@ -38,6 +38,7 @@ class LocalBuddy; class Config; class NetworkConversation; class VCardResponder; +class RosterResponder; class NetworkPluginServer { public: @@ -83,6 +84,7 @@ class NetworkPluginServer { UserManager *m_userManager; VCardResponder *m_vcardResponder; + RosterResponder *m_rosterResponder; Config *m_config; boost::shared_ptr m_server; std::list m_clients; diff --git a/src/rosterresponder.h b/include/transport/rosterresponder.h similarity index 90% rename from src/rosterresponder.h rename to include/transport/rosterresponder.h index c4208feae9962e225ed1809fd44677a2460c8041..4fd3aebc36aa57c635534ab60f2df7ed36c1e0ae 100644 --- a/src/rosterresponder.h +++ b/include/transport/rosterresponder.h @@ -27,18 +27,16 @@ namespace Transport { -class StorageBackend; class UserManager; class RosterResponder : public Swift::Responder { public: - RosterResponder(Swift::IQRouter *router, StorageBackend *storageBackend, UserManager *userManager); + RosterResponder(Swift::IQRouter *router, UserManager *userManager); ~RosterResponder(); private: virtual bool handleGetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr payload); virtual bool handleSetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, boost::shared_ptr payload); - StorageBackend *m_storageBackend; UserManager *m_userManager; }; diff --git a/include/transport/usermanager.h b/include/transport/usermanager.h index cff900272eae2d7021ec4fe4c4211d78efbaa877..153be1bf1c9c0d39cb4c76cc7eb5e68bd47eb1d6 100644 --- a/include/transport/usermanager.h +++ b/include/transport/usermanager.h @@ -83,7 +83,6 @@ class UserManager { Component *m_component; StorageBackend *m_storageBackend; StorageResponder *m_storageResponder; - RosterResponder *m_rosterResponder; friend class RosterResponder; }; diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index 8f06dc0d3bb662f61983c940882a155a4b463266..2e635fcbe7694e992ded5017950e8c2f587d403e 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -29,6 +29,7 @@ #include "transport/config.h" #include "transport/conversation.h" #include "transport/vcardresponder.h" +#include "transport/rosterresponder.h" #include "Swiften/Swiften.h" #include "Swiften/Server/ServerStanzaChannel.h" #include "Swiften/Elements/StreamError.h" @@ -126,6 +127,9 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U m_vcardResponder->onVCardRequired.connect(boost::bind(&NetworkPluginServer::handleVCardRequired, this, _1, _2, _3)); m_vcardResponder->start(); + m_rosterResponder = new RosterResponder(component->getIQRouter(), userManager); + m_rosterResponder->start(); + m_server = component->getFactories()->getConnectionFactory()->createConnectionServer(10000); m_server->onNewConnection.connect(boost::bind(&NetworkPluginServer::handleNewClientConnection, this, _1)); m_server->start(); @@ -138,6 +142,7 @@ NetworkPluginServer::NetworkPluginServer(Component *component, Config *config, U NetworkPluginServer::~NetworkPluginServer() { m_pingTimer->stop(); delete m_vcardResponder; + delete m_rosterResponder; } void NetworkPluginServer::handleNewClientConnection(boost::shared_ptr c) { diff --git a/src/rosterresponder.cpp b/src/rosterresponder.cpp index 68f566a6992a3fb2510a28f92e386adedbf76dc9..3c8554f3d6c72f5cbd1bbaf55115ec68b59ee90f 100644 --- a/src/rosterresponder.cpp +++ b/src/rosterresponder.cpp @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ -#include "rosterresponder.h" +#include "transport/rosterresponder.h" #include #include @@ -33,8 +33,7 @@ using namespace boost; namespace Transport { -RosterResponder::RosterResponder(Swift::IQRouter *router, StorageBackend *storageBackend, UserManager *userManager) : Swift::Responder(router) { - m_storageBackend = storageBackend; +RosterResponder::RosterResponder(Swift::IQRouter *router, UserManager *userManager) : Swift::Responder(router) { m_userManager = userManager; } diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 23f7246974c0046bd2ff90251f6ff4abbdc1b513..57463705f2a58b6a5aadcfc3298feb3e58b278b5 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -25,7 +25,6 @@ #include "transport/conversationmanager.h" #include "transport/rostermanager.h" #include "storageresponder.h" -#include "rosterresponder.h" namespace Transport { @@ -38,9 +37,6 @@ UserManager::UserManager(Component *component, StorageBackend *storageBackend) { m_storageResponder = new StorageResponder(component->getIQRouter(), m_storageBackend, this); m_storageResponder->start(); - m_rosterResponder = new RosterResponder(component->getIQRouter(), m_storageBackend, this); - m_rosterResponder->start(); - component->onUserPresenceReceived.connect(bind(&UserManager::handlePresence, this, _1)); m_component->getStanzaChannel()->onMessageReceived.connect(bind(&UserManager::handleMessageReceived, this, _1)); m_component->getStanzaChannel()->onPresenceReceived.connect(bind(&UserManager::handleGeneralPresenceReceived, this, _1)); @@ -50,7 +46,6 @@ UserManager::UserManager(Component *component, StorageBackend *storageBackend) { UserManager::~UserManager(){ m_storageResponder->stop(); delete m_storageResponder; - delete m_rosterResponder; } void UserManager::addUser(User *user) {