summaryrefslogtreecommitdiff
path: root/src/account-server/accounthandler.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-31 10:02:36 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-08-31 10:02:36 +0000
commit60f60de8aefeebd1de0bf6c940558902226d7747 (patch)
treeed3a5b3f9f721d559d29f872073bc293a66a99d0 /src/account-server/accounthandler.cpp
parente681c0024c1db3f93c501a0a9600371440986674 (diff)
downloadmanaserv-60f60de8aefeebd1de0bf6c940558902226d7747.tar.gz
manaserv-60f60de8aefeebd1de0bf6c940558902226d7747.tar.bz2
manaserv-60f60de8aefeebd1de0bf6c940558902226d7747.tar.xz
manaserv-60f60de8aefeebd1de0bf6c940558902226d7747.zip
Plugged several account leaks on error. Prevented banned players from logging in.
Diffstat (limited to 'src/account-server/accounthandler.cpp')
-rw-r--r--src/account-server/accounthandler.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/account-server/accounthandler.cpp b/src/account-server/accounthandler.cpp
index 8c69b066..e7fc2ceb 100644
--- a/src/account-server/accounthandler.cpp
+++ b/src/account-server/accounthandler.cpp
@@ -180,7 +180,7 @@ AccountHandler::handleLoginMessage(AccountClient &computer, MessageIn &msg)
return;
}
- unsigned long clientVersion = msg.readLong();
+ int clientVersion = msg.readLong();
if (clientVersion < config.getValue("clientVersion", 0))
{
@@ -213,6 +213,15 @@ AccountHandler::handleLoginMessage(AccountClient &computer, MessageIn &msg)
{
reply.writeByte(ERRMSG_INVALID_ARGUMENT);
computer.send(reply);
+ delete acc;
+ return;
+ }
+
+ if (acc->getLevel() == AL_BANNED)
+ {
+ reply.writeByte(LOGIN_BANNED);
+ computer.send(reply);
+ delete acc;
return;
}
@@ -231,7 +240,6 @@ AccountHandler::handleLoginMessage(AccountClient &computer, MessageIn &msg)
{
sendCharacterData(computer, i, *chars[i]);
}
- return;
}
void
@@ -320,7 +328,7 @@ AccountHandler::handleRegisterMessage(AccountClient &computer, MessageIn &msg)
reply.writeByte(ERRMSG_INVALID_ARGUMENT);
}
// Check whether the account already exists.
- else if (storage->getAccount(username))
+ else if (storage->doesUserNameExist(username))
{
reply.writeByte(REGISTER_EXISTS_USERNAME);
}
@@ -379,6 +387,7 @@ AccountHandler::handleUnregisterMessage(AccountClient &computer,
{
reply.writeByte(ERRMSG_INVALID_ARGUMENT);
computer.send(reply);
+ delete acc;
return;
}