summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/loginhandler.cpp12
-rw-r--r--src/net/eathena/loginhandler.h2
-rw-r--r--src/net/eathena/packetsout.inc3
3 files changed, 17 insertions, 0 deletions
diff --git a/src/net/eathena/loginhandler.cpp b/src/net/eathena/loginhandler.cpp
index 3293317c8..cd22e44eb 100644
--- a/src/net/eathena/loginhandler.cpp
+++ b/src/net/eathena/loginhandler.cpp
@@ -182,4 +182,16 @@ void LoginHandler::sendMobileCode(const BeingId accountId,
outMsg.writeStringNoLog(code, 6, "code");
}
+void LoginHandler::sendOtpCode(const std::string &code) const
+{
+ if (packetVersionMain < 20181114 &&
+ packetVersionRe < 20181114 &&
+ packets_zero == false)
+ {
+ return;
+ }
+ createOutPacket(CMSG_LOGIN_OTP_CODE);
+ outMsg.writeStringNoLog(code, 9, "code");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/loginhandler.h b/src/net/eathena/loginhandler.h
index 87d5e16cf..e45a4a72c 100644
--- a/src/net/eathena/loginhandler.h
+++ b/src/net/eathena/loginhandler.h
@@ -61,6 +61,8 @@ class LoginHandler final : public Ea::LoginHandler
void sendMobileCode(const BeingId accountId,
const std::string &code) const override final;
+ void sendOtpCode(const std::string &code) const override final;
+
private:
void sendLoginRegister(const std::string &restrict username,
const std::string &restrict password,
diff --git a/src/net/eathena/packetsout.inc b/src/net/eathena/packetsout.inc
index d9b269ba9..b1a41e4d2 100644
--- a/src/net/eathena/packetsout.inc
+++ b/src/net/eathena/packetsout.inc
@@ -343,6 +343,7 @@ packet(CMSG_CHANGE_DRESS, 0x0000, 0, nullptr);
packet(CMSG_INSTANCE_COMMAND, 0x0000, 0, nullptr);
packet(CMSG_ACHIEVEMENT_GET_REWARD, 0x0000, 0, nullptr);
packet(CMSG_LOGIN_MOBILE_OTP, 0x0000, 0, nullptr);
+packet(CMSG_LOGIN_OTP_CODE, 0x0000, 0, nullptr);
#else
// 20040713
if (packetVersion >= 20040713)
@@ -1467,12 +1468,14 @@ if (packetVersionRe >= 20180718)
if (packetVersionMain >= 20181114)
{
packet(CMSG_LOGIN_MOBILE_OTP, 0x09a3, -1, lclif->p->parse_CA_ACK_MOBILE_OTP);
+ packet(CMSG_LOGIN_OTP_CODE, 0x0ad0, 11, lclif->p->parse_CA_OTP_CODE);
}
// 20181114 re
if (packetVersionRe >= 20181114)
{
packet(CMSG_LOGIN_MOBILE_OTP, 0x09a3, -1, lclif->p->parse_CA_ACK_MOBILE_OTP);
+ packet(CMSG_LOGIN_OTP_CODE, 0x0ad0, 11, lclif->p->parse_CA_OTP_CODE);
}
#endif