summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/loginhandler.cpp31
-rw-r--r--src/net/logouthandler.cpp2
2 files changed, 32 insertions, 1 deletions
diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp
index 260c117d..349684bf 100644
--- a/src/net/loginhandler.cpp
+++ b/src/net/loginhandler.cpp
@@ -34,6 +34,7 @@ LoginHandler::LoginHandler()
APMSG_LOGIN_RESPONSE,
APMSG_REGISTER_RESPONSE,
APMSG_RECONNECT_RESPONSE,
+ APMSG_PASSWORD_CHANGE_RESPONSE,
0
};
handledMessages = _messages;
@@ -136,5 +137,35 @@ void LoginHandler::handleMessage(MessageIn &msg)
}
}
break;
+
+ case APMSG_PASSWORD_CHANGE_RESPONSE:
+ {
+ int errMsg = msg.readInt8();
+ // Successful pass change
+ if (errMsg == ERRMSG_OK)
+ {
+ state = STATE_CHANGEPASSWORD;
+ }
+ // pass change failed
+ else
+ {
+ switch (errMsg) {
+ case ERRMSG_INVALID_ARGUMENT:
+ errorMessage = "New password incorrect";
+ break;
+ case ERRMSG_FAILURE:
+ errorMessage = "Old password incorrect";
+ break;
+ case ERRMSG_NO_LOGIN:
+ errorMessage = "Account not connected. Please login first.";
+ break;
+ default:
+ errorMessage = "Unknown error";
+ break;
+ }
+ state = STATE_ACCOUNTCHANGE_ERROR;
+ }
+ }
+ break;
}
}
diff --git a/src/net/logouthandler.cpp b/src/net/logouthandler.cpp
index c7629490..fb27540f 100644
--- a/src/net/logouthandler.cpp
+++ b/src/net/logouthandler.cpp
@@ -104,7 +104,7 @@ void LogoutHandler::handleMessage(MessageIn &msg)
errorMessage = "Accountserver: Unknown error";
break;
}
- state = STATE_ERROR;
+ state = STATE_ACCOUNTCHANGE_ERROR;
}
}
break;