From 7067865738d06ea9b649caf06e6c729893fe405d Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 20 Mar 2012 22:06:51 +0100 Subject: [PATCH 1/5] Send admin contac tot user --- spectrum/src/sample.cfg | 2 +- src/usermanager.cpp | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index acdd93f5..d3b4f317 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -8,7 +8,7 @@ backend_host=localhost pidfile=./test.pid # < this option doesn't work yet #backend_port=10001 -admin_username=admin +admin_jid=admin@localhost admin_password=test #cert=server.pfx #patch to PKCS#12 certificate #cert_password=test #password to that certificate if any diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 1845d94e..52e41607 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -152,6 +152,21 @@ void UserManager::handlePresence(Swift::Presence::ref presence) { if (!user) { // Admin user is not legacy network user, so do not create User class instance for him if (m_component->inServerMode() && CONFIG_STRING(m_component->getConfig(), "service.admin_jid") == presence->getFrom().toBare().toString()) { + // Send admin contact to the user. + Swift::RosterPayload::ref payload = Swift::RosterPayload::ref(new Swift::RosterPayload()); + Swift::RosterItemPayload item; + item.setJID(m_component->getJID()); + item.setName("Admin"); + item.setSubscription(Swift::RosterItemPayload::Both); + payload->addItem(item); + + Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(payload, presence->getFrom(), m_component->getIQRouter()); + request->send(); + + Swift::Presence::ref response = Swift::Presence::create(); + response->setTo(presence->getFrom()); + response->setFrom(m_component->getJID()); + m_component->getStanzaChannel()->sendPresence(response); return; } From 9c7d577b0e3aac70f6e1e8ce56f23c8c638c1514 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 20 Mar 2012 22:45:13 +0100 Subject: [PATCH 2/5] define getpid on windows --- plugin/cpp/networkplugin.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin/cpp/networkplugin.cpp b/plugin/cpp/networkplugin.cpp index 94fc82c0..1b7f448c 100644 --- a/plugin/cpp/networkplugin.cpp +++ b/plugin/cpp/networkplugin.cpp @@ -28,6 +28,8 @@ #else #include #include +#include +#define getpid _getpid #endif using namespace log4cxx; From e910508a9cc9cd37f93c3895efe1644b44a89307 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 20 Mar 2012 22:45:41 +0100 Subject: [PATCH 3/5] define getpid on windows --- src/logging.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/logging.cpp b/src/logging.cpp index 19dee6cf..dfc3f447 100644 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -43,6 +43,8 @@ #include "libgen.h" #else #include +#include +#define getpid _getpid #endif using namespace boost::filesystem; From 2bf17991b5fae854bf99d57c716f051b68ec2acd Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 20 Mar 2012 22:51:17 +0100 Subject: [PATCH 4/5] define getpid on windows --- backends/libpurple/main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 39c53627..8defa6b9 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -24,6 +24,11 @@ #include #endif +#ifdef WIN32 +#include +#define getpid _getpid +#endif + using namespace log4cxx; static LoggerPtr logger_libpurple = log4cxx::Logger::getLogger("libpurple"); From 3b4c7b384b0cb96f5b42f47afae5ab2dc92614ca Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 20 Mar 2012 22:58:00 +0100 Subject: [PATCH 5/5] ssize_t on windows... --- backends/libpurple/main.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 8defa6b9..e05ba412 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -25,6 +25,8 @@ #endif #ifdef WIN32 +#include "win32/win32dep.h" +#define ssize_t SSIZE_T #include #define getpid _getpid #endif