From 93b2e86e9ce5e824a2fad025108e8c3be553df16 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 18 Oct 2011 20:10:09 +0200 Subject: [PATCH] Working dfrotz backend --- backends/frotz/CMakeLists.txt | 2 +- backends/frotz/main.cpp | 10 ++++++++-- backends/libpurple/main.cpp | 2 +- plugin/src/networkplugin.cpp | 2 -- spectrum/src/sample.cfg | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/backends/frotz/CMakeLists.txt b/backends/frotz/CMakeLists.txt index ed843bbb..7ce14f86 100644 --- a/backends/frotz/CMakeLists.txt +++ b/backends/frotz/CMakeLists.txt @@ -6,7 +6,7 @@ FILE(GLOB SRC *.c *.cpp) ADD_EXECUTABLE(spectrum2_frotz_backend ${SRC}) -target_link_libraries(spectrum2_frotz_backend transport pthread transport-plugin) +target_link_libraries(spectrum2_frotz_backend transport pthread transport-plugin ${Boost_LIBRARIES} ${SWIFTEN_LIBRARY} ${LOG4CXX_LIBRARIES}) INSTALL(TARGETS spectrum2_frotz_backend RUNTIME DESTINATION bin) diff --git a/backends/frotz/main.cpp b/backends/frotz/main.cpp index cf9737f4..b1e433a4 100644 --- a/backends/frotz/main.cpp +++ b/backends/frotz/main.cpp @@ -155,12 +155,17 @@ class FrotzNetworkPlugin : public NetworkPlugin { m_factories = new Swift::BoostNetworkFactories(loop); m_conn = m_factories->getConnectionFactory()->createConnection(); m_conn->onDataRead.connect(boost::bind(&FrotzNetworkPlugin::_handleDataRead, this, _1)); + m_conn->connect(Swift::HostAddressPort(Swift::HostAddress(host), port)); // m_conn->onConnectFinished.connect(boost::bind(&FrotzNetworkPlugin::_handleConnected, this, _1)); // m_conn->onDisconnected.connect(boost::bind(&FrotzNetworkPlugin::handleDisconnected, this)); } + void sendData(const std::string &string) { + m_conn->write(Swift::createSafeByteArray(string)); + } + void _handleDataRead(boost::shared_ptr data) { - std::string d = Swift::safeByteArrayToString(*data); + std::string d(data->begin(), data->end()); handleDataRead(d); } @@ -234,7 +239,8 @@ class FrotzNetworkPlugin : public NetworkPlugin { return games; } - void handleMessageSendRequest(const std::string &user, const std::string &legacyName, const std::string &message, const std::string &/*xhtml*/) { + void handleMessageSendRequest(const std::string &user, const std::string &legacyName, const std::string &message, const std::string &xhtml = "") { + std::cout << "aaa\n"; if (message.find("start") == 0) { std::string game = message.substr(6); std::vector lst = getGames(); diff --git a/backends/libpurple/main.cpp b/backends/libpurple/main.cpp index 2ae0d73e..916294b1 100644 --- a/backends/libpurple/main.cpp +++ b/backends/libpurple/main.cpp @@ -502,7 +502,7 @@ class SpectrumNetworkPlugin : public NetworkPlugin { void setDefaultAccountOptions(PurpleAccount *account) { int i = 0; gchar **keys = g_key_file_get_keys (keyfile, "purple", NULL, NULL); - while (keys[i] != NULL) { + while (keys && keys[i] != NULL) { std::string key = keys[i]; PurplePlugin *plugin = purple_find_prpl(purple_account_get_protocol_id(account)); diff --git a/plugin/src/networkplugin.cpp b/plugin/src/networkplugin.cpp index 1064eb8b..9b08d72d 100644 --- a/plugin/src/networkplugin.cpp +++ b/plugin/src/networkplugin.cpp @@ -487,7 +487,6 @@ void NetworkPlugin::handleDataRead(std::string &data) { handleLogoutPayload(wrapper.payload()); break; case pbnetwork::WrapperMessage_Type_TYPE_PING: - LOG4CXX_INFO(logger, "PING RECEIVED"); sendPong(); break; case pbnetwork::WrapperMessage_Type_TYPE_CONV_MESSAGE: @@ -558,7 +557,6 @@ void NetworkPlugin::sendPong() { wrap.SerializeToString(&message); send(message); - LOG4CXX_INFO(logger, "PONG"); sendMemoryUsage(); } diff --git a/spectrum/src/sample.cfg b/spectrum/src/sample.cfg index 6efc9561..8e676756 100644 --- a/spectrum/src/sample.cfg +++ b/spectrum/src/sample.cfg @@ -11,9 +11,9 @@ admin_password=test #cert=server.pfx #patch to PKCS#12 certificate #cert_password=test #password to that certificate if any users_per_backend=10 -backend=/home/hanzz/code/libtransport/backends/libpurple/spectrum2_libpurple_backend +#backend=/home/hanzz/code/libtransport/backends/libpurple/spectrum2_libpurple_backend #backend=/usr/bin/mono /home/hanzz/code/networkplugin-csharp/msnp-sharp-backend/bin/Debug/msnp-sharp-backend.exe -#backend=/home/hanzz/code/libtransport/backends/frotz/spectrum2_frotz_backend +backend=/home/hanzz/code/libtransport/backends/frotz/spectrum2_frotz_backend #backend=../../backends/libircclient-qt/spectrum2_libircclient-qt_backend #protocol=prpl-msn protocol=any