Files
@ 9a47ea253b06
Branch filter:
Location: libtransport.git/spectrum/src/frontends/xmpp/blockresponder.cpp - annotation
9a47ea253b06
2.2 KiB
text/x-c++hdr
dynamic Boost linking under Windows
8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 fe47e0979be9 78e71f9345c7 78e71f9345c7 78e71f9345c7 78e71f9345c7 78e71f9345c7 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 7c93aee6f49a 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 6d2f8c192761 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 af75453834dd 7cce6044620b af75453834dd 8ee031044843 8ee031044843 8ee031044843 8a3563556959 af75453834dd 8a3563556959 8a3563556959 af75453834dd 8a3563556959 8a3563556959 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 8ee031044843 | /**
* XMPP - libpurple transport
*
* Copyright (C) 2009, Jan Kaluza <hanzz@soc.pidgin.im>
*
* 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 02111-1301 USA
*/
#include "blockresponder.h"
#include <iostream>
#include <boost/bind.hpp>
#include "Swiften/Queries/IQRouter.h"
#include "BlockPayload.h"
#include "transport/UserManager.h"
#include "transport/User.h"
#include "transport/Buddy.h"
#include "transport/RosterManager.h"
#include "transport/Logging.h"
using namespace Swift;
namespace Transport {
DEFINE_LOGGER(logger, "BlockResponder");
BlockResponder::BlockResponder(Swift::IQRouter *router, UserManager *userManager) : Swift::SetResponder<BlockPayload>(router) {
m_userManager = userManager;
}
BlockResponder::~BlockResponder() {
}
bool BlockResponder::handleSetRequest(const Swift::JID& from, const Swift::JID& to, const std::string& id, SWIFTEN_SHRPTR_NAMESPACE::shared_ptr<Transport::BlockPayload> info) {
User *user = m_userManager->getUser(from.toBare().toString());
if (!user) {
LOG4CXX_WARN(logger, from.toBare().toString() << ": User is not logged in");
return true;
}
Buddy *buddy = Buddy::JIDToBuddy(to, user);
if (!buddy) {
LOG4CXX_WARN(logger, from.toBare().toString() << ": Buddy " << Buddy::JIDToLegacyName(to, user) << " does not exist");
return true;
}
if (buddy->isBlocked()) {
LOG4CXX_INFO(logger, from.toBare().toString() << ": Unblocking buddy " << buddy->getName());
}
else {
LOG4CXX_INFO(logger, from.toBare().toString() << ": Blocking buddy " << buddy->getName());
}
onBlockToggled(buddy);
return true;
}
}
|