summaryrefslogtreecommitdiff
path: root/src/net/loginhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/loginhandler.cpp')
-rw-r--r--src/net/loginhandler.cpp34
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;