diff --git a/backends/swiften/main.cpp b/backends/swiften/main.cpp index 93137352ebd82ebc499a85cb71585e30ab983247..3ccc632e86584f736ef2cc2331f58f129243410b 100644 --- a/backends/swiften/main.cpp +++ b/backends/swiften/main.cpp @@ -17,9 +17,11 @@ #endif #ifndef __FreeBSD__ +#ifndef __MACH__ // malloc_trim #include "malloc.h" #endif +#endif // Boost #include @@ -189,9 +191,11 @@ class SwiftenPlugin : public NetworkPlugin { #ifndef WIN32 #ifndef __FreeBSD__ +#ifndef __MACH__ // force returning of memory chunks allocated by libxml2 to kernel malloc_trim(0); #endif +#endif #endif } @@ -220,6 +224,10 @@ class SwiftenPlugin : public NetworkPlugin { return; } + if (presence->getPayload() != NULL || presence->getPayload() != NULL) { + return; + } + LOG4CXX_INFO(logger, user << ": " << presence->getFrom().toBare().toString() << " presence changed"); std::string message = presence->getStatus(); @@ -299,7 +307,6 @@ class SwiftenPlugin : public NetworkPlugin { client->getPresenceOracle()->onPresenceChange.disconnect(boost::bind(&SwiftenPlugin::handleSwiftPresenceChanged, this, user, _1)); client->disconnect(); m_mucs.erase(user); - m_users.erase(user); } } @@ -314,7 +321,7 @@ class SwiftenPlugin : public NetworkPlugin { if (client->getMUCRegistry()->isMUC(legacyName)) { message->setType(Swift::Message::Groupchat); boost::shared_ptr muc = m_mucs[user][legacyName]; - handleMessage(user, legacyName, msg, muc->getNickname(), xhtml); +// handleMessage(user, legacyName, msg, muc->getNickname(), xhtml); } client->sendMessage(message);