From 852ca6c80f1c7958b08f0bafcb783a48a51aabb8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 23 Jan 2019 23:45:41 +0300 Subject: Add packet CMSG_LOGIN_OTP_CODE 0x0ad0 --- src/net/eathena/loginhandler.cpp | 12 ++++++++++++ src/net/eathena/loginhandler.h | 2 ++ src/net/eathena/packetsout.inc | 3 +++ src/net/loginhandler.h | 2 ++ src/net/tmwa/loginhandler.cpp | 4 ++++ src/net/tmwa/loginhandler.h | 2 ++ 6 files changed, 25 insertions(+) (limited to 'src/net') 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 diff --git a/src/net/loginhandler.h b/src/net/loginhandler.h index 3abc91443..40ba768dc 100644 --- a/src/net/loginhandler.h +++ b/src/net/loginhandler.h @@ -101,6 +101,8 @@ class LoginHandler notfinal virtual void sendMobileCode(const BeingId accountId, const std::string &code) const = 0; + virtual void sendOtpCode(const std::string &code) const = 0; + virtual ~LoginHandler() { } diff --git a/src/net/tmwa/loginhandler.cpp b/src/net/tmwa/loginhandler.cpp index e88069d25..c0abf22bc 100644 --- a/src/net/tmwa/loginhandler.cpp +++ b/src/net/tmwa/loginhandler.cpp @@ -146,4 +146,8 @@ void LoginHandler::sendMobileCode(const BeingId accountId A_UNUSED, { } +void LoginHandler::sendOtpCode(const std::string &code A_UNUSED) const +{ +} + } // namespace TmwAthena diff --git a/src/net/tmwa/loginhandler.h b/src/net/tmwa/loginhandler.h index 7539569a0..abd70cf69 100644 --- a/src/net/tmwa/loginhandler.h +++ b/src/net/tmwa/loginhandler.h @@ -63,6 +63,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, -- cgit v1.2.3-60-g2f50