22{
25
26 PrepareStatement(
LOGIN_SEL_REALMLIST,
"SELECT id, name, address, localAddress, localSubnetMask, 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, 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);
47
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);
95
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);
97
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);
99
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);
101
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);
104
108
112
116
119
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"
122
123 PrepareStatement(
LOGIN_SEL_BNET_AUTHENTICATION,
"SELECT ba.id, ba.sha_pass_hash, 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);
149 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);
150
152 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);
155
158
159
162
163
164 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);
165 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);
172 PrepareStatement(
LOGIN_INS_BATTLE_PET_DECLINED_NAME,
"INSERT INTO battle_pet_declinedname (guid, genitive, dative, accusative, instrumental, prepositional) VALUES (?, ?, ?, ?, ?, ?)",
CONNECTION_ASYNC);
175
178
179
182
183
186 "ON DUPLICATE KEY UPDATE appearanceMask = appearanceMask | VALUES(appearanceMask)",
CONNECTION_ASYNC);
192 "ON DUPLICATE KEY UPDATE illusionMask = illusionMask | VALUES(illusionMask)",
CONNECTION_ASYNC);
193}
#define BnetGameAccountInfo
@ LOGIN_UPD_MUTE_TIME_LOGIN
Definition: LoginDatabase.h:68
@ LOGIN_GET_EMAIL_BY_ID
Definition: LoginDatabase.h:94
@ LOGIN_INS_ACCOUNT_BANNED
Definition: LoginDatabase.h:53
@ LOGIN_SEL_BNET_CHARACTER_COUNTS_BY_BNET_ID
Definition: LoginDatabase.h:125
@ LOGIN_SEL_ACCOUNT_LIST_BY_EMAIL
Definition: LoginDatabase.h:46
@ LOGIN_UPD_BNET_RESET_FAILED_LOGINS
Definition: LoginDatabase.h:145
@ LOGIN_INS_LOG
Definition: LoginDatabase.h:63
@ LOGIN_UPD_BNET_LAST_LOGIN_INFO
Definition: LoginDatabase.h:122
@ LOGIN_SEL_ACCOUNT_ACCESS_SECLEVEL_TEST
Definition: LoginDatabase.h:86
@ LOGIN_UPD_EMAIL
Definition: LoginDatabase.h:65
@ LOGIN_SEL_ACCOUNT_BY_IP
Definition: LoginDatabase.h:47
@ LOGIN_UPD_ACCOUNT_INFO_CONTINUED_SESSION
Definition: LoginDatabase.h:40
@ LOGIN_DEL_BATTLE_PETS_BY_OWNER
Definition: LoginDatabase.h:156
@ LOGIN_DEL_ACCOUNT_ACCESS_BY_REALM
Definition: LoginDatabase.h:75
@ LOGIN_SEL_BATTLE_PETS
Definition: LoginDatabase.h:153
@ LOGIN_SEL_BNET_EXISTING_AUTHENTICATION_BY_ID
Definition: LoginDatabase.h:119
@ LOGIN_SEL_LAST_CHAR_UNDELETE
Definition: LoginDatabase.h:147
@ LOGIN_GET_ACCOUNT_ID_BY_USERNAME
Definition: LoginDatabase.h:77
@ LOGIN_SEL_BNET_AUTHENTICATION
Definition: LoginDatabase.h:116
@ LOGIN_SEL_ACCOUNT_BANNED_BY_FILTER
Definition: LoginDatabase.h:37
@ LOGIN_UPD_UPTIME_PLAYERS
Definition: LoginDatabase.h:72
@ LOGIN_UPD_BNET_FAILED_LOGINS
Definition: LoginDatabase.h:142
@ LOGIN_INS_BATTLE_PET_SLOTS
Definition: LoginDatabase.h:159
@ LOGIN_SEL_LAST_ATTEMPT_IP
Definition: LoginDatabase.h:92
@ LOGIN_UPD_REG_EMAIL
Definition: LoginDatabase.h:66
@ LOGIN_DEL_IP_NOT_BANNED
Definition: LoginDatabase.h:49
@ LOGIN_UPD_BNET_GAME_ACCOUNT_LINK
Definition: LoginDatabase.h:137
@ LOGIN_UPD_BNET_ACCOUNT_LOCK
Definition: LoginDatabase.h:134
@ LOGIN_SEL_ACCOUNT_BY_ID
Definition: LoginDatabase.h:52
@ LOGIN_SEL_BNET_ITEM_FAVORITE_APPEARANCES
Definition: LoginDatabase.h:173
@ LOGIN_INS_ALDL_IP_LOGGING
Definition: LoginDatabase.h:95
@ LOGIN_DEL_ACCOUNT_MUTED
Definition: LoginDatabase.h:107
@ LOGIN_REP_REALM_CHARACTERS
Definition: LoginDatabase.h:56
@ LOGIN_DEL_ACCOUNT_BANNED
Definition: LoginDatabase.h:39
@ LOGIN_SEL_ACCOUNT_TOYS
Definition: LoginDatabase.h:150
@ LOGIN_DEL_EXPIRED_IP_BANS
Definition: LoginDatabase.h:32
@ LOGIN_SEL_CHECK_PASSWORD_BY_NAME
Definition: LoginDatabase.h:81
@ LOGIN_INS_BATTLE_PETS
Definition: LoginDatabase.h:154
@ LOGIN_DEL_BATTLE_PETS
Definition: LoginDatabase.h:155
@ LOGIN_SEL_PINFO
Definition: LoginDatabase.h:82
@ MAX_LOGINDATABASE_STATEMENTS
Definition: LoginDatabase.h:179
@ LOGIN_INS_BNET_ACCOUNT_AUTO_BANNED
Definition: LoginDatabase.h:143
@ LOGIN_SEL_BNET_ACCOUNT_ID_BY_EMAIL
Definition: LoginDatabase.h:131
@ LOGIN_UPD_ACCOUNT_TOTP_SECRET
Definition: LoginDatabase.h:114
@ LOGIN_SEL_BNET_GAME_ACCOUNT_LIST_SMALL
Definition: LoginDatabase.h:139
@ LOGIN_UPD_LAST_ATTEMPT_IP
Definition: LoginDatabase.h:70
@ LOGIN_DEL_ACCOUNT_ACCESS
Definition: LoginDatabase.h:74
@ LOGIN_SEL_ACCOUNT_WHOIS
Definition: LoginDatabase.h:88
@ LOGIN_UPD_USERNAME
Definition: LoginDatabase.h:64
@ LOGIN_INS_IP_BANNED
Definition: LoginDatabase.h:48
@ LOGIN_SEL_SECRET_DIGEST
Definition: LoginDatabase.h:109
@ LOGIN_SEL_BNET_ACCOUNT_ID_BY_GAME_ACCOUNT
Definition: LoginDatabase.h:136
@ LOGIN_SEL_REALMLIST
Definition: LoginDatabase.h:31
@ LOGIN_DEL_RBAC_ACCOUNT_PERMISSION
Definition: LoginDatabase.h:103
@ LOGIN_SEL_IP_BANNED_BY_IP
Definition: LoginDatabase.h:51
@ LOGIN_GET_GMLEVEL_BY_REALMID
Definition: LoginDatabase.h:78
@ LOGIN_UPD_EXPANSION
Definition: LoginDatabase.h:60
@ LOGIN_UPD_ACCOUNT_LOCK_COUNTRY
Definition: LoginDatabase.h:62
@ LOGIN_SEL_REALMLIST_SECURITY_LEVEL
Definition: LoginDatabase.h:89
@ LOGIN_SEL_RBAC_ACCOUNT_PERMISSIONS
Definition: LoginDatabase.h:101
@ LOGIN_INS_SECRET_DIGEST
Definition: LoginDatabase.h:110
@ LOGIN_SEL_ACCOUNT_MUTE_INFO
Definition: LoginDatabase.h:106
@ LOGIN_UPD_ACCOUNT_NOT_BANNED
Definition: LoginDatabase.h:54
@ LOGIN_SEL_GM_ACCOUNTS
Definition: LoginDatabase.h:84
@ LOGIN_UPD_LOGON
Definition: LoginDatabase.h:42
@ LOGIN_SEL_ACCOUNT_LIST_BY_NAME
Definition: LoginDatabase.h:44
@ LOGIN_UPD_BNET_AUTHENTICATION
Definition: LoginDatabase.h:117
@ LOGIN_SEL_ACCOUNT_MOUNTS
Definition: LoginDatabase.h:168
@ LOGIN_INS_BNET_TRANSMOG_ILLUSIONS
Definition: LoginDatabase.h:177
@ LOGIN_SEL_ACCOUNT_TOTP_SECRET
Definition: LoginDatabase.h:113
@ LOGIN_INS_FALP_IP_LOGGING
Definition: LoginDatabase.h:98
@ LOGIN_SEL_BNET_EXISTING_AUTHENTICATION
Definition: LoginDatabase.h:118
@ LOGIN_UPD_MUTE_TIME
Definition: LoginDatabase.h:67
@ LOGIN_SEL_BNET_ACCOUNT_INFO
Definition: LoginDatabase.h:121
@ LOGIN_REP_ACCOUNT_MOUNTS
Definition: LoginDatabase.h:169
@ LOGIN_UPD_LAST_CHAR_UNDELETE
Definition: LoginDatabase.h:148
@ LOGIN_DEL_BATTLE_PET_DECLINED_NAME
Definition: LoginDatabase.h:162
@ LOGIN_UPD_LAST_IP
Definition: LoginDatabase.h:69
@ LOGIN_SEL_ACCOUNT_ACCESS_BY_ID
Definition: LoginDatabase.h:100
@ LOGIN_UPD_BNET_GAME_ACCOUNT_LOGIN_INFO
Definition: LoginDatabase.h:123
@ LOGIN_INS_BATTLE_PET_DECLINED_NAME
Definition: LoginDatabase.h:161
@ LOGIN_INS_BNET_ACCOUNT
Definition: LoginDatabase.h:129
@ LOGIN_UPD_ACCOUNT_LOCK
Definition: LoginDatabase.h:61
@ LOGIN_SEL_AUTOBROADCAST
Definition: LoginDatabase.h:91
@ LOGIN_SEL_SUM_REALM_CHARACTERS
Definition: LoginDatabase.h:57
@ LOGIN_UPD_ACCOUNT_ONLINE
Definition: LoginDatabase.h:71
@ LOGIN_GET_USERNAME_BY_ID
Definition: LoginDatabase.h:79
@ LOGIN_UPD_BATTLE_PETS
Definition: LoginDatabase.h:157
@ LOGIN_DEL_ACCOUNT
Definition: LoginDatabase.h:90
@ LOGIN_SEL_BNET_CHARACTER_COUNTS_BY_ACCOUNT_ID
Definition: LoginDatabase.h:124
@ LOGIN_SEL_LAST_IP
Definition: LoginDatabase.h:93
@ LOGIN_INS_BNET_LAST_PLAYER_CHARACTERS
Definition: LoginDatabase.h:128
@ LOGIN_DEL_BATTLE_PET_SLOTS
Definition: LoginDatabase.h:160
@ LOGIN_INS_REALM_CHARACTERS_INIT
Definition: LoginDatabase.h:59
@ LOGIN_SEL_IP_INFO
Definition: LoginDatabase.h:34
@ LOGIN_DEL_SECRET_DIGEST
Definition: LoginDatabase.h:111
@ LOGIN_UPD_EXPIRED_ACCOUNT_BANS
Definition: LoginDatabase.h:33
@ LOGIN_SEL_ACCOUNT_INFO_CONTINUED_SESSION
Definition: LoginDatabase.h:41
@ LOGIN_SEL_ACCOUNT_BANNED_BY_USERNAME
Definition: LoginDatabase.h:38
@ LOGIN_SEL_ACCOUNT_HEIRLOOMS
Definition: LoginDatabase.h:165
@ LOGIN_DEL_BNET_EXPIRED_ACCOUNT_BANNED
Definition: LoginDatabase.h:144
@ LOGIN_SEL_BNET_TRANSMOG_ILLUSIONS
Definition: LoginDatabase.h:176
@ LOGIN_INS_FACL_IP_LOGGING
Definition: LoginDatabase.h:96
@ LOGIN_INS_CHAR_IP_LOGGING
Definition: LoginDatabase.h:97
@ LOGIN_DEL_BATTLE_PET_DECLINED_NAME_BY_OWNER
Definition: LoginDatabase.h:163
@ LOGIN_UPD_BNET_PASSWORD
Definition: LoginDatabase.h:132
@ LOGIN_DEL_BNET_LAST_PLAYER_CHARACTERS
Definition: LoginDatabase.h:127
@ LOGIN_INS_ACCOUNT_ACCESS
Definition: LoginDatabase.h:76
@ LOGIN_DEL_REALM_CHARACTERS
Definition: LoginDatabase.h:55
@ LOGIN_SEL_CHECK_PASSWORD
Definition: LoginDatabase.h:80
@ LOGIN_SEL_PINFO_BANS
Definition: LoginDatabase.h:83
@ LOGIN_SEL_ACCOUNT_ID_BY_NAME
Definition: LoginDatabase.h:43
@ LOGIN_SEL_BNET_GAME_ACCOUNT_LIST
Definition: LoginDatabase.h:140
@ LOGIN_SEL_ACCOUNT_ACCESS
Definition: LoginDatabase.h:87
@ LOGIN_UPD_BNET_ACCOUNT_LOCK_CONTRY
Definition: LoginDatabase.h:135
@ LOGIN_SEL_BNET_MAX_ACCOUNT_INDEX
Definition: LoginDatabase.h:138
@ LOGIN_SEL_IP_BANNED_ALL
Definition: LoginDatabase.h:50
@ LOGIN_INS_IP_AUTO_BANNED
Definition: LoginDatabase.h:35
@ LOGIN_SEL_ACCOUNT_INFO
Definition: LoginDatabase.h:85
@ LOGIN_INS_RBAC_ACCOUNT_PERMISSION
Definition: LoginDatabase.h:102
@ LOGIN_SEL_BNET_ACCOUNT_EMAIL_BY_ID
Definition: LoginDatabase.h:130
@ LOGIN_SEL_BATTLE_PET_SLOTS
Definition: LoginDatabase.h:158
@ LOGIN_REP_ACCOUNT_HEIRLOOMS
Definition: LoginDatabase.h:166
@ LOGIN_SEL_BNET_LAST_PLAYER_CHARACTERS
Definition: LoginDatabase.h:126
@ LOGIN_INS_BNET_ITEM_FAVORITE_APPEARANCE
Definition: LoginDatabase.h:174
@ LOGIN_DEL_OLD_LOGS
Definition: LoginDatabase.h:73
@ LOGIN_SEL_ACCOUNT_BANNED_ALL
Definition: LoginDatabase.h:36
@ LOGIN_SEL_BNET_CHECK_PASSWORD
Definition: LoginDatabase.h:133
@ LOGIN_SEL_ACCOUNT_INFO_BY_NAME
Definition: LoginDatabase.h:45
@ LOGIN_UPD_BNET_EXISTING_AUTHENTICATION
Definition: LoginDatabase.h:120
@ LOGIN_SEL_BNET_ITEM_APPEARANCES
Definition: LoginDatabase.h:171
@ LOGIN_INS_ACCOUNT_MUTE
Definition: LoginDatabase.h:105
@ LOGIN_INS_BNET_ITEM_APPEARANCES
Definition: LoginDatabase.h:172
@ LOGIN_REP_ACCOUNT_TOYS
Definition: LoginDatabase.h:151
@ LOGIN_INS_ACCOUNT
Definition: LoginDatabase.h:58
@ LOGIN_DEL_BNET_ITEM_FAVORITE_APPEARANCE
Definition: LoginDatabase.h:175
@ CONNECTION_SYNCH
Definition: MySQLConnection.h:38
@ CONNECTION_BOTH
Definition: MySQLConnection.h:39
@ CONNECTION_ASYNC
Definition: MySQLConnection.h:37
void PrepareStatement(uint32 index, std::string const &sql, ConnectionFlags flags)
Definition: MySQLConnection.cpp:482
PreparedStatementContainer m_stmts
Definition: MySQLConnection.h:101
bool m_reconnecting
PreparedStatements storage.
Definition: MySQLConnection.h:102