diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/loginhandler.cpp | 31 | ||||
-rw-r--r-- | src/net/logouthandler.cpp | 2 |
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; |