diff options
author | Jared Adams <jaxad0127@gmail.com> | 2009-01-28 15:16:12 +0000 |
---|---|---|
committer | Ira Rice <irarice@gmail.com> | 2009-01-28 16:00:58 -0700 |
commit | 1ca8d08b7619e1958371ce8d82e201b82ae39e32 (patch) | |
tree | 9b79fab367afedd8adac26a9acc56ac923034a2c /src/net/loginhandler.cpp | |
parent | 487b7237a730469fc4f8a501a93f78c2bbafad51 (diff) | |
download | mana-1ca8d08b7619e1958371ce8d82e201b82ae39e32.tar.gz mana-1ca8d08b7619e1958371ce8d82e201b82ae39e32.tar.bz2 mana-1ca8d08b7619e1958371ce8d82e201b82ae39e32.tar.xz mana-1ca8d08b7619e1958371ce8d82e201b82ae39e32.zip |
Fix handling of packet 0x81
Diffstat (limited to 'src/net/loginhandler.cpp')
-rw-r--r-- | src/net/loginhandler.cpp | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp index f240618d..db601214 100644 --- a/src/net/loginhandler.cpp +++ b/src/net/loginhandler.cpp @@ -34,7 +34,8 @@ extern SERVER_INFO **server_info; LoginHandler::LoginHandler() { static const Uint16 _messages[] = { - 0x0063, + SMSG_CONNECTION_PROBLEM, + SMSG_UPDATE_HOST, 0x0069, 0x006a, 0 @@ -44,9 +45,32 @@ LoginHandler::LoginHandler() void LoginHandler::handleMessage(MessageIn *msg) { + int code; + switch (msg->getId()) { - case 0x0063: + case SMSG_CONNECTION_PROBLEM: + code = msg->readInt8(); + logger->log("Connection problem: %i", code); + + switch (code) { + case 0: + errorMessage = "Authentication failed"; + break; + case 1: + errorMessage = "No servers available"; + break; + case 2: + errorMessage = "This account is already logged in"; + break; + default: + errorMessage = "Unknown connection error"; + break; + } + state = ERROR_STATE; + break; + + case SMSG_UPDATE_HOST: int len; len = msg->readInt16() - 4; @@ -90,10 +114,10 @@ void LoginHandler::handleMessage(MessageIn *msg) break; case 0x006a: - int loginError = msg->readInt8(); - logger->log("Login::error code: %i", loginError); + code = msg->readInt8(); + logger->log("Login::error code: %i", code); - switch (loginError) { + switch (code) { case 0: errorMessage = "Unregistered ID"; break; |