summaryrefslogtreecommitdiff
path: root/src/login/lclif.p.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-12-02 21:14:57 +0300
committerAndrei Karas <akaras@inbox.ru>2017-12-02 23:25:19 +0300
commitfde5dcbc12a2b6b5c423a5b96fa384dfee60e670 (patch)
treea9af381e02102b1764a5c016fae8a2278e5f5be5 /src/login/lclif.p.h
parent4be92368280e776252c81f1cea18ff48fe6581e4 (diff)
downloadhercules-fde5dcbc12a2b6b5c423a5b96fa384dfee60e670.tar.gz
hercules-fde5dcbc12a2b6b5c423a5b96fa384dfee60e670.tar.bz2
hercules-fde5dcbc12a2b6b5c423a5b96fa384dfee60e670.tar.xz
hercules-fde5dcbc12a2b6b5c423a5b96fa384dfee60e670.zip
Add support for OTP login packet.
This packet totally ignored and for now need only for zero clients.
Diffstat (limited to 'src/login/lclif.p.h')
-rw-r--r--src/login/lclif.p.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/login/lclif.p.h b/src/login/lclif.p.h
index d28f1c587..5aa7337f4 100644
--- a/src/login/lclif.p.h
+++ b/src/login/lclif.p.h
@@ -35,7 +35,7 @@
// Packet DB
#define MIN_PACKET_DB 0x0064
-#define MAX_PACKET_DB 0x08ff
+#define MAX_PACKET_DB 0x0acf
/* Enums */
@@ -51,6 +51,7 @@ enum login_packet_id {
PACKET_ID_CA_LOGIN4 = 0x027c,
PACKET_ID_CA_LOGIN_HAN = 0x02b0,
PACKET_ID_CA_SSO_LOGIN_REQ = 0x0825,
+ PACKET_ID_CA_LOGIN_OTP = 0x0acf,
PACKET_ID_CA_REQ_HASH = 0x01db,
PACKET_ID_CA_CHARSERVERCONNECT = 0x2710, // Custom Hercules Packet
//PACKET_ID_CA_SSO_LOGIN_REQa = 0x825a, /* unused */
@@ -160,6 +161,17 @@ struct packet_CA_SSO_LOGIN_REQ {
char t1[]; ///< SSO Login Token (variable length)
} __attribute__((packed));
+/**
+ * Packet structure for CA_LOGIN_OTP.
+ */
+struct packet_CA_LOGIN_OTP {
+ int16 packet_id; ///< Packet ID (#PACKET_ID_CA_LOGIN_OTP)
+ uint32 devFlags; ///< flags including dev flag
+ char login[25]; ///< Username
+ char password[32]; ///< Password encrypted by rijndael
+ char flagsStr[5]; ///< Unknown flags. Normally string: G000
+} __attribute__((packed));
+
#if 0 // Unused
struct packet_CA_SSO_LOGIN_REQa {
int16 packet_id;
@@ -325,6 +337,7 @@ struct lclif_interface_private {
LoginParseFunc *parse_CA_LOGIN_PCBANG; ///< Packet handler for #packet_CA_LOGIN_PCBANG.
LoginParseFunc *parse_CA_LOGIN_HAN; ///< Packet handler for #packet_CA_LOGIN_HAN.
LoginParseFunc *parse_CA_SSO_LOGIN_REQ; ///< Packet handler for #packet_CA_SSO_LOGIN_REQ.
+ LoginParseFunc *parse_CA_LOGIN_OTP; ///< Packet handler for #packet_CA_LOGIN_OTP.
LoginParseFunc *parse_CA_REQ_HASH; ///< Packet handler for #packet_CA_REQ_HASH.
LoginParseFunc *parse_CA_CHARSERVERCONNECT; ///< Packet handler for #packet_CA_CHARSERVERCONNECT.
};