diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-03-11 17:26:21 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-03-11 17:26:21 +0300 |
commit | 3402b274b847cf5adef6beb1d1bd81eb01300898 (patch) | |
tree | cd2d6c56e768e34382ddacaa67e276b406b3389d /src/net | |
parent | b56d93804c561ed11d678ab193d1d7ddc8e586b1 (diff) | |
download | manaplus-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.gz manaplus-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.bz2 manaplus-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.xz manaplus-3402b274b847cf5adef6beb1d1bd81eb01300898.zip |
eathena: add partial support for packet SMSG_LOGIN_CODING_KEY 0x01dc.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/eathena/loginhandler.cpp | 12 | ||||
-rw-r--r-- | src/net/eathena/loginhandler.h | 3 | ||||
-rw-r--r-- | src/net/eathena/protocol.h | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/net/eathena/loginhandler.cpp b/src/net/eathena/loginhandler.cpp index 090435e0e..c7cee6b2e 100644 --- a/src/net/eathena/loginhandler.cpp +++ b/src/net/eathena/loginhandler.cpp @@ -55,6 +55,7 @@ LoginHandler::LoginHandler() : SMSG_LOGIN_ERROR2, SMSG_SERVER_VERSION_RESPONSE, SMSG_UPDATE_HOST, + SMSG_LOGIN_CODING_KEY, 0 }; handledMessages = _messages; @@ -89,6 +90,10 @@ void LoginHandler::handleMessage(Net::MessageIn &msg) processUpdateHost(msg); break; + case SMSG_LOGIN_CODING_KEY: + processCondingKey(msg); + break; + default: break; } @@ -263,6 +268,13 @@ void LoginHandler::processServerVersion(Net::MessageIn &msg) client->setState(STATE_LOGIN); } +void LoginHandler::processCondingKey(Net::MessageIn &msg) +{ + UNIMPLIMENTEDPACKET; + const int sz = msg.readInt16("len") - 4; + msg.readString(sz, "coding key"); +} + int LoginHandler::supportedOptionalActions() const { return serverFeatures->haveEmailOnRegister() diff --git a/src/net/eathena/loginhandler.h b/src/net/eathena/loginhandler.h index fb76605ac..38cacc380 100644 --- a/src/net/eathena/loginhandler.h +++ b/src/net/eathena/loginhandler.h @@ -63,12 +63,15 @@ class LoginHandler final : public MessageHandler, public Ea::LoginHandler int supportedOptionalActions() const override final A_WARN_UNUSED; + protected: static void processLoginError2(Net::MessageIn &msg); static void processUpdateHost2(Net::MessageIn &msg); static void processServerVersion(Net::MessageIn &msg); + static void processCondingKey(Net::MessageIn &msg); + private: void sendLoginRegister(const std::string &restrict username, const std::string &restrict password, diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h index 72bfc4f75..49a74e3aa 100644 --- a/src/net/eathena/protocol.h +++ b/src/net/eathena/protocol.h @@ -35,6 +35,7 @@ #define SMSG_LOGIN_DATA 0x0069 #define SMSG_LOGIN_ERROR 0x006a #define SMSG_LOGIN_ERROR2 0x083e +#define SMSG_LOGIN_CODING_KEY 0x01dc // unused #define SMSG_CHAR_LOGIN 0x006b |