26 PrepareStatement(
LOGIN_SEL_REALMLIST,
"SELECT id, name, address, localAddress, port, icon, flag, timezone, allowedSecurityLevel, population, gamebuild, Region, Battlegroup FROM realmlist WHERE flag <> 3 ORDER BY name",
CONNECTION_SYNCH);
30 PrepareStatement(
LOGIN_INS_IP_AUTO_BANNED,
"INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity Auth', 'Failed login autoban')",
CONNECTION_ASYNC);
42 PrepareStatement(
LOGIN_SEL_ACCOUNT_INFO_BY_NAME,
"SELECT a.id, a.session_key_bnet, ba.last_ip, ba.locked, ba.lock_country, a.expansion, a.mutetime, ba.locale, a.recruiter, a.os, a.timezone_offset, ba.id, aa.SecurityLevel, "
43 "bab.unbandate > UNIX_TIMESTAMP() OR bab.unbandate = bab.bandate, ab.unbandate > UNIX_TIMESTAMP() OR ab.unbandate = ab.bandate, r.id "
44 "FROM account a LEFT JOIN account r ON a.id = r.recruiter LEFT JOIN battlenet_accounts ba ON a.battlenet_account = ba.id "
45 "LEFT JOIN account_access aa ON a.id = aa.AccountID AND aa.RealmID IN (-1, ?) LEFT JOIN battlenet_account_bans bab ON ba.id = bab.id LEFT JOIN account_banned ab ON a.id = ab.id AND ab.active = 1 "
46 "WHERE a.username = ? AND LENGTH(a.session_key_bnet) = 64 ORDER BY aa.RealmID DESC LIMIT 1",
CONNECTION_ASYNC);
51 PrepareStatement(
LOGIN_INS_IP_BANNED,
"INSERT INTO ip_banned (ip, bandate, unbandate, bannedby, banreason) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, ?, ?)",
CONNECTION_ASYNC);
53 PrepareStatement(
LOGIN_INS_ACCOUNT_BANNED,
"INSERT INTO account_banned (id, bandate, unbandate, bannedby, banreason, active) VALUES (?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, ?, ?, 1)",
CONNECTION_ASYNC);
58 PrepareStatement(
LOGIN_INS_ACCOUNT,
"INSERT INTO account(username, salt, verifier, reg_mail, email, joindate, battlenet_account, battlenet_index) VALUES(?, ?, ?, ?, ?, NOW(), ?, ?)",
CONNECTION_SYNCH);
63 PrepareStatement(
LOGIN_INS_LOG,
"INSERT INTO logs (time, realm, type, level, string) VALUES (?, ?, ?, ?, ?)",
CONNECTION_ASYNC);
82 PrepareStatement(
LOGIN_SEL_PINFO,
"SELECT a.username, aa.SecurityLevel, a.email, a.reg_mail, a.last_ip, DATE_FORMAT(a.last_login, '%Y-%m-%d %T'), a.mutetime, a.mutereason, a.muteby, a.failed_logins, a.locked, a.OS FROM account a LEFT JOIN account_access aa ON (a.id = aa.AccountID AND (aa.RealmID = ? OR aa.RealmID = -1)) WHERE a.id = ?",
CONNECTION_SYNCH);
96 PrepareStatement(
LOGIN_INS_ALDL_IP_LOGGING,
"INSERT INTO logs_ip_actions (account_id, character_guid, realm_id, type, ip, systemnote, unixtime, time) VALUES (?, ?, ?, ?, (SELECT last_ip FROM account WHERE id = ?), ?, unix_timestamp(NOW()), NOW())",
CONNECTION_ASYNC);
98 PrepareStatement(
LOGIN_INS_FACL_IP_LOGGING,
"INSERT INTO logs_ip_actions (account_id, character_guid, realm_id, type, ip, systemnote, unixtime, time) VALUES (?, ?, ?, ?, (SELECT last_attempt_ip FROM account WHERE id = ?), ?, unix_timestamp(NOW()), NOW())",
CONNECTION_ASYNC);
100 PrepareStatement(
LOGIN_INS_CHAR_IP_LOGGING,
"INSERT INTO logs_ip_actions (account_id, character_guid, realm_id, type, ip, systemnote, unixtime, time) VALUES (?, ?, ?, ?, ?, ?, unix_timestamp(NOW()), NOW())",
CONNECTION_ASYNC);
102 PrepareStatement(
LOGIN_INS_FALP_IP_LOGGING,
"INSERT INTO logs_ip_actions (account_id, character_guid, realm_id, type, ip, systemnote, unixtime, time) VALUES (?, 0, 0, 1, ?, ?, unix_timestamp(NOW()), NOW())",
CONNECTION_ASYNC);
120#define BnetAccountInfo "ba.id, UPPER(ba.email), ba.locked, ba.lock_country, ba.last_ip, ba.LoginTicketExpiry, bab.unbandate > UNIX_TIMESTAMP() OR bab.unbandate = bab.bandate, bab.unbandate = bab.bandate"
121#define BnetGameAccountInfo "a.id, a.username, ab.unbandate, ab.unbandate = ab.bandate, aa.SecurityLevel"
123 PrepareStatement(
LOGIN_SEL_BNET_AUTHENTICATION,
"SELECT ba.id, ba.srp_version, COALESCE(ba.salt, 0x0000000000000000000000000000000000000000000000000000000000000000), ba.verifier, ba.failed_logins, ba.LoginTicket, ba.LoginTicketExpiry, bab.unbandate > UNIX_TIMESTAMP() OR bab.unbandate = bab.bandate FROM battlenet_accounts ba LEFT JOIN battlenet_account_bans bab ON ba.id = bab.id WHERE email = ?",
CONNECTION_ASYNC);
129 " FROM battlenet_accounts ba LEFT JOIN battlenet_account_bans bab ON ba.id = bab.id LEFT JOIN account a ON ba.id = a.battlenet_account"
130 " LEFT JOIN account_banned ab ON a.id = ab.id AND ab.active = 1 LEFT JOIN account_access aa ON a.id = aa.AccountID AND aa.RealmID = -1 WHERE ba.LoginTicket = ? ORDER BY a.id",
CONNECTION_ASYNC);
137 PrepareStatement(
LOGIN_INS_BNET_LAST_PLAYER_CHARACTERS,
"INSERT INTO account_last_played_character (accountId, region, battlegroup, realmId, characterName, characterGUID, lastPlayedTime) VALUES (?,?,?,?,?,?,?)",
CONNECTION_ASYNC);
150 PrepareStatement(
LOGIN_SEL_BNET_GAME_ACCOUNT_LIST,
"SELECT a.username, a.expansion, ab.bandate, ab.unbandate, ab.banreason FROM account AS a LEFT JOIN account_banned AS ab ON a.id = ab.id AND ab.active = 1 INNER JOIN battlenet_accounts AS ba ON a.battlenet_account = ba.id WHERE ba.LoginTicket = ? ORDER BY a.id",
CONNECTION_ASYNC);
153 PrepareStatement(
LOGIN_INS_BNET_ACCOUNT_AUTO_BANNED,
"INSERT INTO battlenet_account_bans(id, bandate, unbandate, bannedby, banreason) VALUES(?, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()+?, 'Trinity Auth', 'Failed login autoban')",
CONNECTION_ASYNC);
165 PrepareStatement(
LOGIN_SEL_BATTLE_PETS,
"SELECT bp.guid, bp.species, bp.breed, bp.displayId, bp.level, bp.exp, bp.health, bp.quality, bp.flags, bp.name, bp.nameTimestamp, bp.owner, dn.genitive, dn.dative, dn.accusative, dn.instrumental, dn.prepositional FROM battle_pets bp LEFT JOIN battle_pet_declinedname dn ON bp.guid = dn.guid WHERE bp.battlenetAccountId = ? AND (bp.ownerRealmId IS NULL OR bp.ownerRealmId = ?)",
CONNECTION_ASYNC);
166 PrepareStatement(
LOGIN_INS_BATTLE_PETS,
"INSERT INTO battle_pets (guid, battlenetAccountId, species, breed, displayId, level, exp, health, quality, flags, name, nameTimestamp, owner, ownerRealmId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
CONNECTION_ASYNC);
173 PrepareStatement(
LOGIN_INS_BATTLE_PET_DECLINED_NAME,
"INSERT INTO battle_pet_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES (?, ?, ?, ?, ?, ?)",
CONNECTION_ASYNC);
187 "ON DUPLICATE KEY UPDATE appearanceMask = appearanceMask | VALUES(appearanceMask)",
CONNECTION_ASYNC);
193 "ON DUPLICATE KEY UPDATE illusionMask = illusionMask | VALUES(illusionMask)",
CONNECTION_ASYNC);
#define BnetGameAccountInfo
@ LOGIN_UPD_MUTE_TIME_LOGIN
@ LOGIN_INS_ACCOUNT_BANNED
@ LOGIN_SEL_BNET_CHARACTER_COUNTS_BY_BNET_ID
@ LOGIN_SEL_ACCOUNT_LIST_BY_EMAIL
@ LOGIN_UPD_BNET_RESET_FAILED_LOGINS
@ LOGIN_UPD_BNET_LAST_LOGIN_INFO
@ LOGIN_SEL_ACCOUNT_ACCESS_SECLEVEL_TEST
@ LOGIN_SEL_ACCOUNT_BY_IP
@ LOGIN_UPD_ACCOUNT_INFO_CONTINUED_SESSION
@ LOGIN_DEL_BATTLE_PETS_BY_OWNER
@ LOGIN_DEL_ACCOUNT_ACCESS_BY_REALM
@ LOGIN_SEL_BNET_EXISTING_AUTHENTICATION_BY_ID
@ LOGIN_SEL_LAST_CHAR_UNDELETE
@ LOGIN_GET_ACCOUNT_ID_BY_USERNAME
@ LOGIN_SEL_BNET_AUTHENTICATION
@ LOGIN_SEL_ACCOUNT_BANNED_BY_FILTER
@ LOGIN_UPD_UPTIME_PLAYERS
@ LOGIN_UPD_BNET_FAILED_LOGINS
@ LOGIN_INS_BATTLE_PET_SLOTS
@ LOGIN_SEL_LAST_ATTEMPT_IP
@ LOGIN_DEL_IP_NOT_BANNED
@ LOGIN_UPD_BNET_GAME_ACCOUNT_LINK
@ LOGIN_UPD_BNET_ACCOUNT_LOCK
@ LOGIN_SEL_ACCOUNT_BY_ID
@ LOGIN_SEL_BNET_ITEM_FAVORITE_APPEARANCES
@ LOGIN_INS_ALDL_IP_LOGGING
@ LOGIN_DEL_ACCOUNT_MUTED
@ LOGIN_REP_REALM_CHARACTERS
@ LOGIN_DEL_ACCOUNT_BANNED
@ LOGIN_DEL_EXPIRED_IP_BANS
@ LOGIN_SEL_CHECK_PASSWORD_BY_NAME
@ MAX_LOGINDATABASE_STATEMENTS
@ LOGIN_INS_BNET_ACCOUNT_AUTO_BANNED
@ LOGIN_SEL_BNET_ACCOUNT_ID_BY_EMAIL
@ LOGIN_UPD_ACCOUNT_TOTP_SECRET
@ LOGIN_SEL_BNET_GAME_ACCOUNT_LIST_SMALL
@ LOGIN_UPD_LAST_ATTEMPT_IP
@ LOGIN_DEL_ACCOUNT_ACCESS
@ LOGIN_SEL_ACCOUNT_WHOIS
@ LOGIN_SEL_BNET_CHECK_PASSWORD_BY_EMAIL
@ LOGIN_SEL_SECRET_DIGEST
@ LOGIN_SEL_BNET_ACCOUNT_ID_BY_GAME_ACCOUNT
@ LOGIN_DEL_RBAC_ACCOUNT_PERMISSION
@ LOGIN_SEL_IP_BANNED_BY_IP
@ LOGIN_GET_GMLEVEL_BY_REALMID
@ LOGIN_UPD_ACCOUNT_LOCK_COUNTRY
@ LOGIN_SEL_REALMLIST_SECURITY_LEVEL
@ LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS
@ LOGIN_INS_SECRET_DIGEST
@ LOGIN_SEL_ACCOUNT_MUTE_INFO
@ LOGIN_UPD_ACCOUNT_NOT_BANNED
@ LOGIN_SEL_ACCOUNT_LIST_BY_NAME
@ LOGIN_UPD_BNET_AUTHENTICATION
@ LOGIN_SEL_ACCOUNT_MOUNTS
@ LOGIN_INS_BNET_TRANSMOG_ILLUSIONS
@ LOGIN_SEL_ACCOUNT_TOTP_SECRET
@ LOGIN_INS_FALP_IP_LOGGING
@ LOGIN_SEL_BNET_EXISTING_AUTHENTICATION
@ LOGIN_SEL_BNET_ACCOUNT_INFO
@ LOGIN_REP_ACCOUNT_MOUNTS
@ LOGIN_UPD_LAST_CHAR_UNDELETE
@ LOGIN_DEL_BATTLE_PET_DECLINED_NAME
@ LOGIN_SEL_ACCOUNT_ACCESS_BY_ID
@ LOGIN_UPD_BNET_GAME_ACCOUNT_LOGIN_INFO
@ LOGIN_INS_BATTLE_PET_DECLINED_NAME
@ LOGIN_SEL_AUTOBROADCAST
@ LOGIN_SEL_SUM_REALM_CHARACTERS
@ LOGIN_UPD_ACCOUNT_ONLINE
@ LOGIN_GET_USERNAME_BY_ID
@ LOGIN_SEL_BNET_CHARACTER_COUNTS_BY_ACCOUNT_ID
@ LOGIN_INS_BNET_LAST_PLAYER_CHARACTERS
@ LOGIN_DEL_BATTLE_PET_SLOTS
@ LOGIN_INS_REALM_CHARACTERS_INIT
@ LOGIN_DEL_SECRET_DIGEST
@ LOGIN_UPD_EXPIRED_ACCOUNT_BANS
@ LOGIN_SEL_ACCOUNT_INFO_CONTINUED_SESSION
@ LOGIN_SEL_ACCOUNT_BANNED_BY_USERNAME
@ LOGIN_SEL_ACCOUNT_HEIRLOOMS
@ LOGIN_DEL_BNET_EXPIRED_ACCOUNT_BANNED
@ LOGIN_SEL_BNET_TRANSMOG_ILLUSIONS
@ LOGIN_INS_FACL_IP_LOGGING
@ LOGIN_INS_CHAR_IP_LOGGING
@ LOGIN_DEL_BATTLE_PET_DECLINED_NAME_BY_OWNER
@ LOGIN_DEL_BNET_LAST_PLAYER_CHARACTERS
@ LOGIN_INS_ACCOUNT_ACCESS
@ LOGIN_DEL_REALM_CHARACTERS
@ LOGIN_SEL_CHECK_PASSWORD
@ LOGIN_SEL_ACCOUNT_ID_BY_NAME
@ LOGIN_SEL_BNET_GAME_ACCOUNT_LIST
@ LOGIN_SEL_ACCOUNT_ACCESS
@ LOGIN_UPD_BNET_ACCOUNT_LOCK_CONTRY
@ LOGIN_SEL_BNET_MAX_ACCOUNT_INDEX
@ LOGIN_SEL_IP_BANNED_ALL
@ LOGIN_INS_IP_AUTO_BANNED
@ LOGIN_INS_RBAC_ACCOUNT_PERMISSION
@ LOGIN_SEL_BNET_ACCOUNT_EMAIL_BY_ID
@ LOGIN_SEL_BATTLE_PET_SLOTS
@ LOGIN_REP_ACCOUNT_HEIRLOOMS
@ LOGIN_SEL_BNET_LAST_PLAYER_CHARACTERS
@ LOGIN_INS_BNET_ITEM_FAVORITE_APPEARANCE
@ LOGIN_SEL_ACCOUNT_BANNED_ALL
@ LOGIN_SEL_BNET_CHECK_PASSWORD
@ LOGIN_SEL_ACCOUNT_INFO_BY_NAME
@ LOGIN_UPD_BNET_EXISTING_AUTHENTICATION
@ LOGIN_SEL_BNET_ITEM_APPEARANCES
@ LOGIN_INS_BNET_ITEM_APPEARANCES
@ LOGIN_DEL_BNET_ITEM_FAVORITE_APPEARANCE
LoginDatabaseConnection(MySQLConnectionInfo &connInfo, ConnectionFlags connectionFlags)
~LoginDatabaseConnection()
void DoPrepareStatements() override
void PrepareStatement(uint32 index, std::string_view sql, ConnectionFlags flags)
PreparedStatementContainer m_stmts
PreparedStatements storage.
bool m_reconnecting
Are we reconnecting?