mirror of
https://github.com/mangosfour/server.git
synced 2025-12-16 13:37:00 +00:00
[10340] Some fixes for recent chat code changes.
* Fixed crash at absent optional literal. Thanks to MysteriousSouL for reproting. * Converted mode commands use new way parsing functions with fixing posible crash cases.
This commit is contained in:
parent
a202b33702
commit
8b99ac7298
4 changed files with 115 additions and 153 deletions
|
|
@ -4459,14 +4459,15 @@ bool ChatHandler::HandleLearnAllRecipesCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLookupAccountEmailCommand(char* args)
|
||||
{
|
||||
|
||||
if (!*args)
|
||||
char* emailStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!emailStr)
|
||||
return false;
|
||||
|
||||
std::string email = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string email = emailStr;
|
||||
LoginDatabase.escape_string(email);
|
||||
// 0 1 2 3 4
|
||||
QueryResult *result = LoginDatabase.PQuery("SELECT id, username, last_ip, gmlevel, expansion FROM account WHERE email "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"), email.c_str ());
|
||||
|
|
@ -4476,13 +4477,15 @@ bool ChatHandler::HandleLookupAccountEmailCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLookupAccountIpCommand(char* args)
|
||||
{
|
||||
if (!*args)
|
||||
char* ipStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!ipStr)
|
||||
return false;
|
||||
|
||||
std::string ip = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string ip = ipStr;
|
||||
LoginDatabase.escape_string(ip);
|
||||
|
||||
// 0 1 2 3 4
|
||||
|
|
@ -4493,13 +4496,15 @@ bool ChatHandler::HandleLookupAccountIpCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLookupAccountNameCommand(char* args)
|
||||
{
|
||||
if (!*args)
|
||||
char* accountStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!accountStr)
|
||||
return false;
|
||||
|
||||
std::string account = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string account = accountStr;
|
||||
if (!AccountMgr::normalizeString(account))
|
||||
return false;
|
||||
|
||||
|
|
@ -4564,13 +4569,15 @@ bool ChatHandler::ShowAccountListHelper(QueryResult* result, uint32* limit, bool
|
|||
|
||||
bool ChatHandler::HandleLookupPlayerIpCommand(char* args)
|
||||
{
|
||||
if (!*args)
|
||||
char* ipStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!ipStr)
|
||||
return false;
|
||||
|
||||
std::string ip = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string ip = ipStr;
|
||||
LoginDatabase.escape_string(ip);
|
||||
|
||||
QueryResult* result = LoginDatabase.PQuery ("SELECT id,username FROM account WHERE last_ip "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"), ip.c_str ());
|
||||
|
|
@ -4580,13 +4587,15 @@ bool ChatHandler::HandleLookupPlayerIpCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLookupPlayerAccountCommand(char* args)
|
||||
{
|
||||
if (!*args)
|
||||
char* accountStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!accountStr)
|
||||
return false;
|
||||
|
||||
std::string account = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string account = accountStr;
|
||||
if (!AccountMgr::normalizeString(account))
|
||||
return false;
|
||||
|
||||
|
|
@ -4599,13 +4608,15 @@ bool ChatHandler::HandleLookupPlayerAccountCommand(char* args)
|
|||
|
||||
bool ChatHandler::HandleLookupPlayerEmailCommand(char* args)
|
||||
{
|
||||
if (!*args)
|
||||
char* emailStr = ExtractQuotedOrLiteralArg(&args);
|
||||
if (!emailStr)
|
||||
return false;
|
||||
|
||||
std::string email = strtok(args, " ");
|
||||
char* limit_str = strtok(NULL, " ");
|
||||
uint32 limit = limit_str ? atoi(limit_str) : 100;
|
||||
uint32 limit;
|
||||
if (!ExtractOptUInt32(&args, limit, 100))
|
||||
return false;
|
||||
|
||||
std::string email = emailStr;
|
||||
LoginDatabase.escape_string(email);
|
||||
|
||||
QueryResult* result = LoginDatabase.PQuery("SELECT id,username FROM account WHERE email "_LIKE_" "_CONCAT3_("'%%'","'%s'","'%%'"), email.c_str ());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue