Switch from boost shared pointers to stl shared pointers (#162)
* Swiften 4 support * using standard shared pointers when compiling with Swiften 4
This commit is contained in:
parent
d3919d6a84
commit
6d2f8c1927
153 changed files with 850 additions and 682 deletions
|
@ -11,7 +11,7 @@ before_script:
|
|||
- echo "deb http://packages.spectrum.im/spectrum2/ trusty main" | sudo tee -a /etc/apt/sources.list
|
||||
- echo " deb http://packages.prosody.im/debian trusty main" | sudo tee -a /etc/apt/sources.list
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -y --force-yes prosody ngircd python-sleekxmpp libswiften-dev libprotobuf-dev protobuf-compiler pidgin-dev liblog4cxx10-dev libpopt-dev libboost-dev libboost-signals-dev libboost-system-dev libboost-thread-dev libboost-locale-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-date-time-dev libcppunit-dev libcommuni-dev
|
||||
- sudo apt-get install -y --force-yes prosody ngircd python-sleekxmpp libswiften-dev libprotobuf-dev protobuf-compiler pidgin-dev liblog4cxx10-dev libpopt-dev libboost-dev libboost-signals-dev libboost-system-dev libboost-thread-dev libboost-locale-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev libboost-date-time-dev libcppunit-dev libcommuni-dev libminiupnpc-dev libnatpmp-dev
|
||||
- sudo killall lua5.1
|
||||
install: "pip install --user sleekxmpp"
|
||||
script:
|
||||
|
|
|
@ -75,7 +75,8 @@ if(NOT SWIFTEN_FOUND)
|
|||
set(SWIFTEN_LIBRARY ${SWIFTEN_LIBRARY} "Secur32")
|
||||
set(SWIFTEN_LIBRARY ${SWIFTEN_LIBRARY} "Iphlpapi")
|
||||
set(SWIFTEN_LIBRARY ${SWIFTEN_LIBRARY} "Winscard")
|
||||
message(STATUS "Using swiften: ${SWIFTEN_INCLUDE_DIR} ${SWIFTEN_LIBRARY}")
|
||||
message(STATUS "XXXUsing swiften: ${SWIFTEN_INCLUDE_DIR} ${SWIFTEN_LIBRARY}
|
||||
Version: ${SWIFTEN_VERSION}")
|
||||
endif()
|
||||
|
||||
# FIND BOOST
|
||||
|
@ -484,4 +485,3 @@ if(NOT SQLITE3_FOUND AND NOT MYSQL_FOUND AND NOT PQXX_FOUND)
|
|||
message("Please enable at least one of SQLITE3, MYSQL, PQXX databases to use transport mode.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "transport/Config.h"
|
||||
#include "transport/NetworkPlugin.h"
|
||||
#include "Swiften/Swiften.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <boost/filesystem.hpp>
|
||||
#include "unistd.h"
|
||||
#include "signal.h"
|
||||
|
@ -148,7 +149,7 @@ class FrotzNetworkPlugin : public NetworkPlugin {
|
|||
public:
|
||||
Swift::BoostNetworkFactories *m_factories;
|
||||
Swift::BoostIOServiceThread m_boostIOServiceThread;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
|
||||
FrotzNetworkPlugin(Config *config, Swift::SimpleEventLoop *loop, const std::string &host, int port) : NetworkPlugin() {
|
||||
this->config = config;
|
||||
|
@ -164,7 +165,7 @@ class FrotzNetworkPlugin : public NetworkPlugin {
|
|||
m_conn->write(Swift::createSafeByteArray(string));
|
||||
}
|
||||
|
||||
void _handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void _handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
std::string d(data->begin(), data->end());
|
||||
handleDataRead(d);
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "transport/Config.h"
|
||||
#include "transport/StorageBackend.h"
|
||||
#include "geventloop.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
// #include "valgrind/memcheck.h"
|
||||
#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
||||
|
@ -82,7 +83,7 @@ static void transportDataReceived(gpointer data, gint source, PurpleInputConditi
|
|||
|
||||
class SpectrumNetworkPlugin;
|
||||
|
||||
boost::shared_ptr<Config> config;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Config> config;
|
||||
SpectrumNetworkPlugin *np;
|
||||
StorageBackend *storagebackend;
|
||||
|
||||
|
@ -2260,7 +2261,7 @@ int main(int argc, char **argv) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
config = boost::shared_ptr<Config>(cfg);
|
||||
config = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Config>(cfg);
|
||||
|
||||
Logging::initBackendLogging(config.get());
|
||||
if (CONFIG_STRING(config, "service.protocol") == "prpl-hangouts") {
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "transport/PQXXBackend.h"
|
||||
#include "transport/StorageBackend.h"
|
||||
#include "Swiften/Swiften.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <boost/filesystem.hpp>
|
||||
#include "unistd.h"
|
||||
#include "signal.h"
|
||||
|
@ -45,7 +46,7 @@ class SMSNetworkPlugin : public NetworkPlugin {
|
|||
public:
|
||||
Swift::BoostNetworkFactories *m_factories;
|
||||
Swift::BoostIOServiceThread m_boostIOServiceThread;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
Swift::Timer::ref m_timer;
|
||||
int m_internalUser;
|
||||
StorageBackend *storageBackend;
|
||||
|
@ -169,7 +170,7 @@ class SMSNetworkPlugin : public NetworkPlugin {
|
|||
m_conn->write(Swift::createSafeByteArray(string));
|
||||
}
|
||||
|
||||
void _handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void _handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
std::string d(data->begin(), data->end());
|
||||
handleDataRead(d);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
// Swiften
|
||||
#include "Swiften/Swiften.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <Swiften/Version.h>
|
||||
#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000)
|
||||
|
||||
|
@ -51,7 +52,7 @@ class ForwardIQHandler : public Swift::IQHandler {
|
|||
m_user = user;
|
||||
}
|
||||
|
||||
bool handleIQ(boost::shared_ptr<Swift::IQ> iq) {
|
||||
bool handleIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq) {
|
||||
if (iq->getPayload<Swift::RosterPayload>() != NULL) {
|
||||
return false;
|
||||
}
|
||||
|
@ -75,7 +76,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
public:
|
||||
Swift::BoostNetworkFactories *m_factories;
|
||||
Swift::BoostIOServiceThread m_boostIOServiceThread;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
bool m_firstPing;
|
||||
|
||||
Swift::FullPayloadSerializerCollection collection;
|
||||
|
@ -106,7 +107,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
}
|
||||
|
||||
// This method has to call handleDataRead with all received data from network plugin server
|
||||
void _handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void _handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
if (m_firstPing) {
|
||||
m_firstPing = false;
|
||||
NetworkPlugin::PluginConfig cfg;
|
||||
|
@ -120,36 +121,36 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
|
||||
void handleStreamStart(const Swift::ProtocolHeader&) {}
|
||||
#if HAVE_SWIFTEN_3
|
||||
void handleElement(boost::shared_ptr<Swift::ToplevelElement> element) {
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ToplevelElement> element) {
|
||||
#else
|
||||
void handleElement(boost::shared_ptr<Swift::Element> element) {
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Element> element) {
|
||||
#endif
|
||||
boost::shared_ptr<Swift::Stanza> stanza = boost::dynamic_pointer_cast<Swift::Stanza>(element);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Stanza> stanza = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Stanza>(element);
|
||||
if (!stanza) {
|
||||
return;
|
||||
}
|
||||
|
||||
std::string user = stanza->getFrom().toBare();
|
||||
|
||||
boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
if (!client)
|
||||
return;
|
||||
|
||||
stanza->setFrom(client->getJID());
|
||||
|
||||
boost::shared_ptr<Swift::Message> message = boost::dynamic_pointer_cast<Swift::Message>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Message>(stanza);
|
||||
if (message) {
|
||||
client->sendMessage(message);
|
||||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Presence> presence = boost::dynamic_pointer_cast<Swift::Presence>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Presence> presence = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Presence>(stanza);
|
||||
if (presence) {
|
||||
client->sendPresence(presence);
|
||||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::IQ> iq = boost::dynamic_pointer_cast<Swift::IQ>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::IQ>(stanza);
|
||||
if (iq) {
|
||||
if (m_handlers[user]->m_id2resource.find(stanza->getID()) != m_handlers[user]->m_id2resource.end()) {
|
||||
std::string resource = m_handlers[user]->m_id2resource[stanza->getID()];
|
||||
|
@ -211,7 +212,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
LOG4CXX_INFO(logger, user << ": Disconnected " << message);
|
||||
handleDisconnected(user, reconnect ? 0 : 3, message);
|
||||
|
||||
boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
if (client) {
|
||||
client->onConnected.disconnect(boost::bind(&SwiftenPlugin::handleSwiftConnected, this, user));
|
||||
client->onDisconnected.disconnect(boost::bind(&SwiftenPlugin::handleSwiftDisconnected, this, user, _1));
|
||||
|
@ -250,7 +251,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
}
|
||||
|
||||
void handleSwiftPresenceChanged(const std::string &user, Swift::Presence::ref presence) {
|
||||
// boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
// SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
// if (client->getMUCRegistry()->isMUC(presence->getFrom().toBare())) {
|
||||
// return;
|
||||
// }
|
||||
|
@ -264,7 +265,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
// std::string message = presence->getStatus();
|
||||
// std::string photo = "";
|
||||
//
|
||||
// boost::shared_ptr<Swift::VCardUpdate> update = presence->getPayload<Swift::VCardUpdate>();
|
||||
// SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCardUpdate> update = presence->getPayload<Swift::VCardUpdate>();
|
||||
// if (update) {
|
||||
// photo = update->getPhotoHash();
|
||||
// }
|
||||
|
@ -305,7 +306,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
if (legacyName.find("/") == std::string::npos) {
|
||||
jid = Swift::JID(legacyName + "/Spectrum");
|
||||
}
|
||||
boost::shared_ptr<Swift::Client> client = boost::make_shared<Swift::Client>(jid, password, m_factories);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::Client>(jid, password, m_factories);
|
||||
m_users[user] = client;
|
||||
client->setAlwaysTrustCertificates();
|
||||
client->onConnected.connect(boost::bind(&SwiftenPlugin::handleSwiftConnected, this, user));
|
||||
|
@ -321,7 +322,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
opt.allowPLAINWithoutTLS = true;
|
||||
client->connect(opt);
|
||||
|
||||
boost::shared_ptr<ForwardIQHandler> handler = boost::make_shared<ForwardIQHandler>(this, user);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ForwardIQHandler> handler = SWIFTEN_SHRPTR_NAMESPACE::make_shared<ForwardIQHandler>(this, user);
|
||||
client->getIQRouter()->addHandler(handler);
|
||||
m_handlers[user] = handler;
|
||||
}
|
||||
|
@ -339,7 +340,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
}
|
||||
|
||||
void handleLogoutRequest(const std::string &user, const std::string &legacyName) {
|
||||
boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
if (client) {
|
||||
client->onConnected.disconnect(boost::bind(&SwiftenPlugin::handleSwiftConnected, this, user));
|
||||
// client->onDisconnected.disconnect(boost::bind(&SwiftenPlugin::handleSwiftDisconnected, this, user, _1));
|
||||
|
@ -357,7 +358,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
}
|
||||
|
||||
void handleBuddyUpdatedRequest(const std::string &user, const std::string &buddyName, const std::string &alias, const std::vector<std::string> &groups) {
|
||||
boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
if (client) {
|
||||
LOG4CXX_INFO(logger, user << ": Added/Updated buddy " << buddyName << ".");
|
||||
if (!client->getRoster()->containsJID(buddyName) || client->getRoster()->getSubscriptionStateForJID(buddyName) != Swift::RosterItemPayload::Both) {
|
||||
|
@ -365,7 +366,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
item.setName(alias);
|
||||
item.setJID(buddyName);
|
||||
item.setGroups(groups);
|
||||
boost::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
roster->addItem(item);
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(roster, client->getIQRouter());
|
||||
// request->onResponse.connect(boost::bind(&RosterController::handleRosterSetError, this, _1, roster));
|
||||
|
@ -376,7 +377,7 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
Swift::JID contact(buddyName);
|
||||
Swift::RosterItemPayload item(contact, alias, client->getRoster()->getSubscriptionStateForJID(contact));
|
||||
item.setGroups(groups);
|
||||
boost::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
roster->addItem(item);
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(roster, client->getIQRouter());
|
||||
// request->onResponse.connect(boost::bind(&RosterController::handleRosterSetError, this, _1, roster));
|
||||
|
@ -387,10 +388,10 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
}
|
||||
|
||||
void handleBuddyRemovedRequest(const std::string &user, const std::string &buddyName, const std::vector<std::string> &groups) {
|
||||
boost::shared_ptr<Swift::Client> client = m_users[user];
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> client = m_users[user];
|
||||
if (client) {
|
||||
Swift::RosterItemPayload item(buddyName, "", Swift::RosterItemPayload::Remove);
|
||||
boost::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::RosterPayload> roster(new Swift::RosterPayload());
|
||||
roster->addItem(item);
|
||||
Swift::SetRosterRequest::ref request = Swift::SetRosterRequest::create(roster, client->getIQRouter());
|
||||
// request->onResponse.connect(boost::bind(&RosterController::handleRosterSetError, this, _1, roster));
|
||||
|
@ -408,8 +409,8 @@ class SwiftenPlugin : public NetworkPlugin, Swift::XMPPParserClient {
|
|||
|
||||
private:
|
||||
Config *config;
|
||||
std::map<std::string, boost::shared_ptr<Swift::Client> > m_users;
|
||||
std::map<std::string, boost::shared_ptr<ForwardIQHandler> > m_handlers;
|
||||
std::map<std::string, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Client> > m_users;
|
||||
std::map<std::string, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ForwardIQHandler> > m_handlers;
|
||||
};
|
||||
|
||||
#ifndef WIN32
|
||||
|
|
|
@ -31,7 +31,7 @@ void Plugin::sendData(const std::string &string) {
|
|||
}
|
||||
|
||||
// This method has to call handleDataRead with all received data from network plugin server
|
||||
void Plugin::_handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void Plugin::_handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
std::string d(data->begin(), data->end());
|
||||
handleDataRead(d);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "Swiften/Swiften.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include "transport/Config.h"
|
||||
#include "transport/NetworkPlugin.h"
|
||||
|
@ -24,11 +25,11 @@ class Plugin : public Transport::NetworkPlugin {
|
|||
|
||||
private:
|
||||
// This method has to call handleDataRead with all received data from network plugin server
|
||||
void _handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data);
|
||||
void _handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data);
|
||||
|
||||
private:
|
||||
Swift::BoostNetworkFactories *m_factories;
|
||||
Swift::BoostIOServiceThread m_boostIOServiceThread;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
Transport::Config *config;
|
||||
};
|
||||
|
|
|
@ -87,7 +87,7 @@ TwitterPlugin::TwitterPlugin(Config *config, Swift::SimpleEventLoop *loop, Stora
|
|||
message_timer->start();
|
||||
|
||||
#if HAVE_SWIFTEN_3
|
||||
cryptoProvider = boost::shared_ptr<Swift::CryptoProvider>(Swift::PlatformCryptoProvider::create());
|
||||
cryptoProvider = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::CryptoProvider>(Swift::PlatformCryptoProvider::create());
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -109,7 +109,7 @@ void TwitterPlugin::sendData(const std::string &string)
|
|||
}
|
||||
|
||||
// Receive date from the NetworkPlugin server and invoke the appropirate payload handler (implement in the NetworkPlugin class)
|
||||
void TwitterPlugin::_handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data)
|
||||
void TwitterPlugin::_handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data)
|
||||
{
|
||||
if (m_firstPing) {
|
||||
m_firstPing = false;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "transport/ThreadPool.h"
|
||||
|
||||
#include "Swiften/Swiften.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#ifndef _WIN32
|
||||
#include "unistd.h"
|
||||
#include "signal.h"
|
||||
|
@ -55,9 +56,9 @@ class TwitterPlugin : public NetworkPlugin {
|
|||
public:
|
||||
Swift::BoostNetworkFactories *m_factories;
|
||||
Swift::BoostIOServiceThread m_boostIOServiceThread;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
#if HAVE_SWIFTEN_3
|
||||
boost::shared_ptr<Swift::CryptoProvider> cryptoProvider;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::CryptoProvider> cryptoProvider;
|
||||
#endif
|
||||
Swift::Timer::ref tweet_timer;
|
||||
Swift::Timer::ref message_timer;
|
||||
|
@ -70,7 +71,7 @@ class TwitterPlugin : public NetworkPlugin {
|
|||
void sendData(const std::string &string);
|
||||
|
||||
// Receive date from the NetworkPlugin server and invoke the appropirate payload handler (implement in the NetworkPlugin class)
|
||||
void _handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data);
|
||||
void _handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data);
|
||||
|
||||
// User trying to login into his twitter account
|
||||
void handleLoginRequest(const std::string &user, const std::string &legacyName, const std::string &password);
|
||||
|
|
|
@ -5,6 +5,7 @@ if( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR )
|
|||
find_program(SWIFTEN_CONFIG_EXECUTABLE NAMES swiften-config DOC "swiften-config executable" HINTS ../bin)
|
||||
set( SWIFTEN_CFLAGS "" )
|
||||
if (SWIFTEN_CONFIG_EXECUTABLE)
|
||||
# Libs
|
||||
execute_process(
|
||||
COMMAND ${SWIFTEN_CONFIG_EXECUTABLE} --libs
|
||||
OUTPUT_VARIABLE SWIFTEN_LIB)
|
||||
|
@ -29,7 +30,21 @@ if( SWIFTEN_LIBRARY AND SWIFTEN_INCLUDE_DIR )
|
|||
else()
|
||||
list(APPEND SWIFTEN_LIBRARY ${f})
|
||||
endif()
|
||||
endforeach(f)
|
||||
endforeach(f)
|
||||
|
||||
# Version
|
||||
execute_process(
|
||||
COMMAND ${SWIFTEN_CONFIG_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE SWIFTEN_VERSION)
|
||||
string(REGEX REPLACE "[\r\n]" " " SWIFTEN_VERSION "${SWIFTEN_VERSION}")
|
||||
string(REGEX REPLACE " +$" "" SWIFTEN_VERSION "${SWIFTEN_VERSION}")
|
||||
string(REGEX REPLACE "swiften-config " "" SWIFTEN_VERSION "${SWIFTEN_VERSION}")
|
||||
|
||||
if("${SWIFTEN_VERSION}" STRGREATER "4")
|
||||
message( STATUS "Found Swiften > 4 requesting C++11")
|
||||
add_definitions(-std=c++11)
|
||||
endif()
|
||||
|
||||
set( SWIFTEN_FOUND 1 )
|
||||
else()
|
||||
message( STATUS "Could NOT find swiften-config" )
|
||||
|
|
|
@ -12,10 +12,12 @@
|
|||
|
||||
#include <Swiften/Elements/Payload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class AttentionPayload : public Payload {
|
||||
public:
|
||||
typedef boost::shared_ptr<AttentionPayload> ref;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AttentionPayload> ref;
|
||||
|
||||
public:
|
||||
AttentionPayload();
|
||||
|
|
|
@ -12,12 +12,14 @@
|
|||
|
||||
#include <Swiften/Elements/Payload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
// This payload is NOT part of ANY XEP and it is only
|
||||
// libtransport related extension.
|
||||
namespace Swift {
|
||||
class InvisiblePayload : public Payload {
|
||||
public:
|
||||
typedef boost::shared_ptr<InvisiblePayload> ref;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<InvisiblePayload> ref;
|
||||
|
||||
public:
|
||||
InvisiblePayload();
|
||||
|
|
|
@ -31,30 +31,30 @@ CombinedOutgoingFileTransferManager::~CombinedOutgoingFileTransferManager() {
|
|||
delete idGenerator;
|
||||
}
|
||||
|
||||
boost::shared_ptr<OutgoingFileTransfer> CombinedOutgoingFileTransferManager::createOutgoingFileTransfer(const JID& from, const JID& receipient, boost::shared_ptr<ReadBytestream> readBytestream, const StreamInitiationFileInfo& fileInfo) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<OutgoingFileTransfer> CombinedOutgoingFileTransferManager::createOutgoingFileTransfer(const JID& from, const JID& receipient, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ReadBytestream> readBytestream, const StreamInitiationFileInfo& fileInfo) {
|
||||
// check if receipient support Jingle FT
|
||||
boost::optional<JID> fullJID = highestPriorityJIDSupportingJingle(receipient);
|
||||
if (!fullJID.is_initialized()) {
|
||||
fullJID = highestPriorityJIDSupportingSI(receipient);
|
||||
}
|
||||
else {
|
||||
JingleSessionImpl::ref jingleSession = boost::make_shared<JingleSessionImpl>(from, receipient, idGenerator->generateID(), iqRouter);
|
||||
JingleSessionImpl::ref jingleSession = SWIFTEN_SHRPTR_NAMESPACE::make_shared<JingleSessionImpl>(from, receipient, idGenerator->generateID(), iqRouter);
|
||||
|
||||
//jsManager->getSession(receipient, idGenerator->generateID());
|
||||
assert(jingleSession);
|
||||
jsManager->registerOutgoingSession(from, jingleSession);
|
||||
#if !HAVE_SWIFTEN_3
|
||||
boost::shared_ptr<OutgoingJingleFileTransfer> jingleFT = boost::shared_ptr<OutgoingJingleFileTransfer>(new OutgoingJingleFileTransfer(jingleSession, remoteFactory, localFactory, iqRouter, idGenerator, from, receipient, readBytestream, fileInfo, bytestreamRegistry, bytestreamProxy));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<OutgoingJingleFileTransfer> jingleFT = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<OutgoingJingleFileTransfer>(new OutgoingJingleFileTransfer(jingleSession, remoteFactory, localFactory, iqRouter, idGenerator, from, receipient, readBytestream, fileInfo, bytestreamRegistry, bytestreamProxy));
|
||||
return jingleFT;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!fullJID.is_initialized()) {
|
||||
return boost::shared_ptr<OutgoingFileTransfer>();
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<OutgoingFileTransfer>();
|
||||
}
|
||||
|
||||
// otherwise try SI
|
||||
boost::shared_ptr<MyOutgoingSIFileTransfer> jingleFT = boost::shared_ptr<MyOutgoingSIFileTransfer>(new MyOutgoingSIFileTransfer(idGenerator->generateID(), from, fullJID.get(), fileInfo.getName(), fileInfo.getSize(), fileInfo.getDescription(), readBytestream, iqRouter, bytestreamServer, bytestreamRegistry));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<MyOutgoingSIFileTransfer> jingleFT = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<MyOutgoingSIFileTransfer>(new MyOutgoingSIFileTransfer(idGenerator->generateID(), from, fullJID.get(), fileInfo.getName(), fileInfo.getSize(), fileInfo.getDescription(), readBytestream, iqRouter, bytestreamServer, bytestreamRegistry));
|
||||
// else fail
|
||||
|
||||
return jingleFT;
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
#include <Swiften/JID/JID.h>
|
||||
|
||||
#include "transport/PresenceOracle.h"
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
|
||||
#include <Swiften/Version.h>
|
||||
#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000)
|
||||
|
@ -38,7 +41,7 @@ public:
|
|||
CombinedOutgoingFileTransferManager(JingleSessionManager* jingleSessionManager, IQRouter* router, EntityCapsProvider* capsProvider, RemoteJingleTransportCandidateSelectorFactory* remoteFactory, LocalJingleTransportCandidateGeneratorFactory* localFactory, SOCKS5BytestreamRegistry* bytestreamRegistry, SOCKS5BytestreamProxy* bytestreamProxy, Transport::PresenceOracle* presOracle, SOCKS5BytestreamServer *server);
|
||||
~CombinedOutgoingFileTransferManager();
|
||||
|
||||
boost::shared_ptr<OutgoingFileTransfer> createOutgoingFileTransfer(const JID& from, const JID& to, boost::shared_ptr<ReadBytestream>, const StreamInitiationFileInfo&);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<OutgoingFileTransfer> createOutgoingFileTransfer(const JID& from, const JID& to, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ReadBytestream>, const StreamInitiationFileInfo&);
|
||||
|
||||
private:
|
||||
boost::optional<JID> highestPriorityJIDSupportingJingle(const JID& bareJID);
|
||||
|
|
|
@ -14,9 +14,11 @@
|
|||
#include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h>
|
||||
#include <Swiften/FileTransfer/IBBSendSession.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
MyOutgoingSIFileTransfer::MyOutgoingSIFileTransfer(const std::string& id, const JID& from, const JID& to, const std::string& name, int size, const std::string& description, boost::shared_ptr<ReadBytestream> bytestream, IQRouter* iqRouter, SOCKS5BytestreamServer* socksServer, SOCKS5BytestreamRegistry* registry) : id(id), from(from), to(to), name(name), size(size), description(description), bytestream(bytestream), iqRouter(iqRouter), socksServer(socksServer), registry(registry) {
|
||||
MyOutgoingSIFileTransfer::MyOutgoingSIFileTransfer(const std::string& id, const JID& from, const JID& to, const std::string& name, int size, const std::string& description, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ReadBytestream> bytestream, IQRouter* iqRouter, SOCKS5BytestreamServer* socksServer, SOCKS5BytestreamRegistry* registry) : id(id), from(from), to(to), name(name), size(size), description(description), bytestream(bytestream), iqRouter(iqRouter), socksServer(socksServer), registry(registry) {
|
||||
}
|
||||
|
||||
void MyOutgoingSIFileTransfer::start() {
|
||||
|
@ -69,7 +71,7 @@ void MyOutgoingSIFileTransfer::handleStreamInitiationRequestResponse(StreamIniti
|
|||
request->send();
|
||||
}
|
||||
else if (response->getRequestedMethod() == "http://jabber.org/protocol/ibb") {
|
||||
ibbSession = boost::shared_ptr<IBBSendSession>(new IBBSendSession(id, from, to, bytestream, iqRouter));
|
||||
ibbSession = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IBBSendSession>(new IBBSendSession(id, from, to, bytestream, iqRouter));
|
||||
ibbSession->onFinished.connect(boost::bind(&MyOutgoingSIFileTransfer::handleIBBSessionFinished, this, _1));
|
||||
ibbSession->start();
|
||||
#if !HAVE_SWIFTEN_3
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
#pragma once
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/signals.hpp>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
|
||||
#include <Swiften/FileTransfer/ReadBytestream.h>
|
||||
#include <Swiften/Base/boost_bsignals.h>
|
||||
#include <Swiften/FileTransfer/FileTransferError.h>
|
||||
#include <Swiften/FileTransfer/SOCKS5BytestreamServer.h>
|
||||
#include <Swiften/JID/JID.h>
|
||||
|
@ -28,7 +30,7 @@ namespace Swift {
|
|||
|
||||
class MyOutgoingSIFileTransfer : public OutgoingFileTransfer {
|
||||
public:
|
||||
MyOutgoingSIFileTransfer(const std::string& id, const JID& from, const JID& to, const std::string& name, int size, const std::string& description, boost::shared_ptr<ReadBytestream> bytestream, IQRouter* iqRouter, SOCKS5BytestreamServer* socksServer, SOCKS5BytestreamRegistry* registry);
|
||||
MyOutgoingSIFileTransfer(const std::string& id, const JID& from, const JID& to, const std::string& name, int size, const std::string& description, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ReadBytestream> bytestream, IQRouter* iqRouter, SOCKS5BytestreamServer* socksServer, SOCKS5BytestreamRegistry* registry);
|
||||
|
||||
virtual void start();
|
||||
virtual void stop();
|
||||
|
@ -49,10 +51,10 @@ namespace Swift {
|
|||
std::string name;
|
||||
int size;
|
||||
std::string description;
|
||||
boost::shared_ptr<ReadBytestream> bytestream;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ReadBytestream> bytestream;
|
||||
IQRouter* iqRouter;
|
||||
SOCKS5BytestreamServer* socksServer;
|
||||
boost::shared_ptr<IBBSendSession> ibbSession;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IBBSendSession> ibbSession;
|
||||
SOCKS5BytestreamRegistry *registry;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,12 +6,15 @@
|
|||
|
||||
#include <Swiften/Network/DummyConnectionServer.h>
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/system/system_error.hpp>
|
||||
#include <boost/asio/placeholders.hpp>
|
||||
|
||||
#include <Swiften/EventLoop/EventLoop.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
DummyConnectionServer::DummyConnectionServer(EventLoop* eventLoop) : eventLoop(eventLoop) {
|
||||
|
@ -25,10 +28,10 @@ void DummyConnectionServer::stop() {
|
|||
|
||||
}
|
||||
|
||||
void DummyConnectionServer::acceptConnection(boost::shared_ptr<Swift::Connection> connection) {
|
||||
void DummyConnectionServer::acceptConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> connection) {
|
||||
eventLoop->postEvent(
|
||||
boost::bind(boost::ref(onNewConnection), connection),
|
||||
shared_from_this());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<DummyConnectionServer>(this));
|
||||
// connection->listen();
|
||||
}
|
||||
|
||||
|
|
|
@ -10,28 +10,29 @@
|
|||
#include <boost/asio/io_service.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include <boost/enable_shared_from_this.hpp>
|
||||
#include <Swiften/Base/boost_bsignals.h>
|
||||
|
||||
#include <Swiften/Network/DummyConnection.h>
|
||||
#include <Swiften/Network/ConnectionServer.h>
|
||||
#include <Swiften/EventLoop/EventOwner.h>
|
||||
#include <Swiften/Version.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class DummyConnectionServer : public ConnectionServer, public EventOwner, public boost::enable_shared_from_this<DummyConnectionServer> {
|
||||
public:
|
||||
typedef boost::shared_ptr<DummyConnectionServer> ref;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<DummyConnectionServer> ref;
|
||||
|
||||
enum Error {
|
||||
Conflict,
|
||||
UnknownError
|
||||
};
|
||||
|
||||
static ref create(EventLoop* eventLoop) {
|
||||
return ref(new DummyConnectionServer(eventLoop));
|
||||
static SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DummyConnectionServer> create(EventLoop* eventLoop) {
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DummyConnectionServer>(new DummyConnectionServer(eventLoop));
|
||||
}
|
||||
|
||||
void acceptConnection(boost::shared_ptr<Swift::Connection> connection);
|
||||
void acceptConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> connection);
|
||||
|
||||
#if (SWIFTEN_VERSION >= 0x030000)
|
||||
virtual boost::optional<ConnectionServer::Error> tryStart() {
|
||||
|
|
|
@ -12,11 +12,11 @@ namespace Swift {
|
|||
DummyConnectionServerFactory::DummyConnectionServerFactory(EventLoop* eventLoop) : eventLoop(eventLoop) {
|
||||
}
|
||||
|
||||
boost::shared_ptr<ConnectionServer> DummyConnectionServerFactory::createConnectionServer(int port) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> DummyConnectionServerFactory::createConnectionServer(int port) {
|
||||
return DummyConnectionServer::create(eventLoop);
|
||||
}
|
||||
|
||||
boost::shared_ptr<ConnectionServer> DummyConnectionServerFactory::createConnectionServer(const Swift::HostAddress &hostAddress, int port) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> DummyConnectionServerFactory::createConnectionServer(const Swift::HostAddress &hostAddress, int port) {
|
||||
return DummyConnectionServer::create(eventLoop);
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
#include <Swiften/Network/ConnectionServerFactory.h>
|
||||
#include <Swiften/Network/DummyConnectionServer.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class ConnectionServer;
|
||||
|
||||
|
@ -18,9 +20,9 @@ namespace Swift {
|
|||
public:
|
||||
DummyConnectionServerFactory(EventLoop* eventLoop);
|
||||
|
||||
virtual boost::shared_ptr<ConnectionServer> createConnectionServer(int port);
|
||||
virtual SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> createConnectionServer(int port);
|
||||
|
||||
virtual boost::shared_ptr<ConnectionServer> createConnectionServer(const Swift::HostAddress &hostAddress, int port);
|
||||
virtual SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> createConnectionServer(const Swift::HostAddress &hostAddress, int port);
|
||||
|
||||
private:
|
||||
EventLoop* eventLoop;
|
||||
|
|
|
@ -22,7 +22,7 @@ DummyNetworkFactories::DummyNetworkFactories(EventLoop* eventLoop) {
|
|||
timerFactory = new DummyTimerFactory();
|
||||
connectionFactory = new DummyConnectionFactory(eventLoop);
|
||||
#if HAVE_SWIFTEN_3
|
||||
idnConverter = boost::shared_ptr<IDNConverter>(PlatformIDNConverter::create());
|
||||
idnConverter = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IDNConverter>(PlatformIDNConverter::create());
|
||||
domainNameResolver = new PlatformDomainNameResolver(idnConverter.get(), eventLoop);
|
||||
cryptoProvider = PlatformCryptoProvider::create();
|
||||
networkEnvironment = new PlatformNetworkEnvironment();
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
#include <Swiften/IDN/PlatformIDNConverter.h>
|
||||
#endif
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class EventLoop;
|
||||
|
||||
|
@ -77,7 +79,7 @@ namespace Swift {
|
|||
TimerFactory* timerFactory;
|
||||
ConnectionFactory* connectionFactory;
|
||||
#if HAVE_SWIFTEN_3
|
||||
boost::shared_ptr<IDNConverter> idnConverter;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IDNConverter> idnConverter;
|
||||
CryptoProvider* cryptoProvider;
|
||||
NetworkEnvironment* networkEnvironment;
|
||||
#endif
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
* See Documentation/Licenses/BSD-simplified.txt for more information.
|
||||
*/
|
||||
|
||||
#include <cassert>
|
||||
#include <Swiften/Parser/PayloadParsers/XHTMLIMParser.h>
|
||||
#include <Swiften/Parser/SerializingParser.h>
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
|
@ -50,7 +52,7 @@ void XHTMLIMParser::handleCharacterData(const std::string& data) {
|
|||
}
|
||||
}
|
||||
|
||||
boost::shared_ptr<XHTMLIMPayload> XHTMLIMParser::getLabelPayload() const {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XHTMLIMPayload> XHTMLIMParser::getLabelPayload() const {
|
||||
return getPayloadInternal();
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
#include <Swiften/Elements/XHTMLIMPayload.h>
|
||||
#include <Swiften/Parser/GenericPayloadParser.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class SerializingParser;
|
||||
|
||||
|
@ -19,7 +21,7 @@ namespace Swift {
|
|||
virtual void handleStartElement(const std::string& element, const std::string&, const AttributeMap& attributes);
|
||||
virtual void handleEndElement(const std::string& element, const std::string&);
|
||||
virtual void handleCharacterData(const std::string& data);
|
||||
boost::shared_ptr<XHTMLIMPayload> getLabelPayload() const;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XHTMLIMPayload> getLabelPayload() const;
|
||||
private:
|
||||
enum Level {
|
||||
TopLevel = 0,
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
#include <Swiften/Parser/Tree/ParserElement.h>
|
||||
#include <Swiften/Parser/XMLParserClient.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
/**
|
||||
* Generics parser offering something a bit like a DOM to work with.
|
||||
|
@ -24,7 +26,7 @@ namespace Swift {
|
|||
|
||||
virtual void handleStartElement(const std::string& element, const std::string& xmlns, const AttributeMap& attributes) {
|
||||
if (!root_) {
|
||||
root_ = boost::make_shared<ParserElement>(element, xmlns, attributes);
|
||||
root_ = SWIFTEN_SHRPTR_NAMESPACE::make_shared<ParserElement>(element, xmlns, attributes);
|
||||
elementStack_.push_back(root_);
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace Swift {
|
|||
AttentionSerializer::AttentionSerializer() : GenericPayloadSerializer<AttentionPayload>() {
|
||||
}
|
||||
|
||||
std::string AttentionSerializer::serializePayload(boost::shared_ptr<AttentionPayload> attention) const {
|
||||
std::string AttentionSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AttentionPayload> attention) const {
|
||||
XMLElement attentionElement("attention", "urn:xmpp:attention:0");
|
||||
|
||||
return attentionElement.serialize();
|
||||
|
|
|
@ -9,11 +9,13 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/AttentionPayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class AttentionSerializer : public GenericPayloadSerializer<AttentionPayload> {
|
||||
public:
|
||||
AttentionSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<AttentionPayload>) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AttentionPayload>) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -11,27 +11,29 @@
|
|||
#include <Swiften/Serializer/XML/XMLElement.h>
|
||||
#include <Swiften/Serializer/PayloadSerializerCollection.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
GatewayPayloadSerializer::GatewayPayloadSerializer()
|
||||
: GenericPayloadSerializer<GatewayPayload>() {
|
||||
}
|
||||
|
||||
std::string GatewayPayloadSerializer::serializePayload(boost::shared_ptr<GatewayPayload> payload) const {
|
||||
std::string GatewayPayloadSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<GatewayPayload> payload) const {
|
||||
XMLElement query("query", "jabber:iq:gateway");
|
||||
|
||||
if (payload->getJID().isValid()) {
|
||||
boost::shared_ptr<XMLElement> jid(new XMLElement("jid", "", payload->getJID().toBare().toString()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> jid(new XMLElement("jid", "", payload->getJID().toBare().toString()));
|
||||
query.addNode(jid);
|
||||
}
|
||||
|
||||
if (!payload->getDesc().empty()) {
|
||||
boost::shared_ptr<XMLElement> desc(new XMLElement("desc", "", payload->getDesc()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> desc(new XMLElement("desc", "", payload->getDesc()));
|
||||
query.addNode(desc);
|
||||
}
|
||||
|
||||
if (!payload->getPrompt().empty()) {
|
||||
boost::shared_ptr<XMLElement> prompt(new XMLElement("prompt", "", payload->getPrompt()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> prompt(new XMLElement("prompt", "", payload->getPrompt()));
|
||||
query.addNode(prompt);
|
||||
}
|
||||
|
||||
|
|
|
@ -9,11 +9,13 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/GatewayPayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class GatewayPayloadSerializer : public GenericPayloadSerializer<GatewayPayload> {
|
||||
public:
|
||||
GatewayPayloadSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<GatewayPayload> item) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<GatewayPayload> item) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace Swift {
|
|||
InvisibleSerializer::InvisibleSerializer() : GenericPayloadSerializer<InvisiblePayload>() {
|
||||
}
|
||||
|
||||
std::string InvisibleSerializer::serializePayload(boost::shared_ptr<InvisiblePayload> attention) const {
|
||||
std::string InvisibleSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<InvisiblePayload> attention) const {
|
||||
XMLElement attentionElement("invisible", "urn:xmpp:invisible:0");
|
||||
|
||||
return attentionElement.serialize();
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/InvisiblePayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
// This payload is NOT part of ANY XEP and it is only
|
||||
// libtransport related extension.
|
||||
namespace Swift {
|
||||
|
@ -16,6 +18,6 @@ namespace Swift {
|
|||
public:
|
||||
InvisibleSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<InvisiblePayload>) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<InvisiblePayload>) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace Swift {
|
|||
SpectrumErrorSerializer::SpectrumErrorSerializer() : GenericPayloadSerializer<SpectrumErrorPayload>() {
|
||||
}
|
||||
|
||||
std::string SpectrumErrorSerializer::serializePayload(boost::shared_ptr<SpectrumErrorPayload> error) const {
|
||||
std::string SpectrumErrorSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SpectrumErrorPayload> error) const {
|
||||
std::string data;
|
||||
switch (error->getError()) {
|
||||
case SpectrumErrorPayload::CONNECTION_ERROR_NETWORK_ERROR: data = "CONNECTION_ERROR_NETWORK_ERROR"; break;
|
||||
|
|
|
@ -9,11 +9,13 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/SpectrumErrorPayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class SpectrumErrorSerializer : public GenericPayloadSerializer<SpectrumErrorPayload> {
|
||||
public:
|
||||
SpectrumErrorSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<SpectrumErrorPayload>) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SpectrumErrorPayload>) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,15 +13,17 @@
|
|||
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
|
||||
#include <Swiften/Serializer/XML/XMLElement.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
StatsSerializer::StatsSerializer() : GenericPayloadSerializer<StatsPayload>() {
|
||||
}
|
||||
|
||||
std::string StatsSerializer::serializePayload(boost::shared_ptr<StatsPayload> stats) const {
|
||||
std::string StatsSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<StatsPayload> stats) const {
|
||||
XMLElement queryElement("query", "http://jabber.org/protocol/stats");
|
||||
foreach(const StatsPayload::Item& item, stats->getItems()) {
|
||||
boost::shared_ptr<XMLElement> statElement(new XMLElement("stat"));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> statElement(new XMLElement("stat"));
|
||||
statElement->setAttribute("name", item.getName());
|
||||
if (!item.getUnits().empty()) {
|
||||
statElement->setAttribute("units", item.getUnits());
|
||||
|
|
|
@ -9,11 +9,13 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/StatsPayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class StatsSerializer : public GenericPayloadSerializer<StatsPayload> {
|
||||
public:
|
||||
StatsSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<StatsPayload>) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<StatsPayload>) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10,16 +10,18 @@
|
|||
#include <Swiften/Serializer/XML/XMLTextNode.h>
|
||||
#include <Swiften/Serializer/XML/XMLElement.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
|
||||
XHTMLIMSerializer::XHTMLIMSerializer() : GenericPayloadSerializer<XHTMLIMPayload>() {
|
||||
}
|
||||
|
||||
std::string XHTMLIMSerializer::serializePayload(boost::shared_ptr<XHTMLIMPayload> payload) const {
|
||||
std::string XHTMLIMSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XHTMLIMPayload> payload) const {
|
||||
XMLElement html("html", "http://jabber.org/protocol/xhtml-im");
|
||||
|
||||
boost::shared_ptr<XMLElement> body(new XMLElement("body", "http://www.w3.org/1999/xhtml"));
|
||||
body->addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(payload->getBody())));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLElement> body(new XMLElement("body", "http://www.w3.org/1999/xhtml"));
|
||||
body->addNode(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(payload->getBody())));
|
||||
html.addNode(body);
|
||||
|
||||
return html.serialize();
|
||||
|
|
|
@ -9,11 +9,13 @@
|
|||
#include <Swiften/Serializer/GenericPayloadSerializer.h>
|
||||
#include <Swiften/Elements/XHTMLIMPayload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class XHTMLIMSerializer : public GenericPayloadSerializer<XHTMLIMPayload> {
|
||||
public:
|
||||
XHTMLIMSerializer();
|
||||
|
||||
virtual std::string serializePayload(boost::shared_ptr<XHTMLIMPayload> xhtml) const;
|
||||
virtual std::string serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<XHTMLIMPayload> xhtml) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <string>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/signal.hpp>
|
||||
|
||||
#include "Swiften/Base/String.h"
|
||||
#include "Swiften/Base/foreach.h"
|
||||
|
@ -88,14 +89,14 @@ void Server::stop() {
|
|||
|
||||
stopping = true;
|
||||
|
||||
// foreach(boost::shared_ptr<ServerFromClientSession> session, serverFromClientSessions) {
|
||||
// foreach(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session, serverFromClientSessions) {
|
||||
// session->finishSession();
|
||||
// }
|
||||
serverFromClientSessions.clear();
|
||||
|
||||
if (serverFromClientConnectionServer) {
|
||||
serverFromClientConnectionServer->stop();
|
||||
foreach(boost::bsignals::connection& connection, serverFromClientConnectionServerSignalConnections) {
|
||||
foreach(SWIFTEN_SIGNAL_NAMESPACE::connection& connection, serverFromClientConnectionServerSignalConnections) {
|
||||
connection.disconnect();
|
||||
}
|
||||
serverFromClientConnectionServerSignalConnections.clear();
|
||||
|
@ -106,9 +107,9 @@ void Server::stop() {
|
|||
// onStopped(e);
|
||||
}
|
||||
|
||||
void Server::handleNewClientConnection(boost::shared_ptr<Connection> connection) {
|
||||
void Server::handleNewClientConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Connection> connection) {
|
||||
|
||||
boost::shared_ptr<ServerFromClientSession> serverFromClientSession = boost::shared_ptr<ServerFromClientSession>(
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> serverFromClientSession = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession>(
|
||||
new ServerFromClientSession(idGenerator.generateID(), connection,
|
||||
getPayloadParserFactories(), getPayloadSerializers(), userRegistry_, parserFactory_));
|
||||
//serverFromClientSession->setAllowSASLEXTERNAL();
|
||||
|
@ -138,11 +139,11 @@ void Server::handleDataWritten(const SafeByteArray& data) {
|
|||
onDataWritten(data);
|
||||
}
|
||||
|
||||
void Server::handleSessionStarted(boost::shared_ptr<ServerFromClientSession> session) {
|
||||
void Server::handleSessionStarted(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session) {
|
||||
dynamic_cast<ServerStanzaChannel *>(stanzaChannel_)->addSession(session);
|
||||
}
|
||||
|
||||
void Server::handleSessionFinished(boost::shared_ptr<ServerFromClientSession> session) {
|
||||
void Server::handleSessionFinished(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session) {
|
||||
// if (!session->getRemoteJID().isValid()) {
|
||||
// Swift::Presence::ref presence = Swift::Presence::create();
|
||||
// presence->setFrom(session->getBareJID());
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
#include <boost/signals2.hpp>
|
||||
#include <vector>
|
||||
|
||||
#include "Swiften/Network/BoostIOServiceThread.h"
|
||||
|
@ -21,6 +22,7 @@
|
|||
#include "Swiften/Entity/Entity.h"
|
||||
#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h"
|
||||
#include "Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <Swiften/TLS/CertificateWithKey.h>
|
||||
#include <Swiften/Parser/PlatformXMLParserFactory.h>
|
||||
|
||||
|
@ -53,7 +55,7 @@ namespace Swift {
|
|||
return iqRouter_;
|
||||
}
|
||||
|
||||
boost::shared_ptr<ConnectionServer> getConnectionServer() const {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> getConnectionServer() const {
|
||||
return serverFromClientConnectionServer;
|
||||
}
|
||||
|
||||
|
@ -63,10 +65,10 @@ namespace Swift {
|
|||
void addTLSEncryption(TLSServerContextFactory* tlsContextFactory, CertificateWithKey::ref cert);
|
||||
|
||||
private:
|
||||
void handleNewClientConnection(boost::shared_ptr<Connection> c);
|
||||
void handleSessionStarted(boost::shared_ptr<ServerFromClientSession>);
|
||||
void handleSessionFinished(boost::shared_ptr<ServerFromClientSession>);
|
||||
void handleElementReceived(boost::shared_ptr<Element> element, boost::shared_ptr<ServerFromClientSession> session);
|
||||
void handleNewClientConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Connection> c);
|
||||
void handleSessionStarted(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession>);
|
||||
void handleSessionFinished(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession>);
|
||||
void handleElementReceived(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session);
|
||||
void handleDataRead(const SafeByteArray&);
|
||||
void handleDataWritten(const SafeByteArray&);
|
||||
|
||||
|
@ -77,9 +79,9 @@ namespace Swift {
|
|||
EventLoop* eventLoop;
|
||||
NetworkFactories* networkFactories_;
|
||||
bool stopping;
|
||||
boost::shared_ptr<ConnectionServer> serverFromClientConnectionServer;
|
||||
std::vector<boost::bsignals::connection> serverFromClientConnectionServerSignalConnections;
|
||||
std::list<boost::shared_ptr<ServerFromClientSession> > serverFromClientSessions;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ConnectionServer> serverFromClientConnectionServer;
|
||||
std::vector<SWIFTEN_SIGNAL_NAMESPACE::connection> serverFromClientConnectionServerSignalConnections;
|
||||
std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> > serverFromClientSessions;
|
||||
JID selfJID;
|
||||
StanzaChannel *stanzaChannel_;
|
||||
IQRouter *iqRouter_;
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#include <iostream>
|
||||
#include <Swiften/TLS/CertificateWithKey.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include <Swiften/Version.h>
|
||||
#if (SWIFTEN_VERSION >= 0x030000)
|
||||
#include <Swiften/Elements/ToplevelElement.h>
|
||||
|
@ -38,7 +40,7 @@ namespace Swift {
|
|||
|
||||
ServerFromClientSession::ServerFromClientSession(
|
||||
const std::string& id,
|
||||
boost::shared_ptr<Connection> connection,
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Connection> connection,
|
||||
PayloadParserFactoryCollection* payloadParserFactories,
|
||||
PayloadSerializerCollection* payloadSerializers,
|
||||
UserRegistry* userRegistry,
|
||||
|
@ -63,7 +65,7 @@ ServerFromClientSession::~ServerFromClientSession() {
|
|||
|
||||
void ServerFromClientSession::handlePasswordValid() {
|
||||
if (!isInitialized()) {
|
||||
getXMPPLayer()->writeElement(boost::shared_ptr<AuthSuccess>(new AuthSuccess()));
|
||||
getXMPPLayer()->writeElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AuthSuccess>(new AuthSuccess()));
|
||||
authenticated_ = true;
|
||||
getXMPPLayer()->resetParser();
|
||||
}
|
||||
|
@ -71,9 +73,9 @@ void ServerFromClientSession::handlePasswordValid() {
|
|||
|
||||
void ServerFromClientSession::handlePasswordInvalid(const std::string &error) {
|
||||
if (!isInitialized()) {
|
||||
getXMPPLayer()->writeElement(boost::shared_ptr<AuthFailure>(new AuthFailure));
|
||||
getXMPPLayer()->writeElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AuthFailure>(new AuthFailure));
|
||||
if (!error.empty()) {
|
||||
boost::shared_ptr<StreamError> msg(new StreamError(StreamError::UndefinedCondition, error));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<StreamError> msg(new StreamError(StreamError::UndefinedCondition, error));
|
||||
getXMPPLayer()->writeElement(msg);
|
||||
}
|
||||
|
||||
|
@ -82,9 +84,9 @@ void ServerFromClientSession::handlePasswordInvalid(const std::string &error) {
|
|||
}
|
||||
|
||||
#if (SWIFTEN_VERSION >= 0x030000)
|
||||
void ServerFromClientSession::handleElement(boost::shared_ptr<ToplevelElement> element) {
|
||||
void ServerFromClientSession::handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ToplevelElement> element) {
|
||||
#else
|
||||
void ServerFromClientSession::handleElement(boost::shared_ptr<Element> element) {
|
||||
void ServerFromClientSession::handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element) {
|
||||
#endif
|
||||
if (isInitialized()) {
|
||||
onElementReceived(element);
|
||||
|
@ -93,7 +95,7 @@ void ServerFromClientSession::handleElement(boost::shared_ptr<Element> element)
|
|||
if (AuthRequest* authRequest = dynamic_cast<AuthRequest*>(element.get())) {
|
||||
if (authRequest->getMechanism() == "PLAIN" || (allowSASLEXTERNAL && authRequest->getMechanism() == "EXTERNAL")) {
|
||||
if (authRequest->getMechanism() == "EXTERNAL") {
|
||||
getXMPPLayer()->writeElement(boost::shared_ptr<AuthSuccess>(new AuthSuccess()));
|
||||
getXMPPLayer()->writeElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AuthSuccess>(new AuthSuccess()));
|
||||
authenticated_ = true;
|
||||
getXMPPLayer()->resetParser();
|
||||
}
|
||||
|
@ -104,25 +106,25 @@ void ServerFromClientSession::handleElement(boost::shared_ptr<Element> element)
|
|||
}
|
||||
}
|
||||
else {
|
||||
getXMPPLayer()->writeElement(boost::shared_ptr<AuthFailure>(new AuthFailure));
|
||||
getXMPPLayer()->writeElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<AuthFailure>(new AuthFailure));
|
||||
finishSession(NoSupportedAuthMechanismsError);
|
||||
}
|
||||
}
|
||||
else if (dynamic_cast<StartTLSRequest*>(element.get()) != NULL) {
|
||||
getXMPPLayer()->writeElement(boost::shared_ptr<TLSProceed>(new TLSProceed));
|
||||
getXMPPLayer()->writeElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSProceed>(new TLSProceed));
|
||||
getStreamStack()->addLayer(tlsLayer);
|
||||
tlsLayer->connect();
|
||||
getXMPPLayer()->resetParser();
|
||||
}
|
||||
else if (IQ* iq = dynamic_cast<IQ*>(element.get())) {
|
||||
if (boost::shared_ptr<ResourceBind> resourceBind = iq->getPayload<ResourceBind>()) {
|
||||
if (SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ResourceBind> resourceBind = iq->getPayload<ResourceBind>()) {
|
||||
std::string bucket = "abcdefghijklmnopqrstuvwxyz";
|
||||
std::string uuid;
|
||||
for (int i = 0; i < 10; i++) {
|
||||
uuid += bucket[rand() % bucket.size()];
|
||||
}
|
||||
setRemoteJID(JID(user_, getLocalJID().getDomain(), uuid));
|
||||
boost::shared_ptr<ResourceBind> resultResourceBind(new ResourceBind());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ResourceBind> resultResourceBind(new ResourceBind());
|
||||
resultResourceBind->setJID(getRemoteJID());
|
||||
getXMPPLayer()->writeElement(IQ::createResult(JID(), iq->getID(), resultResourceBind));
|
||||
}
|
||||
|
@ -141,7 +143,7 @@ void ServerFromClientSession::handleStreamStart(const ProtocolHeader& incomingHe
|
|||
header.setID(id_);
|
||||
getXMPPLayer()->writeHeader(header);
|
||||
|
||||
boost::shared_ptr<StreamFeatures> features(new StreamFeatures());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<StreamFeatures> features(new StreamFeatures());
|
||||
|
||||
if (!authenticated_) {
|
||||
if (tlsLayer && !tlsConnected) {
|
||||
|
@ -177,7 +179,7 @@ void ServerFromClientSession::addTLSEncryption(TLSServerContextFactory* tlsConte
|
|||
if (!tlsLayer->setServerCertificate(cert)) {
|
||||
// std::cout << "error\n";
|
||||
// TODO:
|
||||
// onClosed(boost::shared_ptr<Error>(new Error(Error::InvalidTLSCertificateError)));
|
||||
// onClosed(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Error>(new Error(Error::InvalidTLSCertificateError)));
|
||||
}
|
||||
else {
|
||||
tlsLayer->onError.connect(boost::bind(&ServerFromClientSession::handleTLSError, this));
|
||||
|
|
|
@ -7,8 +7,8 @@
|
|||
#pragma once
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <Swiften/Base/boost_bsignals.h>
|
||||
#include <boost/enable_shared_from_this.hpp>
|
||||
#include <boost/signals.hpp>
|
||||
|
||||
#include <string>
|
||||
#include <Swiften/Session/Session.h>
|
||||
|
@ -19,6 +19,8 @@
|
|||
#include <Swiften/Version.h>
|
||||
#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000)
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class ProtocolHeader;
|
||||
class Element;
|
||||
|
@ -38,7 +40,7 @@ namespace Swift {
|
|||
public:
|
||||
ServerFromClientSession(
|
||||
const std::string& id,
|
||||
boost::shared_ptr<Connection> connection,
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Connection> connection,
|
||||
PayloadParserFactoryCollection* payloadParserFactories,
|
||||
PayloadSerializerCollection* payloadSerializers,
|
||||
UserRegistry* userRegistry,
|
||||
|
@ -63,9 +65,9 @@ namespace Swift {
|
|||
|
||||
private:
|
||||
#if HAVE_SWIFTEN_3
|
||||
void handleElement(boost::shared_ptr<ToplevelElement>);
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ToplevelElement>);
|
||||
#else
|
||||
void handleElement(boost::shared_ptr<Element>);
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element>);
|
||||
#endif
|
||||
void handleStreamStart(const ProtocolHeader& header);
|
||||
void handleSessionFinished(const boost::optional<SessionError>&);
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
#include <Swiften/Elements/Stanza.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class ServerSession {
|
||||
public:
|
||||
|
@ -18,6 +20,6 @@ namespace Swift {
|
|||
virtual const JID& getJID() const = 0;
|
||||
virtual int getPriority() const = 0;
|
||||
|
||||
virtual void sendStanza(boost::shared_ptr<Stanza>) = 0;
|
||||
virtual void sendStanza(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza>) = 0;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,41 +21,41 @@ namespace {
|
|||
|
||||
struct HasJID {
|
||||
HasJID(const JID& jid) : jid(jid) {}
|
||||
bool operator()(const boost::shared_ptr<ServerFromClientSession> session) const {
|
||||
bool operator()(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session) const {
|
||||
return session->getRemoteJID().equals(jid, JID::WithResource);
|
||||
}
|
||||
JID jid;
|
||||
};
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::addSession(boost::shared_ptr<ServerFromClientSession> session) {
|
||||
void ServerStanzaChannel::addSession(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session) {
|
||||
sessions[session->getRemoteJID().toBare().toString()].push_back(session);
|
||||
session->onSessionFinished.connect(boost::bind(&ServerStanzaChannel::handleSessionFinished, this, _1, session));
|
||||
session->onElementReceived.connect(boost::bind(&ServerStanzaChannel::handleElement, this, _1, session));
|
||||
session->onDataRead.connect(boost::bind(&ServerStanzaChannel::handleDataRead, this, _1, session));
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::removeSession(boost::shared_ptr<ServerFromClientSession> session) {
|
||||
void ServerStanzaChannel::removeSession(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session) {
|
||||
session->onSessionFinished.disconnect(boost::bind(&ServerStanzaChannel::handleSessionFinished, this, _1, session));
|
||||
session->onElementReceived.disconnect(boost::bind(&ServerStanzaChannel::handleElement, this, _1, session));
|
||||
session->onDataRead.disconnect(boost::bind(&ServerStanzaChannel::handleDataRead, this, _1, session));
|
||||
std::list<boost::shared_ptr<ServerFromClientSession> > &lst = sessions[session->getRemoteJID().toBare().toString()];
|
||||
std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> > &lst = sessions[session->getRemoteJID().toBare().toString()];
|
||||
lst.erase(std::remove(lst.begin(), lst.end(), session), lst.end());
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::sendIQ(boost::shared_ptr<IQ> iq) {
|
||||
void ServerStanzaChannel::sendIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IQ> iq) {
|
||||
send(iq);
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::sendMessage(boost::shared_ptr<Message> message) {
|
||||
void ServerStanzaChannel::sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Message> message) {
|
||||
send(message);
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::sendPresence(boost::shared_ptr<Presence> presence) {
|
||||
void ServerStanzaChannel::sendPresence(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Presence> presence) {
|
||||
send(presence);
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::handleDataRead(const SafeByteArray &data, const boost::shared_ptr<ServerFromClientSession> &session) {
|
||||
void ServerStanzaChannel::handleDataRead(const SafeByteArray &data, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> &session) {
|
||||
if (safeByteArrayToString(data).find("</stream:stream>") != std::string::npos) {
|
||||
Swift::Presence::ref presence = Swift::Presence::create();
|
||||
presence->setFrom(session->getRemoteJID());
|
||||
|
@ -64,16 +64,16 @@ void ServerStanzaChannel::handleDataRead(const SafeByteArray &data, const boost:
|
|||
}
|
||||
}
|
||||
#if HAVE_SWIFTEN_3
|
||||
void ServerStanzaChannel::finishSession(const JID& to, boost::shared_ptr<ToplevelElement> element, bool last) {
|
||||
void ServerStanzaChannel::finishSession(const JID& to, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ToplevelElement> element, bool last) {
|
||||
#else
|
||||
void ServerStanzaChannel::finishSession(const JID& to, boost::shared_ptr<Element> element, bool last) {
|
||||
void ServerStanzaChannel::finishSession(const JID& to, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element, bool last) {
|
||||
#endif
|
||||
std::vector<boost::shared_ptr<ServerFromClientSession> > candidateSessions;
|
||||
for (std::list<boost::shared_ptr<ServerFromClientSession> >::const_iterator i = sessions[to.toBare().toString()].begin(); i != sessions[to.toBare().toString()].end(); ++i) {
|
||||
std::vector<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> > candidateSessions;
|
||||
for (std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> >::const_iterator i = sessions[to.toBare().toString()].begin(); i != sessions[to.toBare().toString()].end(); ++i) {
|
||||
candidateSessions.push_back(*i);
|
||||
}
|
||||
|
||||
for (std::vector<boost::shared_ptr<ServerFromClientSession> >::const_iterator i = candidateSessions.begin(); i != candidateSessions.end(); ++i) {
|
||||
for (std::vector<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> >::const_iterator i = candidateSessions.begin(); i != candidateSessions.end(); ++i) {
|
||||
removeSession(*i);
|
||||
if (element) {
|
||||
(*i)->sendElement(element);
|
||||
|
@ -98,7 +98,7 @@ std::string ServerStanzaChannel::getNewIQID() {
|
|||
return idGenerator.generateID();
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::send(boost::shared_ptr<Stanza> stanza) {
|
||||
void ServerStanzaChannel::send(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza> stanza) {
|
||||
JID to = stanza->getTo();
|
||||
assert(to.isValid());
|
||||
|
||||
|
@ -108,7 +108,7 @@ void ServerStanzaChannel::send(boost::shared_ptr<Stanza> stanza) {
|
|||
|
||||
// For a full JID, first try to route to a session with the full JID
|
||||
if (!to.isBare()) {
|
||||
std::list<boost::shared_ptr<ServerFromClientSession> >::const_iterator i = std::find_if(sessions[stanza->getTo().toBare().toString()].begin(), sessions[stanza->getTo().toBare().toString()].end(), HasJID(to));
|
||||
std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> >::const_iterator i = std::find_if(sessions[stanza->getTo().toBare().toString()].begin(), sessions[stanza->getTo().toBare().toString()].end(), HasJID(to));
|
||||
if (i != sessions[stanza->getTo().toBare().toString()].end()) {
|
||||
(*i)->sendElement(stanza);
|
||||
return;
|
||||
|
@ -117,8 +117,8 @@ void ServerStanzaChannel::send(boost::shared_ptr<Stanza> stanza) {
|
|||
|
||||
// Look for candidate sessions
|
||||
to = to.toBare();
|
||||
std::vector<boost::shared_ptr<ServerFromClientSession> > candidateSessions;
|
||||
for (std::list<boost::shared_ptr<ServerFromClientSession> >::const_iterator i = sessions[stanza->getTo().toBare().toString()].begin(); i != sessions[stanza->getTo().toBare().toString()].end(); ++i) {
|
||||
std::vector<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> > candidateSessions;
|
||||
for (std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> >::const_iterator i = sessions[stanza->getTo().toBare().toString()].begin(); i != sessions[stanza->getTo().toBare().toString()].end(); ++i) {
|
||||
if ((*i)->getRemoteJID().equals(to, JID::WithoutResource)) {
|
||||
candidateSessions.push_back(*i);
|
||||
(*i)->sendElement(stanza);
|
||||
|
@ -134,7 +134,7 @@ void ServerStanzaChannel::send(boost::shared_ptr<Stanza> stanza) {
|
|||
return;
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::handleSessionFinished(const boost::optional<Session::SessionError>&, const boost::shared_ptr<ServerFromClientSession>& session) {
|
||||
void ServerStanzaChannel::handleSessionFinished(const boost::optional<Session::SessionError>&, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession>& session) {
|
||||
removeSession(session);
|
||||
|
||||
// if (!session->initiatedFinish()) {
|
||||
|
@ -145,8 +145,8 @@ void ServerStanzaChannel::handleSessionFinished(const boost::optional<Session::S
|
|||
// }
|
||||
}
|
||||
|
||||
void ServerStanzaChannel::handleElement(boost::shared_ptr<Element> element, const boost::shared_ptr<ServerFromClientSession>& session) {
|
||||
boost::shared_ptr<Stanza> stanza = boost::dynamic_pointer_cast<Stanza>(element);
|
||||
void ServerStanzaChannel::handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession>& session) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza> stanza = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Stanza>(element);
|
||||
if (!stanza) {
|
||||
return;
|
||||
}
|
||||
|
@ -157,19 +157,19 @@ void ServerStanzaChannel::handleElement(boost::shared_ptr<Element> element, cons
|
|||
return;
|
||||
|
||||
|
||||
boost::shared_ptr<Message> message = boost::dynamic_pointer_cast<Message>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Message> message = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Message>(stanza);
|
||||
if (message) {
|
||||
onMessageReceived(message);
|
||||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Presence> presence = boost::dynamic_pointer_cast<Presence>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Presence> presence = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Presence>(stanza);
|
||||
if (presence) {
|
||||
onPresenceReceived(presence);
|
||||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<IQ> iq = boost::dynamic_pointer_cast<IQ>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IQ> iq = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<IQ>(stanza);
|
||||
if (iq) {
|
||||
onIQReceived(iq);
|
||||
return;
|
||||
|
|
|
@ -25,16 +25,16 @@ namespace Swift {
|
|||
ServerStanzaChannel(const JID &selfJID) : StanzaChannel() {
|
||||
m_jid = selfJID;
|
||||
}
|
||||
void addSession(boost::shared_ptr<ServerFromClientSession> session);
|
||||
void removeSession(boost::shared_ptr<ServerFromClientSession> session);
|
||||
void addSession(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session);
|
||||
void removeSession(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> session);
|
||||
|
||||
void sendIQ(boost::shared_ptr<IQ> iq);
|
||||
void sendMessage(boost::shared_ptr<Message> message);
|
||||
void sendPresence(boost::shared_ptr<Presence> presence);
|
||||
void sendIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<IQ> iq);
|
||||
void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Message> message);
|
||||
void sendPresence(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Presence> presence);
|
||||
#if HAVE_SWIFTEN_3
|
||||
void finishSession(const JID& to, boost::shared_ptr<ToplevelElement> element, bool last = false);
|
||||
void finishSession(const JID& to, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ToplevelElement> element, bool last = false);
|
||||
#else
|
||||
void finishSession(const JID& to, boost::shared_ptr<Element> element, bool last = false);
|
||||
void finishSession(const JID& to, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element, bool last = false);
|
||||
#endif
|
||||
bool getStreamManagementEnabled() const {
|
||||
return false;
|
||||
|
@ -50,17 +50,17 @@ namespace Swift {
|
|||
|
||||
private:
|
||||
std::string getNewIQID();
|
||||
void send(boost::shared_ptr<Stanza> stanza);
|
||||
void handleSessionFinished(const boost::optional<Session::SessionError>&, const boost::shared_ptr<ServerFromClientSession> &session);
|
||||
void handleElement(boost::shared_ptr<Element> element, const boost::shared_ptr<ServerFromClientSession> &session);
|
||||
void handleDataRead(const SafeByteArray &data, const boost::shared_ptr<ServerFromClientSession> &session);
|
||||
void send(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza> stanza);
|
||||
void handleSessionFinished(const boost::optional<Session::SessionError>&, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> &session);
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Element> element, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> &session);
|
||||
void handleDataRead(const SafeByteArray &data, const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> &session);
|
||||
void handleSessionInitialized();
|
||||
|
||||
private:
|
||||
JID m_jid;
|
||||
IDGenerator idGenerator;
|
||||
// [JID][resources][ServerFromClientSession]
|
||||
std::map<std::string, std::list<boost::shared_ptr<ServerFromClientSession> > > sessions;
|
||||
std::map<std::string, std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<ServerFromClientSession> > > sessions;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace {
|
|||
ServerStanzaRouter::ServerStanzaRouter() {
|
||||
}
|
||||
|
||||
bool ServerStanzaRouter::routeStanza(boost::shared_ptr<Stanza> stanza) {
|
||||
bool ServerStanzaRouter::routeStanza(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza> stanza) {
|
||||
JID to = stanza->getTo();
|
||||
assert(to.isValid());
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#include <Swiften/JID/JID.h>
|
||||
#include <Swiften/Elements/Stanza.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class ServerSession;
|
||||
|
||||
|
@ -19,7 +21,7 @@ namespace Swift {
|
|||
public:
|
||||
ServerStanzaRouter();
|
||||
|
||||
bool routeStanza(boost::shared_ptr<Stanza>);
|
||||
bool routeStanza(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Stanza>);
|
||||
|
||||
void addClientSession(ServerSession*);
|
||||
void removeClientSession(ServerSession*);
|
||||
|
|
|
@ -45,7 +45,7 @@ Certificate::ref TLSServerLayer::getPeerCertificate() const {
|
|||
return context->getPeerCertificate();
|
||||
}
|
||||
|
||||
boost::shared_ptr<CertificateVerificationError> TLSServerLayer::getPeerCertificateVerificationError() const {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> TLSServerLayer::getPeerCertificateVerificationError() const {
|
||||
return context->getPeerCertificateVerificationError();
|
||||
}
|
||||
|
||||
|
|
|
@ -4,13 +4,14 @@
|
|||
* See Documentation/Licenses/GPLv3.txt for more information.
|
||||
*/
|
||||
|
||||
#include "Swiften/Base/boost_bsignals.h"
|
||||
#include <boost/signals.hpp>
|
||||
|
||||
#include "Swiften/Base/SafeByteArray.h"
|
||||
#include "Swiften/StreamStack/StreamLayer.h"
|
||||
#include "Swiften/TLS/Certificate.h"
|
||||
#include <Swiften/TLS/CertificateWithKey.h>
|
||||
#include "Swiften/TLS/CertificateVerificationError.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Swift {
|
||||
class TLSServerContext;
|
||||
|
@ -26,7 +27,7 @@ namespace Swift {
|
|||
bool setServerCertificate(CertificateWithKey::ref cert);
|
||||
|
||||
Certificate::ref getPeerCertificate() const;
|
||||
boost::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const;
|
||||
|
||||
void writeData(const SafeByteArray& data);
|
||||
void handleDataRead(const SafeByteArray& data);
|
||||
|
|
44
include/Swiften/SwiftenCompat.h
Normal file
44
include/Swiften/SwiftenCompat.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* Swift compatibility
|
||||
*
|
||||
* Copyright (c) 2016, Vladimir Matena <vlada.matena@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <Swiften/Version.h>
|
||||
|
||||
/*
|
||||
* Define macros for Swiften compatible shared pointer and signal namespaces.
|
||||
*
|
||||
* Using these it is possible to declare shared pointers and signals like this:
|
||||
*
|
||||
* SWIFTEN_SIGNAL_NAMESPACE::signal signal;
|
||||
* SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Type> ptr;
|
||||
*
|
||||
* These are guaranteed to be the same implementation as Swift uses internally,
|
||||
* thus can be used when passign/retrieveing data from/to swiften.
|
||||
*
|
||||
* This is due to Swift 4 moved from boost::shared_ptr to SWIFTEN_SHRPTR_NAMESPACE::shared_ptr
|
||||
* and from boost::signals to boost::signals2 .
|
||||
*/
|
||||
|
||||
#if (SWIFTEN_VERSION >= 0x040000)
|
||||
#define SWIFTEN_SHRPTR_NAMESPACE std
|
||||
#define SWIFTEN_SIGNAL_NAMESPACE boost::signals2
|
||||
#else
|
||||
#define SWIFTEN_SHRPTR_NAMESPACE boost
|
||||
#define SWIFTEN_SIGNAL_NAMESPACE boost::signals
|
||||
#endif
|
|
@ -181,7 +181,7 @@ void OpenSSLServerContext::sendPendingDataToApplication() {
|
|||
}
|
||||
|
||||
bool OpenSSLServerContext::setServerCertificate(CertificateWithKey::ref certref) {
|
||||
boost::shared_ptr<PKCS12Certificate> certificate = boost::dynamic_pointer_cast<PKCS12Certificate>(certref);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<PKCS12Certificate> certificate = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<PKCS12Certificate>(certref);
|
||||
if (certificate->isNull()) {
|
||||
LOG4CXX_ERROR(logger, "TLS WILL NOT WORK: Certificate can't be loaded.");
|
||||
return false;
|
||||
|
@ -190,7 +190,7 @@ bool OpenSSLServerContext::setServerCertificate(CertificateWithKey::ref certref)
|
|||
// Create a PKCS12 structure
|
||||
BIO* bio = BIO_new(BIO_s_mem());
|
||||
BIO_write(bio, vecptr(certificate->getData()), certificate->getData().size());
|
||||
boost::shared_ptr<PKCS12> pkcs12(d2i_PKCS12_bio(bio, NULL), PKCS12_free);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<PKCS12> pkcs12(d2i_PKCS12_bio(bio, NULL), PKCS12_free);
|
||||
BIO_free(bio);
|
||||
if (!pkcs12) {
|
||||
LOG4CXX_ERROR(logger, "TLS WILL NOT WORK: Certificate is not in PKCS#12 format.");
|
||||
|
@ -206,9 +206,9 @@ bool OpenSSLServerContext::setServerCertificate(CertificateWithKey::ref certref)
|
|||
LOG4CXX_ERROR(logger, "TLS WILL NOT WORK: Certificate is not in PKCS#12 format.");
|
||||
return false;
|
||||
}
|
||||
boost::shared_ptr<X509> cert(certPtr, X509_free);
|
||||
boost::shared_ptr<EVP_PKEY> privateKey(privateKeyPtr, EVP_PKEY_free);
|
||||
boost::shared_ptr<STACK_OF(X509)> caCerts(caCertsPtr, freeX509Stack);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<X509> cert(certPtr, X509_free);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<EVP_PKEY> privateKey(privateKeyPtr, EVP_PKEY_free);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<STACK_OF(X509)> caCerts(caCertsPtr, freeX509Stack);
|
||||
|
||||
// Use the key & certificates
|
||||
if (SSL_CTX_use_certificate(context_, cert.get()) != 1) {
|
||||
|
@ -223,7 +223,7 @@ bool OpenSSLServerContext::setServerCertificate(CertificateWithKey::ref certref)
|
|||
}
|
||||
|
||||
Certificate::ref OpenSSLServerContext::getPeerCertificate() const {
|
||||
boost::shared_ptr<X509> x509Cert(SSL_get_peer_certificate(handle_), X509_free);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<X509> x509Cert(SSL_get_peer_certificate(handle_), X509_free);
|
||||
if (x509Cert) {
|
||||
return Certificate::ref(new OpenSSLCertificate(x509Cert));
|
||||
}
|
||||
|
@ -232,13 +232,13 @@ Certificate::ref OpenSSLServerContext::getPeerCertificate() const {
|
|||
}
|
||||
}
|
||||
|
||||
boost::shared_ptr<CertificateVerificationError> OpenSSLServerContext::getPeerCertificateVerificationError() const {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> OpenSSLServerContext::getPeerCertificateVerificationError() const {
|
||||
int verifyResult = SSL_get_verify_result(handle_);
|
||||
if (verifyResult != X509_V_OK) {
|
||||
return boost::shared_ptr<CertificateVerificationError>(new CertificateVerificationError(getVerificationErrorTypeForResult(verifyResult)));
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError>(new CertificateVerificationError(getVerificationErrorTypeForResult(verifyResult)));
|
||||
}
|
||||
else {
|
||||
return boost::shared_ptr<CertificateVerificationError>();
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError>();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
#pragma once
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
#include "Swiften/Base/boost_bsignals.h"
|
||||
#include <boost/noncopyable.hpp>
|
||||
|
||||
#include "Swiften/TLS/TLSServerContext.h"
|
||||
#include "Swiften/Base/ByteArray.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <Swiften/TLS/CertificateWithKey.h>
|
||||
|
||||
namespace Swift {
|
||||
|
@ -29,7 +29,7 @@ namespace Swift {
|
|||
void handleDataFromApplication(const SafeByteArray&);
|
||||
|
||||
Certificate::ref getPeerCertificate() const;
|
||||
boost::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> getPeerCertificateVerificationError() const;
|
||||
|
||||
virtual ByteArray getFinishMessage() const;
|
||||
|
||||
|
|
|
@ -520,7 +520,7 @@ void SchannelServerContext::encryptAndSendData(const SafeByteArray& data)
|
|||
|
||||
bool SchannelServerContext::setServerCertificate(CertificateWithKey::ref certificate)
|
||||
{
|
||||
boost::shared_ptr<CAPICertificate> capiCertificate = boost::dynamic_pointer_cast<CAPICertificate>(certificate);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CAPICertificate> capiCertificate = std::dynamic_pointer_cast<CAPICertificate>(certificate);
|
||||
if (!capiCertificate || capiCertificate->isNull()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -551,7 +551,7 @@ Certificate::ref SchannelServerContext::getPeerCertificate() const
|
|||
|
||||
CertificateVerificationError::ref SchannelServerContext::getPeerCertificateVerificationError() const
|
||||
{
|
||||
boost::shared_ptr<CertificateVerificationError> pCertError;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> pCertError;
|
||||
|
||||
if (m_state == Error)
|
||||
pCertError.reset( new CertificateVerificationError(m_verificationError) );
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "Swiften/Base/boost_bsignals.h"
|
||||
|
||||
#include "Swiften/TLS/TLSServerContext.h"
|
||||
#include "Swiften/TLS/Schannel/SchannelUtil.h"
|
||||
#include <Swiften/TLS/CertificateWithKey.h>
|
||||
|
@ -26,7 +24,7 @@ namespace Swift
|
|||
class SchannelServerContext : public TLSServerContext, boost::noncopyable
|
||||
{
|
||||
public:
|
||||
typedef boost::shared_ptr<SchannelServerContext> sp_t;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SchannelServerContext> sp_t;
|
||||
|
||||
public:
|
||||
SchannelServerContext();
|
||||
|
|
|
@ -38,16 +38,16 @@ class SecureTransportServerContext : public TLSServerContext {
|
|||
static std::string stateToString(State state);
|
||||
void setState(State newState);
|
||||
|
||||
static boost::shared_ptr<TLSError> nativeToTLSError(OSStatus error);
|
||||
boost::shared_ptr<CertificateVerificationError> CSSMErrorToVerificationError(OSStatus resultCode);
|
||||
static SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSError> nativeToTLSError(OSStatus error);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> CSSMErrorToVerificationError(OSStatus resultCode);
|
||||
|
||||
void processHandshake();
|
||||
void verifyServerCertificate();
|
||||
|
||||
void fatalError(boost::shared_ptr<TLSError> error, boost::shared_ptr<CertificateVerificationError> certificateError);
|
||||
void fatalError(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSError> error, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> certificateError);
|
||||
|
||||
private:
|
||||
boost::shared_ptr<SSLContext> sslContext_;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SSLContext> sslContext_;
|
||||
SafeByteArray readingBuffer_;
|
||||
State state_;
|
||||
CertificateVerificationError::ref verificationError_;
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace {
|
|||
|
||||
|
||||
CFArrayRef CreateClientCertificateChainAsCFArrayRef(CertificateWithKey::ref key) {
|
||||
boost::shared_ptr<PKCS12Certificate> pkcs12 = boost::dynamic_pointer_cast<PKCS12Certificate>(key);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<PKCS12Certificate> pkcs12 = std::dynamic_pointer_cast<PKCS12Certificate>(key);
|
||||
if (!key) {
|
||||
return NULL;
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ CFArrayRef CreateClientCertificateChainAsCFArrayRef(CertificateWithKey::ref key)
|
|||
}
|
||||
|
||||
SecureTransportContext::SecureTransportServerContext(bool checkCertificateRevocation) : state_(None), checkCertificateRevocation_(checkCertificateRevocation) {
|
||||
sslContext_ = boost::shared_ptr<SSLContext>(SSLCreateContext(NULL, kSSLClientSide, kSSLStreamType), CFRelease);
|
||||
sslContext_ = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SSLContext>(SSLCreateContext(NULL, kSSLClientSide, kSSLStreamType), CFRelease);
|
||||
|
||||
OSStatus error = noErr;
|
||||
// set IO callbacks
|
||||
|
@ -163,7 +163,7 @@ void SecureTransportServerContext::connect() {
|
|||
if (clientCertificate_) {
|
||||
CFArrayRef certs = CreateClientCertificateChainAsCFArrayRef(clientCertificate_);
|
||||
if (certs) {
|
||||
boost::shared_ptr<CFArray> certRefs(certs, CFRelease);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CFArray> certRefs(certs, CFRelease);
|
||||
OSStatus result = SSLSetCertificate(sslContext_.get(), certRefs.get());
|
||||
if (result != noErr) {
|
||||
SWIFT_LOG(error) << "SSLSetCertificate failed with error " << result << "." << std::endl;
|
||||
|
@ -191,7 +191,7 @@ void SecureTransportServerContext::processHandshake() {
|
|||
}
|
||||
else {
|
||||
SWIFT_LOG(debug) << "Error returned from SSLHandshake call is " << error << "." << std::endl;
|
||||
fatalError(nativeToTLSError(error), boost::make_shared<CertificateVerificationError>());
|
||||
fatalError(nativeToTLSError(error), SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -203,15 +203,15 @@ void SecureTransportServerContext::verifyServerCertificate() {
|
|||
SecTrustRef trust = NULL;
|
||||
OSStatus error = SSLCopyPeerTrust(sslContext_.get(), &trust);
|
||||
if (error != noErr) {
|
||||
fatalError(boost::make_shared<TLSError>(), boost::make_shared<CertificateVerificationError>());
|
||||
fatalError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>(), SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>());
|
||||
return;
|
||||
}
|
||||
boost::shared_ptr<SecTrust> trustRef = boost::shared_ptr<SecTrust>(trust, CFRelease);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SecTrust> trustRef = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SecTrust>(trust, CFRelease);
|
||||
|
||||
if (checkCertificateRevocation_) {
|
||||
error = SecTrustSetOptions(trust, kSecTrustOptionRequireRevPerCert | kSecTrustOptionFetchIssuerFromNet);
|
||||
if (error != noErr) {
|
||||
fatalError(boost::make_shared<TLSError>(), boost::make_shared<CertificateVerificationError>());
|
||||
fatalError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>(), SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ void SecureTransportServerContext::verifyServerCertificate() {
|
|||
SecTrustResultType trustResult;
|
||||
error = SecTrustEvaluate(trust, &trustResult);
|
||||
if (error != errSecSuccess) {
|
||||
fatalError(boost::make_shared<TLSError>(), boost::make_shared<CertificateVerificationError>());
|
||||
fatalError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>(), SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -242,7 +242,7 @@ void SecureTransportServerContext::verifyServerCertificate() {
|
|||
CSSM_TP_APPLE_EVIDENCE_INFO* statusChain;
|
||||
error = SecTrustGetResult(trustRef.get(), &trustResult, &certChain, &statusChain);
|
||||
if (error == errSecSuccess) {
|
||||
boost::shared_ptr<CFArray> certChainRef = boost::shared_ptr<CFArray>(certChain, CFRelease);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CFArray> certChainRef = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CFArray>(certChain, CFRelease);
|
||||
for (CFIndex index = 0; index < CFArrayGetCount(certChainRef.get()); index++) {
|
||||
for (CFIndex n = 0; n < statusChain[index].NumStatusCodes; n++) {
|
||||
// Even though Secure Transport reported CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK on the whole certificate
|
||||
|
@ -259,11 +259,11 @@ void SecureTransportServerContext::verifyServerCertificate() {
|
|||
}
|
||||
}
|
||||
else {
|
||||
verificationError_ = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
verificationError_ = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
}
|
||||
break;
|
||||
case kSecTrustResultOtherError:
|
||||
verificationError_ = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
verificationError_ = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
break;
|
||||
default:
|
||||
SWIFT_LOG(warning) << "Unhandled trust result " << trustResult << "." << std::endl;
|
||||
|
@ -274,7 +274,7 @@ void SecureTransportServerContext::verifyServerCertificate() {
|
|||
setState(Error);
|
||||
SSLClose(sslContext_.get());
|
||||
sslContext_.reset();
|
||||
onError(boost::make_shared<TLSError>());
|
||||
onError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>());
|
||||
}
|
||||
else {
|
||||
// proceed with handshake
|
||||
|
@ -326,7 +326,7 @@ void SecureTransportServerContext::handleDataFromNetwork(const SafeByteArray& da
|
|||
}
|
||||
else {
|
||||
SWIFT_LOG(error) << "SSLRead failed with error " << error << ", read bytes: " << bytesRead << "." << std::endl;
|
||||
fatalError(boost::make_shared<TLSError>(), boost::make_shared<CertificateVerificationError>());
|
||||
fatalError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>(), SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -358,7 +358,7 @@ void SecureTransportServerContext::handleDataFromApplication(const SafeByteArray
|
|||
return;
|
||||
default:
|
||||
SWIFT_LOG(warning) << "SSLWrite returned error code: " << error << ", processed bytes: " << processedBytes << std::endl;
|
||||
fatalError(boost::make_shared<TLSError>(), boost::shared_ptr<CertificateVerificationError>());
|
||||
fatalError(SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>(), SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError>());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -367,18 +367,18 @@ std::vector<Certificate::ref> SecureTransportServerContext::getPeerCertificateCh
|
|||
|
||||
if (sslContext_) {
|
||||
typedef boost::remove_pointer<SecTrustRef>::type SecTrust;
|
||||
boost::shared_ptr<SecTrust> securityTrust;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SecTrust> securityTrust;
|
||||
|
||||
SecTrustRef secTrust = NULL;;
|
||||
OSStatus error = SSLCopyPeerTrust(sslContext_.get(), &secTrust);
|
||||
if (error == noErr) {
|
||||
securityTrust = boost::shared_ptr<SecTrust>(secTrust, CFRelease);
|
||||
securityTrust = SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<SecTrust>(secTrust, CFRelease);
|
||||
|
||||
CFIndex chainSize = SecTrustGetCertificateCount(securityTrust.get());
|
||||
for (CFIndex n = 0; n < chainSize; n++) {
|
||||
SecCertificateRef certificate = SecTrustGetCertificateAtIndex(securityTrust.get(), n);
|
||||
if (certificate) {
|
||||
peerCertificateChain.push_back(boost::make_shared<SecureTransportCertificate>(certificate));
|
||||
peerCertificateChain.push_back(SWIFTEN_SHRPTR_NAMESPACE::make_shared<SecureTransportCertificate>(certificate));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -436,30 +436,30 @@ OSStatus SecureTransportServerContext::SSLSocketWriteCallback(SSLConnectionRef c
|
|||
return retValue;
|
||||
}
|
||||
|
||||
boost::shared_ptr<TLSError> SecureTransportServerContext::nativeToTLSError(OSStatus /* error */) {
|
||||
boost::shared_ptr<TLSError> swiftenError;
|
||||
swiftenError = boost::make_shared<TLSError>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSError> SecureTransportServerContext::nativeToTLSError(OSStatus /* error */) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSError> swiftenError;
|
||||
swiftenError = SWIFTEN_SHRPTR_NAMESPACE::make_shared<TLSError>();
|
||||
return swiftenError;
|
||||
}
|
||||
|
||||
boost::shared_ptr<CertificateVerificationError> SecureTransportServerContext::CSSMErrorToVerificationError(OSStatus resultCode) {
|
||||
boost::shared_ptr<CertificateVerificationError> error;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> SecureTransportServerContext::CSSMErrorToVerificationError(OSStatus resultCode) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> error;
|
||||
switch(resultCode) {
|
||||
case CSSMERR_TP_NOT_TRUSTED:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_TP_NOT_TRUSTED" << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::Untrusted);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::Untrusted);
|
||||
break;
|
||||
case CSSMERR_TP_CERT_NOT_VALID_YET:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_TP_CERT_NOT_VALID_YET" << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::NotYetValid);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::NotYetValid);
|
||||
break;
|
||||
case CSSMERR_TP_CERT_EXPIRED:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_TP_CERT_EXPIRED" << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::Expired);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::Expired);
|
||||
break;
|
||||
case CSSMERR_TP_CERT_REVOKED:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_TP_CERT_REVOKED" << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::Revoked);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::Revoked);
|
||||
break;
|
||||
case CSSMERR_TP_VERIFY_ACTION_FAILED:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_TP_VERIFY_ACTION_FAILED" << std::endl;
|
||||
|
@ -467,28 +467,28 @@ boost::shared_ptr<CertificateVerificationError> SecureTransportServerContext::CS
|
|||
case CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_APPLETP_INCOMPLETE_REVOCATION_CHECK" << std::endl;
|
||||
if (checkCertificateRevocation_) {
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::RevocationCheckFailed);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::RevocationCheckFailed);
|
||||
}
|
||||
break;
|
||||
case CSSMERR_APPLETP_OCSP_UNAVAILABLE:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_APPLETP_OCSP_UNAVAILABLE" << std::endl;
|
||||
if (checkCertificateRevocation_) {
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::RevocationCheckFailed);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::RevocationCheckFailed);
|
||||
}
|
||||
break;
|
||||
case CSSMERR_APPLETP_SSL_BAD_EXT_KEY_USE:
|
||||
SWIFT_LOG(debug) << "CSSM result code: CSSMERR_APPLETP_SSL_BAD_EXT_KEY_USE" << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::InvalidPurpose);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::InvalidPurpose);
|
||||
break;
|
||||
default:
|
||||
SWIFT_LOG(warning) << "unhandled CSSM error: " << resultCode << ", CSSM_TP_BASE_TP_ERROR: " << CSSM_TP_BASE_TP_ERROR << std::endl;
|
||||
error = boost::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
error = SWIFTEN_SHRPTR_NAMESPACE::make_shared<CertificateVerificationError>(CertificateVerificationError::UnknownError);
|
||||
break;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
void SecureTransportServerContext::fatalError(boost::shared_ptr<TLSError> error, boost::shared_ptr<CertificateVerificationError> certificateError) {
|
||||
void SecureTransportServerContext::fatalError(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<TLSError> error, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<CertificateVerificationError> certificateError) {
|
||||
setState(Error);
|
||||
if (sslContext_) {
|
||||
SSLClose(sslContext_.get());
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "Swiften/Base/boost_bsignals.h"
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/signals.hpp>
|
||||
|
||||
#include "Swiften/Base/SafeByteArray.h"
|
||||
#include "Swiften/TLS/Certificate.h"
|
||||
|
|
|
@ -30,11 +30,11 @@ namespace boost { namespace dll {
|
|||
namespace detail {
|
||||
template <class T>
|
||||
class refc_function {
|
||||
boost::shared_ptr<shared_library> lib_;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library> lib_;
|
||||
T* func_ptr_;
|
||||
|
||||
public:
|
||||
refc_function(const boost::shared_ptr<shared_library>& lib, T* func_ptr) BOOST_NOEXCEPT
|
||||
refc_function(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library>& lib, T* func_ptr) BOOST_NOEXCEPT
|
||||
: lib_(lib)
|
||||
, func_ptr_(func_ptr)
|
||||
{}
|
||||
|
@ -57,8 +57,8 @@ namespace detail {
|
|||
|
||||
template <class T>
|
||||
struct import_type<T, typename boost::enable_if<boost::is_object<T> >::type> {
|
||||
typedef boost::shared_ptr<T> base_type;
|
||||
typedef boost::shared_ptr<T> type;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> base_type;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> type;
|
||||
};
|
||||
} // namespace detail
|
||||
|
||||
|
@ -69,7 +69,7 @@ namespace detail {
|
|||
|
||||
|
||||
/*!
|
||||
* Returns boost::function<T> or boost::shared_ptr<T> that holds an imported function or variable
|
||||
* Returns boost::function<T> or SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> that holds an imported function or variable
|
||||
* from the loaded library and refcounts usage
|
||||
* of the loaded shared library, so that it won't get unload until all copies of return value
|
||||
* are not destroyed.
|
||||
|
@ -82,7 +82,7 @@ namespace detail {
|
|||
* \b Examples:
|
||||
* \code
|
||||
* boost::function<int(int)> f = import<int(int)>(
|
||||
* boost::make_shared<shared_library>("test_lib.so"),
|
||||
* SWIFTEN_SHRPTR_NAMESPACE::make_shared<shared_library>("test_lib.so"),
|
||||
* "integer_func_name"
|
||||
* );
|
||||
* \endcode
|
||||
|
@ -92,7 +92,7 @@ namespace detail {
|
|||
* \endcode
|
||||
*
|
||||
* \code
|
||||
* boost::shared_ptr<int> i = import<int>("test_lib.so", "integer_name");
|
||||
* SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<int> i = import<int>("test_lib.so", "integer_name");
|
||||
* \endcode
|
||||
*
|
||||
* \b Template \b parameter \b T: Type of the symbol that we are going to import. Must be explicitly specified.
|
||||
|
@ -101,7 +101,7 @@ namespace detail {
|
|||
* \param name Null-terminated C or C++ mangled name of the function to import. Can handle std::string, char*, const char*.
|
||||
* \param mode An mode that will be used on library load.
|
||||
*
|
||||
* \return boost::function<T> if T is a function type, or boost::shared_ptr<T> if T is an object type.
|
||||
* \return boost::function<T> if T is a function type, or SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> if T is an object type.
|
||||
*
|
||||
* \throw boost::system::system_error if symbol does not exist or if the DLL/DSO was not loaded.
|
||||
* Overload that accepts path also throws std::bad_alloc in case of insufficient memory.
|
||||
|
@ -116,28 +116,28 @@ BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const st
|
|||
load_mode::type mode = load_mode::default_mode)
|
||||
{
|
||||
return boost::dll::import<T>(
|
||||
boost::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
SWIFTEN_SHRPTR_NAMESPACE::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
name.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
//! \overload boost::dll::import(const boost::filesystem::path& lib, const char* name, load_mode::type mode)
|
||||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::shared_ptr<shared_library>& lib, const char* name) {
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library>& lib, const char* name) {
|
||||
typedef typename boost::dll::detail::import_type<T>::base_type type;
|
||||
return type(lib, &lib->get<T>(name));
|
||||
}
|
||||
|
||||
//! \overload boost::dll::import(const boost::filesystem::path& lib, const char* name, load_mode::type mode)
|
||||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::shared_ptr<shared_library>& lib, const std::string& name) {
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library>& lib, const std::string& name) {
|
||||
return boost::dll::import<T>(lib, name.c_str());
|
||||
}
|
||||
|
||||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const char* name, load_mode::type mode) {
|
||||
return boost::dll::import<T>(
|
||||
boost::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
SWIFTEN_SHRPTR_NAMESPACE::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
name
|
||||
);
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const ch
|
|||
|
||||
|
||||
/*!
|
||||
* Returns boost::function<T> or boost::shared_ptr<T> that holds an imported function or variable
|
||||
* Returns boost::function<T> or SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> that holds an imported function or variable
|
||||
* from the loaded library and refcounts usage
|
||||
* of the loaded shared library, so that it won't get unload until all copies of return value
|
||||
* are not destroyed.
|
||||
|
@ -159,7 +159,7 @@ BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const ch
|
|||
* \b Examples:
|
||||
* \code
|
||||
* boost::function<int(int)> f = import_alias<int(int)>(
|
||||
* boost::make_shared<shared_library>("test_lib.so"),
|
||||
* SWIFTEN_SHRPTR_NAMESPACE::make_shared<shared_library>("test_lib.so"),
|
||||
* "integer_func_alias_name"
|
||||
* );
|
||||
* \endcode
|
||||
|
@ -169,7 +169,7 @@ BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const ch
|
|||
* \endcode
|
||||
*
|
||||
* \code
|
||||
* boost::shared_ptr<int> i = import_alias<int>("test_lib.so", "integer_alias_name");
|
||||
* SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<int> i = import_alias<int>("test_lib.so", "integer_alias_name");
|
||||
* \endcode
|
||||
*
|
||||
* \b Template \b parameter \b T: Type of the symbol alias that we are going to import. Must be explicitly specified.
|
||||
|
@ -178,7 +178,7 @@ BOOST_DLL_IMPORT_RESULT_TYPE import(const boost::filesystem::path& lib, const ch
|
|||
* \param name Null-terminated C or C++ mangled name of the function or variable to import. Can handle std::string, char*, const char*.
|
||||
* \param mode An mode that will be used on library load.
|
||||
*
|
||||
* \return boost::function<T> if T is a function type, or boost::shared_ptr<T> if T is an object type.
|
||||
* \return boost::function<T> if T is a function type, or SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<T> if T is an object type.
|
||||
*
|
||||
* \throw boost::system::system_error if symbol does not exist or if the DLL/DSO was not loaded.
|
||||
* Overload that accepts path also throws std::bad_alloc in case of insufficient memory.
|
||||
|
@ -193,20 +193,20 @@ BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const boost::filesystem::path& lib, co
|
|||
load_mode::type mode = load_mode::default_mode)
|
||||
{
|
||||
return boost::dll::import_alias<T>(
|
||||
boost::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
SWIFTEN_SHRPTR_NAMESPACE::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
name.c_str()
|
||||
);
|
||||
}
|
||||
|
||||
//! \overload boost::dll::import_alias(const boost::filesystem::path& lib, const char* name, load_mode::type mode)
|
||||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const boost::shared_ptr<shared_library>& lib, const std::string& name) {
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library>& lib, const std::string& name) {
|
||||
return boost::dll::import_alias<T>(lib, name.c_str());
|
||||
}
|
||||
|
||||
//! \overload boost::dll::import_alias(const boost::filesystem::path& lib, const char* name, load_mode::type mode)
|
||||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const boost::shared_ptr<shared_library>& lib, const char* name) {
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<shared_library>& lib, const char* name) {
|
||||
typedef typename boost::dll::detail::import_type<T>::base_type type;
|
||||
return type(lib, lib->get<T*>(name));
|
||||
}
|
||||
|
@ -214,7 +214,7 @@ BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const boost::shared_ptr<shared_library
|
|||
template <class T>
|
||||
BOOST_DLL_IMPORT_RESULT_TYPE import_alias(const boost::filesystem::path& lib, const char* name, load_mode::type mode) {
|
||||
return boost::dll::import_alias<T>(
|
||||
boost::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
SWIFTEN_SHRPTR_NAMESPACE::make_shared<boost::dll::shared_library>(lib, mode),
|
||||
name
|
||||
);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
/// \brief Contains the boost::dll::shared_library class, core class for all the
|
||||
/// DLL/DSO operations.
|
||||
|
||||
// Walkaround for compatibility with boost 1.54
|
||||
#include <boost/move/move.hpp>
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/predef/os.h>
|
||||
#include <boost/utility/explicit_operator_bool.hpp>
|
||||
|
|
33
include/boost/signalslib.hpp
Normal file
33
include/boost/signalslib.hpp
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Walkaroung for Boost, Qt namespace clash
|
||||
*
|
||||
* Taken from boost documantation:
|
||||
* http://www.boost.org/doc/libs/1_55_0/doc/html/signals/s04.html
|
||||
*/
|
||||
|
||||
|
||||
#ifndef SIGNALSLIB_HPP_INCLUDED
|
||||
#define SIGNALSLIB_HPP_INCLUDED
|
||||
|
||||
#if defined(signals) && defined(QOBJECTDEFS_H) && \
|
||||
!defined(QT_MOC_CPP)
|
||||
# undef signals
|
||||
# define signals signals
|
||||
#endif
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
namespace boost
|
||||
{
|
||||
namespace signalslib = signals;
|
||||
}
|
||||
|
||||
#if defined(signals) && defined(QOBJECTDEFS_H) && \
|
||||
!defined(QT_MOC_CPP)
|
||||
# undef signals
|
||||
// Restore the macro definition of "signals", as it was
|
||||
// defined by Qt's <qobjectdefs.h>.
|
||||
# define signals protected
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/assign.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include <boost/signal.hpp>
|
||||
#include <boost/signalslib.hpp>
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <list>
|
||||
#include "Swiften/Elements/Message.h"
|
||||
#include "Swiften/Elements/Presence.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
@ -63,9 +64,9 @@ class Conversation {
|
|||
|
||||
/// \param message Message received from legacy network.
|
||||
/// \param nickname For MUC conversation this is nickname of room participant who sent this message.
|
||||
void handleMessage(boost::shared_ptr<Swift::Message> &message, const std::string &nickname = "");
|
||||
void handleMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message, const std::string &nickname = "");
|
||||
|
||||
void handleRawMessage(boost::shared_ptr<Swift::Message> &message);
|
||||
void handleRawMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message);
|
||||
void handleRawPresence(Swift::Presence::ref presence);
|
||||
|
||||
/// Handles participant change in MUC.
|
||||
|
@ -107,7 +108,7 @@ class Conversation {
|
|||
/// Sends message to Legacy network.
|
||||
|
||||
/// \param message Message.
|
||||
virtual void sendMessage(boost::shared_ptr<Swift::Message> &message) = 0;
|
||||
virtual void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message) = 0;
|
||||
|
||||
/// Returns ConversationManager associated with this Conversation.
|
||||
|
||||
|
@ -147,7 +148,7 @@ class Conversation {
|
|||
|
||||
private:
|
||||
Swift::Presence::ref generatePresence(const std::string &nick, int flag, int status, const std::string &statusMessage, const std::string &newname = "", const std::string &iconhash = "");
|
||||
void cacheMessage(boost::shared_ptr<Swift::Message> &message);
|
||||
void cacheMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message);
|
||||
|
||||
private:
|
||||
ConversationManager *m_conversationManager;
|
||||
|
@ -167,8 +168,8 @@ class Conversation {
|
|||
// connected to single room, we store all those things 10 times.
|
||||
// It would be also great to store last 100 messages per room
|
||||
// every time, so we can get history messages for IRC for example.
|
||||
boost::shared_ptr<Swift::Message> m_subject;
|
||||
std::list<boost::shared_ptr<Swift::Message> > m_cachedMessages;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> m_subject;
|
||||
std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> > m_cachedMessages;
|
||||
|
||||
typedef struct {
|
||||
Swift::Presence::ref presence;
|
||||
|
|
|
@ -49,16 +49,16 @@ class Buddy;
|
|||
class FileTransferManager {
|
||||
public:
|
||||
typedef struct Transfer {
|
||||
boost::shared_ptr<Swift::OutgoingFileTransfer> ft;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::OutgoingFileTransfer> ft;
|
||||
Swift::JID from;
|
||||
Swift::JID to;
|
||||
boost::shared_ptr<Swift::ReadBytestream> readByteStream;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ReadBytestream> readByteStream;
|
||||
} Transfer;
|
||||
|
||||
FileTransferManager(Component *component, UserManager *userManager);
|
||||
virtual ~FileTransferManager();
|
||||
|
||||
FileTransferManager::Transfer sendFile(User *user, Buddy *buddy, boost::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info);
|
||||
FileTransferManager::Transfer sendFile(User *user, Buddy *buddy, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info);
|
||||
|
||||
private:
|
||||
Component *m_component;
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "Swiften/Elements/IQ.h"
|
||||
#include "Swiften/Elements/DiscoInfo.h"
|
||||
#include "Swiften/Elements/Presence.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
|
||||
|
@ -74,11 +75,11 @@ class Frontend {
|
|||
|
||||
virtual void sendRosterRequest(Swift::RosterPayload::ref, Swift::JID to) = 0;
|
||||
|
||||
virtual void sendMessage(boost::shared_ptr<Swift::Message> message) = 0;
|
||||
virtual void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message) = 0;
|
||||
|
||||
virtual void sendIQ(boost::shared_ptr<Swift::IQ>) = 0;
|
||||
virtual void sendIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ>) = 0;
|
||||
|
||||
virtual boost::shared_ptr<Swift::DiscoInfo> sendCapabilitiesRequest(Swift::JID to) = 0;
|
||||
virtual SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> sendCapabilitiesRequest(Swift::JID to) = 0;
|
||||
|
||||
virtual void reconnectUser(const std::string &user) = 0;
|
||||
|
||||
|
@ -98,14 +99,14 @@ class Frontend {
|
|||
virtual bool isRawXMLEnabled() { return false; }
|
||||
|
||||
boost::signal<void (User *, const std::string &name, unsigned int id)> onVCardRequired;
|
||||
boost::signal<void (User *, boost::shared_ptr<Swift::VCard> vcard)> onVCardUpdated;
|
||||
boost::signal<void (User *, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCard> vcard)> onVCardUpdated;
|
||||
boost::signal<void (Buddy *, const Swift::RosterItemPayload &item)> onBuddyUpdated;
|
||||
boost::signal<void (Buddy *)> onBuddyRemoved;
|
||||
boost::signal<void (Buddy *, const Swift::RosterItemPayload &item)> onBuddyAdded;
|
||||
boost::signal<void (Swift::Message::ref message)> onMessageReceived;
|
||||
boost::signal<void (bool /* isAvailable */)> onAvailableChanged;
|
||||
boost::signal<void (boost::shared_ptr<Swift::Presence>) > onPresenceReceived;
|
||||
boost::signal<void (const Swift::JID& jid, boost::shared_ptr<Swift::DiscoInfo> info)> onCapabilitiesReceived;
|
||||
boost::signal<void (SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Presence>) > onPresenceReceived;
|
||||
boost::signal<void (const Swift::JID& jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info)> onCapabilitiesReceived;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -22,8 +22,10 @@
|
|||
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <boost/signal.hpp>
|
||||
|
||||
#include "Swiften/FileTransfer/ReadBytestream.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
@ -34,7 +36,7 @@ class MemoryReadBytestream : public Swift::ReadBytestream {
|
|||
|
||||
unsigned long appendData(const std::string &data);
|
||||
|
||||
virtual boost::shared_ptr<std::vector<unsigned char> > read(size_t size);
|
||||
virtual SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<std::vector<unsigned char> > read(size_t size);
|
||||
|
||||
void setFinished() { m_finished = true; }
|
||||
bool isFinished() const;
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include "Swiften/Parser/XMPPParser.h"
|
||||
#include "Swiften/Parser/XMPPParserClient.h"
|
||||
#include "Swiften/Serializer/XMPPSerializer.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
#include <Swiften/Version.h>
|
||||
#include <Swiften/FileTransfer/FileTransfer.h>
|
||||
#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000)
|
||||
|
@ -68,7 +69,7 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
int pongReceived;
|
||||
std::list<User *> users;
|
||||
Swift::SafeByteArray data;
|
||||
boost::shared_ptr<Swift::Connection> connection;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> connection;
|
||||
unsigned long res;
|
||||
unsigned long init_res;
|
||||
unsigned long shared;
|
||||
|
@ -104,13 +105,13 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
|
||||
bool moveToLongRunBackend(User *user);
|
||||
|
||||
void handleMessageReceived(NetworkConversation *conv, boost::shared_ptr<Swift::Message> &message);
|
||||
void handleMessageReceived(NetworkConversation *conv, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message);
|
||||
|
||||
public:
|
||||
void handleNewClientConnection(boost::shared_ptr<Swift::Connection> c);
|
||||
void handleNewClientConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> c);
|
||||
void handleSessionFinished(Backend *c);
|
||||
void handlePongReceived(Backend *c);
|
||||
void handleDataRead(Backend *c, boost::shared_ptr<Swift::SafeByteArray> data);
|
||||
void handleDataRead(Backend *c, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data);
|
||||
|
||||
void handleConnectedPayload(const std::string &payload);
|
||||
void handleDisconnectedPayload(const std::string &payload);
|
||||
|
@ -148,7 +149,7 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
|
||||
void handleBlockToggled(Buddy *buddy);
|
||||
|
||||
void handleVCardUpdated(User *user, boost::shared_ptr<Swift::VCard> vcard);
|
||||
void handleVCardUpdated(User *user, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCard> vcard);
|
||||
void handleVCardRequired(User *user, const std::string &name, unsigned int id);
|
||||
|
||||
void handleFTStateChanged(Swift::FileTransfer::State state, const std::string &userName, const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long id);
|
||||
|
@ -158,7 +159,7 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
|
||||
void handlePIDTerminated(unsigned long pid);
|
||||
private:
|
||||
void send(boost::shared_ptr<Swift::Connection> &, const std::string &data);
|
||||
void send(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> &, const std::string &data);
|
||||
|
||||
void pingTimeout();
|
||||
void sendPing(Backend *c);
|
||||
|
@ -166,14 +167,14 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
Backend *getFreeClient(bool acceptUsers = true, bool longRun = false, bool check = false);
|
||||
void connectWaitingUsers();
|
||||
void loginDelayFinished();
|
||||
void handleRawIQReceived(boost::shared_ptr<Swift::IQ> iq);
|
||||
void handleRawPresenceReceived(boost::shared_ptr<Swift::Presence> presence);
|
||||
void handleRawIQReceived(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq);
|
||||
void handleRawPresenceReceived(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Presence> presence);
|
||||
|
||||
void handleStreamStart(const Swift::ProtocolHeader&) {}
|
||||
#if HAVE_SWIFTEN_3
|
||||
void handleElement(boost::shared_ptr<Swift::ToplevelElement> element);
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ToplevelElement> element);
|
||||
#else
|
||||
void handleElement(boost::shared_ptr<Swift::Element> element);
|
||||
void handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Element> element);
|
||||
#endif
|
||||
void handleStreamEnd() {}
|
||||
|
||||
|
@ -182,7 +183,7 @@ class NetworkPluginServer : Swift::XMPPParserClient {
|
|||
RosterResponder *m_rosterResponder;
|
||||
BlockResponder *m_blockResponder;
|
||||
Config *m_config;
|
||||
boost::shared_ptr<Swift::ConnectionServer> m_server;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ConnectionServer> m_server;
|
||||
std::list<Backend *> m_clients;
|
||||
std::vector<unsigned long> m_pids;
|
||||
Swift::Timer::ref m_pingTimer;
|
||||
|
|
|
@ -22,12 +22,12 @@
|
|||
|
||||
#include <map>
|
||||
|
||||
#include <boost/signals.hpp>
|
||||
|
||||
#include <string>
|
||||
#include <Swiften/Elements/Presence.h>
|
||||
#include <Swiften/Client/StanzaChannel.h>
|
||||
|
||||
#include <Swiften/Base/boost_bsignals.h>
|
||||
|
||||
namespace Transport {
|
||||
|
||||
class Frontend;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <map>
|
||||
#include <boost/signal.hpp>
|
||||
#include <boost/pool/pool_alloc.hpp>
|
||||
#include <boost/pool/object_pool.hpp>
|
||||
// #include "rosterstorage.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include <boost/signal.hpp>
|
||||
#include <boost/bind.hpp>
|
||||
#include "Swiften/Network/BoostTimerFactory.h"
|
||||
#include "Swiften/Network/BoostIOServiceThread.h"
|
||||
|
@ -28,6 +29,7 @@
|
|||
#include "Swiften/Elements/DiscoInfo.h"
|
||||
#include "Swiften/Elements/Presence.h"
|
||||
#include "Swiften/Elements/IQ.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
class StorageBackend;
|
||||
|
@ -108,7 +110,7 @@ namespace Transport {
|
|||
/// \param presence Presence.
|
||||
boost::signal<void (Swift::Presence::ref presence)> onUserPresenceReceived;
|
||||
|
||||
boost::signal<void (boost::shared_ptr<Swift::IQ>)> onRawIQReceived;
|
||||
boost::signal<void (SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ>)> onRawIQReceived;
|
||||
|
||||
boost::signal<void ()> onAdminInterfaceSet;
|
||||
|
||||
|
@ -134,7 +136,7 @@ namespace Transport {
|
|||
}
|
||||
|
||||
private:
|
||||
void handleDiscoInfoResponse(boost::shared_ptr<Swift::DiscoInfo> info, Swift::ErrorPayload::ref error, const Swift::JID& jid);
|
||||
void handleDiscoInfoResponse(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info, Swift::ErrorPayload::ref error, const Swift::JID& jid);
|
||||
void handleCapsChanged(const Swift::JID& jid);
|
||||
|
||||
void handleBackendConfigChanged();
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
#include <time.h>
|
||||
#include "transport/StorageBackend.h"
|
||||
#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
|
||||
|
@ -30,6 +31,7 @@
|
|||
#include "Swiften/Elements/DiscoInfo.h"
|
||||
#include "Swiften/Network/Timer.h"
|
||||
#include "Swiften/Network/Connection.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
@ -89,7 +91,7 @@ class User {
|
|||
|
||||
void handleSubscription(Swift::Presence::ref presence);
|
||||
|
||||
void handleDiscoInfo(const Swift::JID& jid, boost::shared_ptr<Swift::DiscoInfo> info);
|
||||
void handleDiscoInfo(const Swift::JID& jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info);
|
||||
|
||||
time_t &getLastActivity() {
|
||||
return m_lastActivity;
|
||||
|
@ -169,10 +171,10 @@ class User {
|
|||
bool m_readyForConnect;
|
||||
bool m_ignoreDisconnect;
|
||||
Swift::Timer::ref m_reconnectTimer;
|
||||
boost::shared_ptr<Swift::Connection> connection;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> connection;
|
||||
time_t m_lastActivity;
|
||||
std::map<Swift::JID, Swift::DiscoInfo::ref> m_legacyCaps;
|
||||
std::vector<boost::shared_ptr<Swift::OutgoingFileTransfer> > m_filetransfers;
|
||||
std::vector<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::OutgoingFileTransfer> > m_filetransfers;
|
||||
int m_resources;
|
||||
int m_reconnectCounter;
|
||||
std::list<Swift::Presence::ref> m_joinedRooms;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include "Swiften/Elements/Message.h"
|
||||
|
@ -29,6 +30,7 @@
|
|||
#include "Swiften/Elements/DiscoInfo.h"
|
||||
#include "Swiften/Elements/VCard.h"
|
||||
#include "Swiften/Network/Timer.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
@ -143,7 +145,7 @@ class UserManager /*: public Swift::EntityCapsProvider*/ {
|
|||
void handleSubscription(Swift::Presence::ref presence);
|
||||
void handleMUCPresence(Swift::Presence::ref presence);
|
||||
void handleRemoveTimeout(const std::string jid, User *user, bool reconnect);
|
||||
void handleDiscoInfo(const Swift::JID& jid, boost::shared_ptr<Swift::DiscoInfo> info);
|
||||
void handleDiscoInfo(const Swift::JID& jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info);
|
||||
void addUser(User *user);
|
||||
|
||||
long m_onlineBuddies;
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <Swiften/Base/SafeByteArray.h>
|
||||
#include "Swiften/Version.h"
|
||||
#include "Swiften/Network/Timer.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000)
|
||||
|
||||
|
@ -66,7 +67,7 @@ class WebSocketClient {
|
|||
|
||||
private:
|
||||
void handleDNSResult(const std::vector<Swift::HostAddress>&, boost::optional<Swift::DomainNameResolveError>);
|
||||
void handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data);
|
||||
void handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data);
|
||||
void handleConnected(bool error);
|
||||
void handleDisconnected(const boost::optional<Swift::Connection::Error> &error);
|
||||
|
||||
|
@ -74,8 +75,8 @@ class WebSocketClient {
|
|||
|
||||
private:
|
||||
Component *m_component;
|
||||
boost::shared_ptr<Swift::DomainNameAddressQuery> m_dnsQuery;
|
||||
boost::shared_ptr<Swift::Connection> m_conn;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DomainNameAddressQuery> m_dnsQuery;
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> m_conn;
|
||||
Swift::TLSConnectionFactory *m_tlsConnectionFactory;
|
||||
Swift::PlatformTLSFactories *m_tlsFactory;
|
||||
std::string m_host;
|
||||
|
|
|
@ -137,10 +137,10 @@ std::vector<Swift::Presence::ref> &Buddy::generatePresenceStanzas(int features,
|
|||
|
||||
|
||||
// if (features & 0/*TRANSPORT_FEATURE_AVATARS*/) {
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::VCardUpdate (getIconHash())));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::VCardUpdate (getIconHash())));
|
||||
// }
|
||||
// if (isBlocked()) {
|
||||
// presence->addPayload(boost::shared_ptr<Swift::Payload>(new Transport::BlockPayload ()));
|
||||
// presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Transport::BlockPayload ()));
|
||||
// }
|
||||
}
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ if (APPLE)
|
|||
TARGET_LINK_LIBRARIES(transport ${APPLE_FRAMEWORKS})
|
||||
endif()
|
||||
|
||||
|
||||
INSTALL(TARGETS transport LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} COMPONENT libraries)
|
||||
|
||||
#CONFIGURE_FILE(transport.pc.in "${CMAKE_CURRENT_BINARY_DIR}/transport.pc")
|
||||
|
|
|
@ -88,7 +88,7 @@ void Conversation::destroyRoom() {
|
|||
c2.code = 307;
|
||||
p->addStatusCode(c2);
|
||||
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(p));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(p));
|
||||
BOOST_FOREACH(const Swift::JID &jid, m_jids) {
|
||||
presence->setTo(jid);
|
||||
m_conversationManager->getComponent()->getFrontend()->sendPresence(presence);
|
||||
|
@ -101,9 +101,9 @@ void Conversation::setRoom(const std::string &room) {
|
|||
m_legacyName = m_room + "/" + m_legacyName;
|
||||
}
|
||||
|
||||
void Conversation::cacheMessage(boost::shared_ptr<Swift::Message> &message) {
|
||||
void Conversation::cacheMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message) {
|
||||
boost::posix_time::ptime timestamp = boost::posix_time::second_clock::universal_time();
|
||||
boost::shared_ptr<Swift::Delay> delay(boost::make_shared<Swift::Delay>());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Delay> delay(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::Delay>());
|
||||
delay->setStamp(timestamp);
|
||||
message->addPayload(delay);
|
||||
m_cachedMessages.push_back(message);
|
||||
|
@ -112,7 +112,7 @@ void Conversation::cacheMessage(boost::shared_ptr<Swift::Message> &message) {
|
|||
}
|
||||
}
|
||||
|
||||
void Conversation::handleRawMessage(boost::shared_ptr<Swift::Message> &message) {
|
||||
void Conversation::handleRawMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message) {
|
||||
if (message->getType() != Swift::Message::Groupchat) {
|
||||
if (m_conversationManager->getComponent()->inServerMode() && m_conversationManager->getUser()->shouldCacheMessages()) {
|
||||
cacheMessage(message);
|
||||
|
@ -145,7 +145,7 @@ void Conversation::handleRawMessage(boost::shared_ptr<Swift::Message> &message)
|
|||
}
|
||||
}
|
||||
|
||||
void Conversation::handleMessage(boost::shared_ptr<Swift::Message> &message, const std::string &nickname) {
|
||||
void Conversation::handleMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message, const std::string &nickname) {
|
||||
if (m_muc) {
|
||||
message->setType(Swift::Message::Groupchat);
|
||||
}
|
||||
|
@ -269,7 +269,7 @@ void Conversation::sendParticipants(const Swift::JID &to, const std::string &nic
|
|||
}
|
||||
|
||||
void Conversation::sendCachedMessages(const Swift::JID &to) {
|
||||
for (std::list<boost::shared_ptr<Swift::Message> >::const_iterator it = m_cachedMessages.begin(); it != m_cachedMessages.end(); it++) {
|
||||
for (std::list<SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> >::const_iterator it = m_cachedMessages.begin(); it != m_cachedMessages.end(); it++) {
|
||||
if (to.isValid()) {
|
||||
(*it)->setTo(to);
|
||||
}
|
||||
|
@ -321,24 +321,24 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int
|
|||
if (flag & PARTICIPANT_FLAG_CONFLICT) {
|
||||
delete p;
|
||||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::Conflict)));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::Conflict)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_CONFLICT");
|
||||
return presence;
|
||||
}
|
||||
else if (flag & PARTICIPANT_FLAG_NOT_AUTHORIZED) {
|
||||
delete p;
|
||||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::NotAuthorized, Swift::ErrorPayload::Auth, statusMessage)));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::NotAuthorized, Swift::ErrorPayload::Auth, statusMessage)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_NOT_AUTHORIZED");
|
||||
return presence;
|
||||
}
|
||||
else if (flag & PARTICIPANT_FLAG_ROOM_NOT_FOUD) {
|
||||
delete p;
|
||||
presence->setType(Swift::Presence::Error);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::ItemNotFound, Swift::ErrorPayload::Cancel, statusMessage)));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::ErrorPayload(Swift::ErrorPayload::ItemNotFound, Swift::ErrorPayload::Cancel, statusMessage)));
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Generating error presence: PARTICIPANT_FLAG_ROOM_NOT_FOUND");
|
||||
return presence;
|
||||
}
|
||||
|
@ -376,11 +376,11 @@ Swift::Presence::ref Conversation::generatePresence(const std::string &nick, int
|
|||
}
|
||||
|
||||
if (!iconhash.empty()) {
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::VCardUpdate (iconhash)));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::VCardUpdate (iconhash)));
|
||||
}
|
||||
|
||||
p->addItem(item);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(p));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(p));
|
||||
return presence;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ FileTransferManager::FileTransferManager(Component *component, UserManager *user
|
|||
// #else
|
||||
// m_proxyManager = new Swift::SOCKS5BytestreamProxiesManager(m_component->getNetworkFactories()->getConnectionFactory(), m_component->getNetworkFactories()->getTimerFactory(), m_component->getNetworkFactories()->getDomainNameResolver(), m_component->getIQRouter(), "bar.com");
|
||||
// #endif
|
||||
// boost::shared_ptr<Swift::ConnectionServer> server = m_component->getNetworkFactories()->getConnectionServerFactory()->createConnectionServer(19645);
|
||||
// SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ConnectionServer> server = m_component->getNetworkFactories()->getConnectionServerFactory()->createConnectionServer(19645);
|
||||
// server->start();
|
||||
// #if HAVE_SWIFTEN_3
|
||||
// m_proxyServerManager = new Swift::SOCKS5BytestreamServerManager(m_bytestreamRegistry, m_component->getNetworkFactories()->getConnectionServerFactory(), m_component->getNetworkFactories()->getNetworkEnvironment(), m_component->getNetworkFactories()->getNATTraverser());
|
||||
|
@ -82,7 +82,7 @@ FileTransferManager::~FileTransferManager() {
|
|||
// #endif
|
||||
}
|
||||
|
||||
FileTransferManager::Transfer FileTransferManager::sendFile(User *user, Buddy *buddy, boost::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info) {
|
||||
FileTransferManager::Transfer FileTransferManager::sendFile(User *user, Buddy *buddy, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info) {
|
||||
FileTransferManager::Transfer transfer;
|
||||
// transfer.from = buddy->getJID();
|
||||
// transfer.to = user->getJID();
|
||||
|
|
|
@ -41,14 +41,14 @@ unsigned long MemoryReadBytestream::appendData(const std::string &data) {
|
|||
return m_data.size();
|
||||
}
|
||||
|
||||
boost::shared_ptr<std::vector<unsigned char> > MemoryReadBytestream::read(size_t size) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<std::vector<unsigned char> > MemoryReadBytestream::read(size_t size) {
|
||||
if (m_data.empty()) {
|
||||
onDataNeeded();
|
||||
return boost::shared_ptr<std::vector<unsigned char> >(new std::vector<unsigned char>());
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<std::vector<unsigned char> >(new std::vector<unsigned char>());
|
||||
}
|
||||
|
||||
if (m_data.size() < size) {
|
||||
boost::shared_ptr<std::vector<unsigned char> > ptr(new std::vector<unsigned char>(m_data.begin(), m_data.end()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<std::vector<unsigned char> > ptr(new std::vector<unsigned char>(m_data.begin(), m_data.end()));
|
||||
m_sent += m_data.size();
|
||||
m_data.clear();
|
||||
if (m_sent == m_size)
|
||||
|
@ -56,7 +56,7 @@ boost::shared_ptr<std::vector<unsigned char> > MemoryReadBytestream::read(size_t
|
|||
onDataNeeded();
|
||||
return ptr;
|
||||
}
|
||||
boost::shared_ptr<std::vector<unsigned char> > ptr(new std::vector<unsigned char>(m_data.begin(), m_data.begin() + size));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<std::vector<unsigned char> > ptr(new std::vector<unsigned char>(m_data.begin(), m_data.begin() + size));
|
||||
m_data.erase(m_data.begin(), m_data.begin() + size);
|
||||
m_sent += size;
|
||||
if (m_sent == m_size)
|
||||
|
|
|
@ -86,8 +86,6 @@
|
|||
exec_ok = false; \
|
||||
}
|
||||
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
DEFINE_LOGGER(logger, "MySQLBackend");
|
||||
|
|
|
@ -83,11 +83,11 @@ class NetworkConversation : public Conversation {
|
|||
}
|
||||
|
||||
// Called when there's new message to legacy network from XMPP network
|
||||
void sendMessage(boost::shared_ptr<Swift::Message> &message) {
|
||||
void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &message) {
|
||||
onMessageToSend(this, message);
|
||||
}
|
||||
|
||||
boost::signal<void (NetworkConversation *, boost::shared_ptr<Swift::Message> &)> onMessageToSend;
|
||||
boost::signal<void (NetworkConversation *, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &)> onMessageToSend;
|
||||
};
|
||||
|
||||
class NetworkFactory : public Factory {
|
||||
|
@ -389,7 +389,7 @@ void NetworkPluginServer::loginDelayFinished() {
|
|||
connectWaitingUsers();
|
||||
}
|
||||
|
||||
void NetworkPluginServer::handleNewClientConnection(boost::shared_ptr<Swift::Connection> c) {
|
||||
void NetworkPluginServer::handleNewClientConnection(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> c) {
|
||||
// Create new Backend instance
|
||||
Backend *client = new Backend;
|
||||
client->pongReceived = -1;
|
||||
|
@ -495,7 +495,7 @@ void NetworkPluginServer::handleVCardPayload(const std::string &data) {
|
|||
}
|
||||
std::string field;
|
||||
|
||||
boost::shared_ptr<Swift::VCard> vcard(new Swift::VCard());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCard> vcard(new Swift::VCard());
|
||||
|
||||
utf8::replace_invalid(payload.fullname().begin(), payload.fullname().end(), std::back_inserter(field), '_');
|
||||
vcard->setFullName(field);
|
||||
|
@ -559,8 +559,8 @@ void NetworkPluginServer::handleChatStatePayload(const std::string &data, Swift:
|
|||
}
|
||||
|
||||
// Forward chatstate
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->addPayload(boost::make_shared<Swift::ChatState>(type));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::ChatState>(type));
|
||||
|
||||
conv->handleMessage(msg);
|
||||
}
|
||||
|
@ -679,7 +679,7 @@ void NetworkPluginServer::handleConvMessagePayload(const std::string &data, bool
|
|||
user->updateLastActivity();
|
||||
|
||||
// Set proper body.
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
if (subject) {
|
||||
msg->setSubject(payload.message());
|
||||
}
|
||||
|
@ -693,12 +693,12 @@ void NetworkPluginServer::handleConvMessagePayload(const std::string &data, bool
|
|||
|
||||
// Add xhtml-im payload.
|
||||
if (CONFIG_BOOL(m_config, "service.enable_xhtml") && !payload.xhtml().empty()) {
|
||||
msg->addPayload(boost::make_shared<Swift::XHTMLIMPayload>(payload.xhtml()));
|
||||
msg->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::XHTMLIMPayload>(payload.xhtml()));
|
||||
}
|
||||
|
||||
if (!payload.timestamp().empty()) {
|
||||
boost::posix_time::ptime timestamp = boost::posix_time::from_iso_string(payload.timestamp());
|
||||
boost::shared_ptr<Swift::Delay> delay(boost::make_shared<Swift::Delay>());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Delay> delay(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::Delay>());
|
||||
delay->setStamp(timestamp);
|
||||
msg->addPayload(delay);
|
||||
}
|
||||
|
@ -754,8 +754,8 @@ void NetworkPluginServer::handleConvMessageAckPayload(const std::string &data) {
|
|||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->addPayload(boost::make_shared<Swift::DeliveryReceipt>(payload.id()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::DeliveryReceipt>(payload.id()));
|
||||
|
||||
NetworkConversation *conv = (NetworkConversation *) user->getConversationManager()->getConversation(payload.buddyname());
|
||||
|
||||
|
@ -779,9 +779,9 @@ void NetworkPluginServer::handleAttentionPayload(const std::string &data) {
|
|||
if (!user)
|
||||
return;
|
||||
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setBody(payload.message());
|
||||
msg->addPayload(boost::make_shared<Swift::AttentionPayload>());
|
||||
msg->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::AttentionPayload>());
|
||||
|
||||
// Attentions trigger new Conversation creation
|
||||
NetworkConversation *conv = (NetworkConversation *) user->getConversationManager()->getConversation(payload.buddyname());
|
||||
|
@ -831,7 +831,7 @@ void NetworkPluginServer::handleFTStartPayload(const std::string &data) {
|
|||
fileInfo.setName(payload.filename());
|
||||
|
||||
Backend *c = (Backend *) user->getData();
|
||||
boost::shared_ptr<MemoryReadBytestream> bytestream(new MemoryReadBytestream(payload.size()));
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<MemoryReadBytestream> bytestream(new MemoryReadBytestream(payload.size()));
|
||||
bytestream->onDataNeeded.connect(boost::bind(&NetworkPluginServer::handleFTDataNeeded, this, c, bytestream_id + 1));
|
||||
|
||||
LOG4CXX_INFO(logger, "jid=" << buddy->getJID());
|
||||
|
@ -966,7 +966,7 @@ void NetworkPluginServer::handleQueryPayload(Backend *b, const std::string &data
|
|||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setBody(payload.config());
|
||||
m_adminInterface->handleQuery(msg);
|
||||
|
||||
|
@ -1022,11 +1022,11 @@ void NetworkPluginServer::handleRoomListPayload(const std::string &data) {
|
|||
}
|
||||
}
|
||||
#if HAVE_SWIFTEN_3
|
||||
void NetworkPluginServer::handleElement(boost::shared_ptr<Swift::ToplevelElement> element) {
|
||||
void NetworkPluginServer::handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ToplevelElement> element) {
|
||||
#else
|
||||
void NetworkPluginServer::handleElement(boost::shared_ptr<Swift::Element> element) {
|
||||
void NetworkPluginServer::handleElement(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Element> element) {
|
||||
#endif
|
||||
boost::shared_ptr<Swift::Stanza> stanza = boost::dynamic_pointer_cast<Swift::Stanza>(element);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Stanza> stanza = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Stanza>(element);
|
||||
if (!stanza) {
|
||||
return;
|
||||
}
|
||||
|
@ -1073,7 +1073,7 @@ void NetworkPluginServer::handleElement(boost::shared_ptr<Swift::Element> elemen
|
|||
}
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Message> message = boost::dynamic_pointer_cast<Swift::Message>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Message>(stanza);
|
||||
if (message) {
|
||||
if (conv) {
|
||||
conv->handleRawMessage(message);
|
||||
|
@ -1084,7 +1084,7 @@ void NetworkPluginServer::handleElement(boost::shared_ptr<Swift::Element> elemen
|
|||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Presence> presence = boost::dynamic_pointer_cast<Swift::Presence>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Presence> presence = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::Presence>(stanza);
|
||||
if (presence) {
|
||||
if (buddy) {
|
||||
if (!buddy->isAvailable() && presence->getType() != Swift::Presence::Unavailable) {
|
||||
|
@ -1103,7 +1103,7 @@ void NetworkPluginServer::handleElement(boost::shared_ptr<Swift::Element> elemen
|
|||
}
|
||||
|
||||
// TODO: Move m_id2resource in User and clean it up
|
||||
boost::shared_ptr<Swift::IQ> iq = boost::dynamic_pointer_cast<Swift::IQ>(stanza);
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq = SWIFTEN_SHRPTR_NAMESPACE::dynamic_pointer_cast<Swift::IQ>(stanza);
|
||||
if (iq) {
|
||||
if (m_id2resource.find(stanza->getTo().toBare().toString() + stanza->getID()) != m_id2resource.end()) {
|
||||
iq->setTo(Swift::JID(iq->getTo().getNode(), iq->getTo().getDomain(), m_id2resource[stanza->getTo().toBare().toString() + stanza->getID()]));
|
||||
|
@ -1126,7 +1126,7 @@ void NetworkPluginServer::handleRawXML(const std::string &xml) {
|
|||
m_xmppParser->parse(xml);
|
||||
}
|
||||
|
||||
void NetworkPluginServer::handleRawPresenceReceived(boost::shared_ptr<Swift::Presence> presence) {
|
||||
void NetworkPluginServer::handleRawPresenceReceived(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Presence> presence) {
|
||||
if (!CONFIG_BOOL_DEFAULTED(m_config, "features.rawxml", false)) {
|
||||
return;
|
||||
}
|
||||
|
@ -1153,7 +1153,7 @@ void NetworkPluginServer::handleRawPresenceReceived(boost::shared_ptr<Swift::Pre
|
|||
send(c->connection, xml);
|
||||
}
|
||||
|
||||
void NetworkPluginServer::handleRawIQReceived(boost::shared_ptr<Swift::IQ> iq) {
|
||||
void NetworkPluginServer::handleRawIQReceived(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq) {
|
||||
User *user = m_userManager->getUser(iq->getFrom().toBare());
|
||||
if (!user)
|
||||
return;
|
||||
|
@ -1180,7 +1180,7 @@ void NetworkPluginServer::handleRawIQReceived(boost::shared_ptr<Swift::IQ> iq) {
|
|||
send(c->connection, xml);
|
||||
}
|
||||
|
||||
void NetworkPluginServer::handleDataRead(Backend *c, boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void NetworkPluginServer::handleDataRead(Backend *c, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
// Append data to buffer
|
||||
c->data.insert(c->data.end(), data->begin(), data->end());
|
||||
|
||||
|
@ -1300,7 +1300,7 @@ void NetworkPluginServer::handleDataRead(Backend *c, boost::shared_ptr<Swift::Sa
|
|||
}
|
||||
}
|
||||
|
||||
void NetworkPluginServer::send(boost::shared_ptr<Swift::Connection> &c, const std::string &data) {
|
||||
void NetworkPluginServer::send(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Connection> &c, const std::string &data) {
|
||||
// generate header - size of wrapper message
|
||||
uint32_t size = htonl(data.size());
|
||||
char *header = (char *) &size;
|
||||
|
@ -1637,7 +1637,7 @@ void NetworkPluginServer::handleUserDestroyed(User *user) {
|
|||
}
|
||||
}
|
||||
|
||||
void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost::shared_ptr<Swift::Message> &msg) {
|
||||
void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> &msg) {
|
||||
conv->getConversationManager()->getUser()->updateLastActivity();
|
||||
|
||||
if (CONFIG_BOOL_DEFAULTED(m_config, "features.rawxml", false)) {
|
||||
|
@ -1658,7 +1658,7 @@ void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost
|
|||
return;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::ChatState> statePayload = msg->getPayload<Swift::ChatState>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ChatState> statePayload = msg->getPayload<Swift::ChatState>();
|
||||
if (statePayload) {
|
||||
pbnetwork::WrapperMessage_Type type = pbnetwork::WrapperMessage_Type_TYPE_BUDDY_CHANGED;
|
||||
switch (statePayload->getChatState()) {
|
||||
|
@ -1692,7 +1692,7 @@ void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost
|
|||
}
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::AttentionPayload> attentionPayload = msg->getPayload<Swift::AttentionPayload>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::AttentionPayload> attentionPayload = msg->getPayload<Swift::AttentionPayload>();
|
||||
if (attentionPayload) {
|
||||
pbnetwork::ConversationMessage m;
|
||||
m.set_username(conv->getConversationManager()->getUser()->getJID().toBare());
|
||||
|
@ -1731,7 +1731,7 @@ void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost
|
|||
|
||||
|
||||
std::string xhtml;
|
||||
boost::shared_ptr<Swift::XHTMLIMPayload> xhtmlPayload = msg->getPayload<Swift::XHTMLIMPayload>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::XHTMLIMPayload> xhtmlPayload = msg->getPayload<Swift::XHTMLIMPayload>();
|
||||
if (xhtmlPayload) {
|
||||
xhtml = xhtmlPayload->getBody();
|
||||
}
|
||||
|
@ -1748,7 +1748,7 @@ void NetworkPluginServer::handleMessageReceived(NetworkConversation *conv, boost
|
|||
m.set_buddyname(conv->getLegacyName());
|
||||
m.set_message(body);
|
||||
m.set_xhtml(xhtml);
|
||||
boost::shared_ptr<Swift::DeliveryReceiptRequest> receiptPayload = msg->getPayload<Swift::DeliveryReceiptRequest>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DeliveryReceiptRequest> receiptPayload = msg->getPayload<Swift::DeliveryReceiptRequest>();
|
||||
if (receiptPayload && !msg->getID().empty()) {
|
||||
m.set_id(msg->getID());
|
||||
}
|
||||
|
@ -1873,7 +1873,7 @@ void NetworkPluginServer::handleBlockToggled(Buddy *b) {
|
|||
}
|
||||
|
||||
|
||||
void NetworkPluginServer::handleVCardUpdated(User *user, boost::shared_ptr<Swift::VCard> v) {
|
||||
void NetworkPluginServer::handleVCardUpdated(User *user, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCard> v) {
|
||||
if (!v) {
|
||||
LOG4CXX_INFO(logger, user->getJID().toString() << ": Received empty VCard");
|
||||
return;
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "log4cxx/logger.h"
|
||||
|
||||
using namespace log4cxx;
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ void PresenceOracle::handleStanzaChannelAvailableChanged(bool available) {
|
|||
}
|
||||
|
||||
void PresenceOracle::clearPresences(const Swift::JID& bareJID) {
|
||||
std::map<JID, boost::shared_ptr<Presence> > jidMap = entries_[bareJID];
|
||||
std::map<JID, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Presence> > jidMap = entries_[bareJID];
|
||||
jidMap.clear();
|
||||
entries_[bareJID] = jidMap;
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ void PresenceOracle::handleIncomingPresence(Presence::ref presence) {
|
|||
passedPresence->setFrom(bareJID);
|
||||
passedPresence->setStatus(presence->getStatus());
|
||||
}
|
||||
std::map<JID, boost::shared_ptr<Presence> > jidMap = entries_[bareJID];
|
||||
std::map<JID, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Presence> > jidMap = entries_[bareJID];
|
||||
if (passedPresence->getFrom().isBare() && presence->getType() == Presence::Unavailable) {
|
||||
/* Have a bare-JID only presence of offline */
|
||||
jidMap.clear();
|
||||
|
|
|
@ -112,7 +112,7 @@ void RosterManager::sendBuddySubscribePresence(Buddy *buddy) {
|
|||
response->setFrom(buddy->getJID().toBare());
|
||||
response->setType(Swift::Presence::Subscribe);
|
||||
if (!buddy->getAlias().empty()) {
|
||||
response->addPayload(boost::make_shared<Swift::Nickname>(buddy->getAlias()));
|
||||
response->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::Nickname>(buddy->getAlias()));
|
||||
}
|
||||
m_component->getFrontend()->sendPresence(response);
|
||||
}
|
||||
|
|
|
@ -61,8 +61,6 @@
|
|||
LOG4CXX_ERROR(logger, NAME<< (sqlite3_errmsg(m_db) == NULL ? "" : sqlite3_errmsg(m_db)));\
|
||||
}
|
||||
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
DEFINE_LOGGER(logger, "SQLite3Backend");
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include "transport/ThreadPool.h"
|
||||
#include "transport/Logging.h"
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
namespace Transport {
|
||||
|
||||
DEFINE_LOGGER(logger, "ThreadPool")
|
||||
|
@ -10,7 +12,7 @@ static void Worker(Thread *t, int wid, Swift::EventLoop *loop)
|
|||
{
|
||||
LOG4CXX_INFO(logger, "Starting thread " << wid)
|
||||
t->run();
|
||||
loop->postEvent(boost::bind(boost::ref(onWorkCompleted), t, wid), boost::shared_ptr<Swift::EventOwner>());
|
||||
loop->postEvent(boost::bind(boost::ref(onWorkCompleted), t, wid), SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::EventOwner>());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -39,8 +39,6 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
using namespace boost;
|
||||
|
||||
#define foreach BOOST_FOREACH
|
||||
|
||||
namespace Transport {
|
||||
|
@ -78,9 +76,9 @@ User::~User(){
|
|||
LOG4CXX_INFO(logger, m_jid.toString() << ": Destroying");
|
||||
// if (m_component->inServerMode()) {
|
||||
// #if HAVE_SWIFTEN_3
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(m_jid, boost::shared_ptr<Swift::ToplevelElement>());
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(m_jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ToplevelElement>());
|
||||
// #else
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(m_jid, boost::shared_ptr<Swift::Element>());
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(m_jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Element>());
|
||||
// #endif
|
||||
// }
|
||||
|
||||
|
@ -174,7 +172,7 @@ void User::leaveRoom(const std::string &room) {
|
|||
void User::handlePresence(Swift::Presence::ref presence, bool forceJoin) {
|
||||
LOG4CXX_INFO(logger, "PRESENCE " << presence->getFrom().toString() << " " << presence->getTo().toString());
|
||||
|
||||
boost::shared_ptr<Swift::VCardUpdate> vcardUpdate = presence->getPayload<Swift::VCardUpdate>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::VCardUpdate> vcardUpdate = presence->getPayload<Swift::VCardUpdate>();
|
||||
if (vcardUpdate) {
|
||||
std::string value = "";
|
||||
int type = (int) TYPE_STRING;
|
||||
|
@ -193,7 +191,7 @@ void User::handlePresence(Swift::Presence::ref presence, bool forceJoin) {
|
|||
if (!m_connected) {
|
||||
// we are not connected to legacy network, so we should do it when disco#info arrive :)
|
||||
if (m_readyForConnect == false) {
|
||||
boost::shared_ptr<Swift::CapsInfo> capsInfo = presence->getPayload<Swift::CapsInfo>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::CapsInfo> capsInfo = presence->getPayload<Swift::CapsInfo>();
|
||||
if (capsInfo && capsInfo->getHash() == "sha-1") {
|
||||
if (m_component->getFrontend()->sendCapabilitiesRequest(presence->getFrom()) != Swift::DiscoInfo::ref()) {
|
||||
LOG4CXX_INFO(logger, m_jid.toString() << ": Ready to be connected to legacy network");
|
||||
|
@ -392,7 +390,7 @@ void User::handleSubscription(Swift::Presence::ref presence) {
|
|||
m_rosterManager->handleSubscription(presence);
|
||||
}
|
||||
|
||||
void User::handleDiscoInfo(const Swift::JID& jid, boost::shared_ptr<Swift::DiscoInfo> info) {
|
||||
void User::handleDiscoInfo(const Swift::JID& jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info) {
|
||||
LOG4CXX_INFO(logger, jid.toString() << ": got disco#info");
|
||||
#ifdef SUPPORT_LEGACY_CAPS
|
||||
m_legacyCaps[jid] = info;
|
||||
|
@ -447,11 +445,11 @@ void User::handleDisconnected(const std::string &error, Swift::SpectrumErrorPayl
|
|||
}
|
||||
onDisconnected();
|
||||
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setBody(error);
|
||||
msg->setTo(m_jid.toBare());
|
||||
msg->setFrom(m_component->getJID());
|
||||
msg->addPayload(boost::make_shared<Swift::SpectrumErrorPayload>(e));
|
||||
msg->addPayload(SWIFTEN_SHRPTR_NAMESPACE::make_shared<Swift::SpectrumErrorPayload>(e));
|
||||
m_component->getFrontend()->sendMessage(msg);
|
||||
|
||||
disconnectUser(error, e);
|
||||
|
|
|
@ -142,7 +142,7 @@ int UserManager::getUserCount() {
|
|||
return m_users.size();
|
||||
}
|
||||
|
||||
void UserManager::handleDiscoInfo(const Swift::JID& jid, boost::shared_ptr<Swift::DiscoInfo> info) {
|
||||
void UserManager::handleDiscoInfo(const Swift::JID& jid, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> info) {
|
||||
User *user = getUser(jid.toBare().toString());
|
||||
if (!user) {
|
||||
return;
|
||||
|
@ -278,7 +278,7 @@ void UserManager::handlePresence(Swift::Presence::ref presence) {
|
|||
|
||||
if (CONFIG_BOOL(m_component->getConfig(), "service.vip_only") && res.vip == false) {
|
||||
if (!CONFIG_STRING(m_component->getConfig(), "service.vip_message").empty()) {
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setBody(CONFIG_STRING(m_component->getConfig(), "service.vip_message"));
|
||||
msg->setTo(presence->getFrom());
|
||||
msg->setFrom(m_component->getJID());
|
||||
|
@ -370,7 +370,7 @@ void UserManager::handleMessageReceived(Swift::Message::ref message) {
|
|||
}
|
||||
|
||||
// Do not count chatstate notification...
|
||||
boost::shared_ptr<Swift::ChatState> statePayload = message->getPayload<Swift::ChatState>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ChatState> statePayload = message->getPayload<Swift::ChatState>();
|
||||
if (!statePayload) {
|
||||
messageToBackendSent();
|
||||
}
|
||||
|
@ -555,7 +555,7 @@ void UserManager::connectUser(const Swift::JID &user) {
|
|||
}
|
||||
else {
|
||||
// Send message to currently logged in session
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setBody("You have signed on from another location.");
|
||||
msg->setTo(user);
|
||||
msg->setFrom(m_component->getJID());
|
||||
|
@ -566,9 +566,9 @@ void UserManager::connectUser(const Swift::JID &user) {
|
|||
m_userRegistry->onPasswordValid(user);
|
||||
m_component->onUserPresenceReceived.disconnect(bind(&UserManager::handlePresence, this, _1));
|
||||
// #if HAVE_SWIFTEN_3
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(user, boost::shared_ptr<Swift::ToplevelElement>(new Swift::StreamError()), true);
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(user, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::ToplevelElement>(new Swift::StreamError()), true);
|
||||
// #else
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(user, boost::shared_ptr<Swift::Element>(new Swift::StreamError()), true);
|
||||
// dynamic_cast<Swift::ServerStanzaChannel *>(m_component->getFrontend())->finishSession(user, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Element>(new Swift::StreamError()), true);
|
||||
// #endif
|
||||
m_component->onUserPresenceReceived.connect(bind(&UserManager::handlePresence, this, _1));
|
||||
}
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
#include "Swiften/Network/NetworkFactories.h"
|
||||
|
||||
using namespace Swift;
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
|
@ -44,11 +43,11 @@ UsersReconnecter::UsersReconnecter(Component *component, StorageBackend *storage
|
|||
m_nextUserTimer = m_component->getNetworkFactories()->getTimerFactory()->createTimer(1000);
|
||||
m_nextUserTimer->onTick.connect(boost::bind(&UsersReconnecter::reconnectNextUser, this));
|
||||
|
||||
m_component->onConnected.connect(bind(&UsersReconnecter::handleConnected, this));
|
||||
m_component->onConnected.connect(boost::bind(&UsersReconnecter::handleConnected, this));
|
||||
}
|
||||
|
||||
UsersReconnecter::~UsersReconnecter() {
|
||||
m_component->onConnected.disconnect(bind(&UsersReconnecter::handleConnected, this));
|
||||
m_component->onConnected.disconnect(boost::bind(&UsersReconnecter::handleConnected, this));
|
||||
m_nextUserTimer->stop();
|
||||
m_nextUserTimer->onTick.disconnect(boost::bind(&UsersReconnecter::reconnectNextUser, this));
|
||||
}
|
||||
|
|
|
@ -43,8 +43,6 @@
|
|||
|
||||
using namespace boost::filesystem;
|
||||
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
namespace Util {
|
||||
|
|
|
@ -129,7 +129,7 @@ void WebSocketClient::write(const std::string &data) {
|
|||
LOG4CXX_INFO(logger, m_user << ": > " << data);
|
||||
}
|
||||
|
||||
void WebSocketClient::handleDataRead(boost::shared_ptr<Swift::SafeByteArray> data) {
|
||||
void WebSocketClient::handleDataRead(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::SafeByteArray> data) {
|
||||
std::string d = Swift::safeByteArrayToString(*data);
|
||||
m_buffer += d;
|
||||
|
||||
|
|
|
@ -80,14 +80,14 @@ void SlackFrontend::sendVCard(Swift::VCard::ref vcard, Swift::JID to) {
|
|||
void SlackFrontend::sendRosterRequest(Swift::RosterPayload::ref payload, Swift::JID to) {
|
||||
}
|
||||
|
||||
void SlackFrontend::sendMessage(boost::shared_ptr<Swift::Message> message) {
|
||||
void SlackFrontend::sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message) {
|
||||
return static_cast<SlackUserManager *>(m_userManager)->sendMessage(message);
|
||||
}
|
||||
|
||||
void SlackFrontend::sendIQ(boost::shared_ptr<Swift::IQ> iq) {
|
||||
void SlackFrontend::sendIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ> iq) {
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::DiscoInfo> SlackFrontend::sendCapabilitiesRequest(Swift::JID to) {
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> SlackFrontend::sendCapabilitiesRequest(Swift::JID to) {
|
||||
|
||||
return Swift::DiscoInfo::ref();
|
||||
}
|
||||
|
|
|
@ -53,23 +53,23 @@ namespace Transport {
|
|||
|
||||
virtual void sendRosterRequest(Swift::RosterPayload::ref, Swift::JID to);
|
||||
|
||||
virtual void sendMessage(boost::shared_ptr<Swift::Message> message);
|
||||
virtual void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message);
|
||||
|
||||
virtual void sendIQ(boost::shared_ptr<Swift::IQ>);
|
||||
virtual void sendIQ(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::IQ>);
|
||||
|
||||
virtual void reconnectUser(const std::string &user);
|
||||
|
||||
virtual RosterManager *createRosterManager(User *user, Component *component);
|
||||
virtual User *createUser(const Swift::JID &jid, UserInfo &userInfo, Component *component, UserManager *userManager);
|
||||
virtual UserManager *createUserManager(Component *component, UserRegistry *userRegistry, StorageBackend *storageBackend = NULL);
|
||||
virtual boost::shared_ptr<Swift::DiscoInfo> sendCapabilitiesRequest(Swift::JID to);
|
||||
virtual SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::DiscoInfo> sendCapabilitiesRequest(Swift::JID to);
|
||||
virtual void clearRoomList();
|
||||
virtual void addRoomToRoomList(const std::string &handle, const std::string &name);
|
||||
virtual std::string setOAuth2Code(const std::string &code, const std::string &state);
|
||||
virtual std::string getOAuth2URL(const std::vector<std::string> &args);
|
||||
virtual std::string getRegistrationFields();
|
||||
|
||||
void handleMessage(boost::shared_ptr<Swift::Message> message);
|
||||
void handleMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message);
|
||||
|
||||
ThreadPool *getThreadPool() {
|
||||
return m_tp;
|
||||
|
|
|
@ -43,8 +43,8 @@ Frontend *SlackFrontendPlugin::createFrontend() {
|
|||
|
||||
// SlackFrontendPlugin plugin;
|
||||
|
||||
boost::shared_ptr<FrontendPlugin> get_slack_frontend_plugin() {
|
||||
return boost::make_shared<SlackFrontendPlugin>();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<FrontendPlugin> get_slack_frontend_plugin() {
|
||||
return SWIFTEN_SHRPTR_NAMESPACE::make_shared<SlackFrontendPlugin>();
|
||||
}
|
||||
|
||||
// BOOST_DLL_AUTO_ALIAS(plugin)
|
||||
|
|
|
@ -36,7 +36,7 @@ class SlackFrontendPlugin : public FrontendPlugin {
|
|||
Frontend *createFrontend();
|
||||
};
|
||||
|
||||
boost::shared_ptr<FrontendPlugin> get_slack_frontend_plugin();
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<FrontendPlugin> get_slack_frontend_plugin();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -118,7 +118,7 @@ void SlackSession::sendMessageToAll(const std::string &msg) {
|
|||
}
|
||||
}
|
||||
|
||||
void SlackSession::sendMessage(boost::shared_ptr<Swift::Message> message) {
|
||||
void SlackSession::sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message) {
|
||||
if (m_user) {
|
||||
std::map<std::string, Conversation *> convs = m_user->getConversationManager()->getConversations();
|
||||
for (std::map<std::string, Conversation *> ::const_iterator it = convs.begin(); it != convs.end(); it++) {
|
||||
|
@ -193,7 +193,7 @@ void SlackSession::handleJoinRoomCreated(const std::string &channelId, std::vect
|
|||
presence->setFrom(Swift::JID(m_uinfo.jid + "/default"));
|
||||
presence->setTo(Swift::JID(to + "/" + name));
|
||||
presence->setType(Swift::Presence::Available);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
m_component->getFrontend()->onPresenceReceived(presence);
|
||||
|
||||
m_onlineBuddiesTimer->start();
|
||||
|
@ -217,7 +217,7 @@ void SlackSession::handleSlackChannelCreated(const std::string &channelId) {
|
|||
presence->setFrom(Swift::JID(m_uinfo.jid + "/default"));
|
||||
presence->setTo(m_component->getJID());
|
||||
presence->setType(Swift::Presence::Available);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
m_component->getFrontend()->onPresenceReceived(presence);
|
||||
}
|
||||
|
||||
|
@ -239,7 +239,7 @@ void SlackSession::leaveRoom(const std::string &channel_) {
|
|||
presence->setFrom(Swift::JID(m_uinfo.jid + "/default"));
|
||||
presence->setTo(Swift::JID(to + "/" + m_uinfo.uin));
|
||||
presence->setType(Swift::Presence::Unavailable);
|
||||
presence->addPayload(boost::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
presence->addPayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Payload>(new Swift::MUCPayload()));
|
||||
m_component->getFrontend()->onPresenceReceived(presence);
|
||||
}
|
||||
|
||||
|
@ -250,7 +250,7 @@ void SlackSession::handleMessageReceived(const std::string &channel, const std::
|
|||
}
|
||||
|
||||
if (!to.empty()) {
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setType(Swift::Message::Groupchat);
|
||||
msg->setTo(to);
|
||||
msg->setFrom(Swift::JID(m_uinfo.jid + "/default"));
|
||||
|
@ -287,7 +287,7 @@ void SlackSession::handleMessageReceived(const std::string &channel, const std::
|
|||
continue;
|
||||
}
|
||||
|
||||
boost::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> msg(new Swift::Message());
|
||||
msg->setTo(b->getJID());
|
||||
msg->setFrom(Swift::JID(m_uinfo.jid + "/default"));
|
||||
msg->setBody("<" + m_idManager->getName(user) + "> " + message);
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "Swiften/Elements/Message.h"
|
||||
#include "Swiften/Network/Timer.h"
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
|
||||
|
@ -50,7 +51,7 @@ class SlackSession {
|
|||
|
||||
boost::signal<void (const std::string &user)> onInstallationDone;
|
||||
|
||||
void sendMessage(boost::shared_ptr<Swift::Message> message);
|
||||
void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message);
|
||||
|
||||
void sendMessageToAll(const std::string &msg);
|
||||
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
using namespace boost;
|
||||
|
||||
namespace Transport {
|
||||
|
||||
DEFINE_LOGGER(logger, "SlackUser");
|
||||
|
|
|
@ -232,7 +232,7 @@ void SlackUserManager::sendVCard(unsigned int id, Swift::VCard::ref vcard) {
|
|||
|
||||
}
|
||||
|
||||
void SlackUserManager::sendMessage(boost::shared_ptr<Swift::Message> message) {
|
||||
void SlackUserManager::sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message) {
|
||||
User *user = getUser(message->getTo().toBare().toString());
|
||||
if (!user) {
|
||||
LOG4CXX_ERROR(logger, "Received message for unknown user " << message->getTo().toBare().toString());
|
||||
|
|
|
@ -57,7 +57,7 @@ class SlackUserManager : public UserManager {
|
|||
|
||||
std::string getOAuth2URL(const std::vector<std::string> &args);
|
||||
|
||||
void sendMessage(boost::shared_ptr<Swift::Message> message);
|
||||
void sendMessage(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Swift::Message> message);
|
||||
|
||||
SlackSession *moveTempSession(const std::string &user);
|
||||
void moveTempSession(const std::string &user, SlackSession *session);
|
||||
|
|
|
@ -12,12 +12,14 @@
|
|||
|
||||
#include <Swiften/Elements/Payload.h>
|
||||
|
||||
#include "Swiften/SwiftenCompat.h"
|
||||
|
||||
// This payload is NOT part of ANY XEP and it is only
|
||||
// libtransport related extension.
|
||||
namespace Transport {
|
||||
class BlockPayload : public Swift::Payload {
|
||||
public:
|
||||
typedef boost::shared_ptr<BlockPayload> ref;
|
||||
typedef SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<BlockPayload> ref;
|
||||
|
||||
public:
|
||||
BlockPayload();
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace Transport {
|
|||
BlockSerializer::BlockSerializer() : Swift::GenericPayloadSerializer<BlockPayload>() {
|
||||
}
|
||||
|
||||
std::string BlockSerializer::serializePayload(boost::shared_ptr<BlockPayload> attention) const {
|
||||
std::string BlockSerializer::serializePayload(SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<BlockPayload> attention) const {
|
||||
Swift::XMLElement attentionElement("block", "urn:xmpp:block:0");
|
||||
|
||||
return attentionElement.serialize();
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue