diff options
Diffstat (limited to 'src/Server/RequestHandlers/UserInfoRequestHandler.cpp')
-rw-r--r-- | src/Server/RequestHandlers/UserInfoRequestHandler.cpp | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/Server/RequestHandlers/UserInfoRequestHandler.cpp b/src/Server/RequestHandlers/UserInfoRequestHandler.cpp index 740c2a9..287d026 100644 --- a/src/Server/RequestHandlers/UserInfoRequestHandler.cpp +++ b/src/Server/RequestHandlers/UserInfoRequestHandler.cpp @@ -22,8 +22,6 @@ #include <Net/Exception.h> #include <Common/Logger.h> -#include <boost/bind.hpp> - namespace Mad { namespace Server { namespace RequestHandlers { @@ -44,24 +42,22 @@ void UserInfoRequestHandler::handlePacket(const Common::XmlPacket &packet) { // TODO Require authentication - if(!UserManager::get()->getUserInfo(packet["uid"], boost::bind(&UserInfoRequestHandler::userInfoHandler, this, _1))) { - Common::XmlPacket ret; - ret.setType("Error"); - ret.add("ErrorCode", Net::Exception::NOT_IMPLEMENTED); - - sendPacket(ret); - signalFinished()(); - } -} + boost::shared_ptr<Common::UserInfo> info = UserManager::get()->getUserInfo(packet["uid"]); -void UserInfoRequestHandler::userInfoHandler(const Common::UserInfo &info) { Common::XmlPacket ret; - ret.setType("OK"); - ret.add("uid", info.getUid()); - ret.add("gid", info.getGid()); - ret.add("username", info.getUsername()); - ret.add("fullName", info.getFullName()); + if(info) { + ret.setType("OK"); + + ret.add("uid", info->getUid()); + ret.add("gid", info->getGid()); + ret.add("username", info->getUsername()); + ret.add("fullName", info->getFullName()); + } + else { + ret.setType("Error"); + ret.add("ErrorCode", Net::Exception::NOT_IMPLEMENTED); + } sendPacket(ret); signalFinished()(); |