summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-03-11 17:26:21 +0300
committerAndrei Karas <akaras@inbox.ru>2015-03-11 17:26:21 +0300
commit3402b274b847cf5adef6beb1d1bd81eb01300898 (patch)
treecd2d6c56e768e34382ddacaa67e276b406b3389d
parentb56d93804c561ed11d678ab193d1d7ddc8e586b1 (diff)
downloadmv-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.gz
mv-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.bz2
mv-3402b274b847cf5adef6beb1d1bd81eb01300898.tar.xz
mv-3402b274b847cf5adef6beb1d1bd81eb01300898.zip
eathena: add partial support for packet SMSG_LOGIN_CODING_KEY 0x01dc.
-rw-r--r--src/net/eathena/loginhandler.cpp12
-rw-r--r--src/net/eathena/loginhandler.h3
-rw-r--r--src/net/eathena/protocol.h1
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