diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-11-10 22:02:37 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-11-10 22:02:37 +0300 |
commit | 4247e05ae8ee9e14323629701c3a11e5c2fac674 (patch) | |
tree | cadc54d611b88fa17b4530a4a530965a7817d47a /src/net/ea | |
parent | ec0159f464cda17f131204a38caa0c5c584fe255 (diff) | |
download | manaverse-4247e05ae8ee9e14323629701c3a11e5c2fac674.tar.gz manaverse-4247e05ae8ee9e14323629701c3a11e5c2fac674.tar.bz2 manaverse-4247e05ae8ee9e14323629701c3a11e5c2fac674.tar.xz manaverse-4247e05ae8ee9e14323629701c3a11e5c2fac674.zip |
eathnea; add support for update hosts.
Diffstat (limited to 'src/net/ea')
-rw-r--r-- | src/net/ea/loginhandler.cpp | 23 | ||||
-rw-r--r-- | src/net/ea/loginhandler.h | 2 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/net/ea/loginhandler.cpp b/src/net/ea/loginhandler.cpp index 11fe197c2..8b2ec1ed1 100644 --- a/src/net/ea/loginhandler.cpp +++ b/src/net/ea/loginhandler.cpp @@ -323,6 +323,29 @@ void LoginHandler::loginOrRegister(LoginData *const data) const serverConfig.setValue("remember", remember); } +void LoginHandler::processUpdateHost2(Net::MessageIn &msg) +{ + const int len = msg.readInt16("len") - 4; + const std::string updateHost = msg.readString(len, "host"); + + splitToStringVector(loginData.updateHosts, updateHost, '|'); + FOR_EACH (StringVectIter, it, loginData.updateHosts) + { + if (!checkPath(*it)) + { + logger->log1("Warning: incorrect update server name"); + loginData.updateHosts.clear(); + break; + } + } + + logger->log("Received update hosts \"%s\" from login server.", + updateHost.c_str()); + + if (client->getState() == STATE_PRE_LOGIN) + client->setState(STATE_LOGIN); +} + void LoginHandler::logout() const { } diff --git a/src/net/ea/loginhandler.h b/src/net/ea/loginhandler.h index 845e11f50..93fe3fb2d 100644 --- a/src/net/ea/loginhandler.h +++ b/src/net/ea/loginhandler.h @@ -95,6 +95,8 @@ class LoginHandler notfinal : public Net::LoginHandler static void processLoginError(Net::MessageIn &msg); + static void processUpdateHost2(Net::MessageIn &msg); + void loginOrRegister(LoginData *const data) const override final; protected: |