diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-04-09 21:02:31 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-04-09 21:02:31 +0200 |
commit | 71b681bbf0f5189cd87a6cea66ef51667223f54a (patch) | |
tree | f5da2eb9d76010efcf5abd875edd39c812b62bd7 /src/server/scripts/Commands | |
parent | 6c374c56b2bd06923ae738b19ca6a4257e29d863 (diff) |
Core/Network: Move to separate project
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r-- | src/server/scripts/Commands/cs_ban.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/server/scripts/Commands/cs_ban.cpp b/src/server/scripts/Commands/cs_ban.cpp index 5e717b379db..7af5a820ccc 100644 --- a/src/server/scripts/Commands/cs_ban.cpp +++ b/src/server/scripts/Commands/cs_ban.cpp @@ -29,6 +29,7 @@ EndScriptData */ #include "ChatCommand.h" #include "DatabaseEnv.h" #include "GameTime.h" +#include "IpAddress.h" #include "Language.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -161,6 +162,13 @@ public: return HandleBanHelper(BAN_IP, args, handler); } + static bool IsIPAddress(std::string const& text) + { + boost::system::error_code error; + Trinity::Net::make_address(text, error); + return !error; + } + static bool HandleBanHelper(BanMode mode, char const* args, ChatHandler* handler) { if (!*args) @@ -199,7 +207,7 @@ public: } break; case BAN_IP: - if (!IsIPAddress(nameOrIP.c_str())) + if (!IsIPAddress(nameOrIP)) return false; break; } @@ -360,22 +368,13 @@ public: return true; } - static bool HandleBanInfoIPCommand(ChatHandler* handler, char const* args) + static bool HandleBanInfoIPCommand(ChatHandler* handler, std::string&& ip) { - if (!*args) + if (!IsIPAddress(ip)) return false; - char* ipStr = strtok((char*)args, ""); - if (!ipStr) - return false; - - if (!IsIPAddress(ipStr)) - return false; - - std::string IP = ipStr; - - LoginDatabase.EscapeString(IP); - QueryResult result = LoginDatabase.PQuery("SELECT ip, FROM_UNIXTIME(bandate), FROM_UNIXTIME(unbandate), unbandate-UNIX_TIMESTAMP(), banreason, bannedby, unbandate-bandate FROM ip_banned WHERE ip = '{}'", IP); + LoginDatabase.EscapeString(ip); + QueryResult result = LoginDatabase.PQuery("SELECT ip, FROM_UNIXTIME(bandate), FROM_UNIXTIME(unbandate), unbandate-UNIX_TIMESTAMP(), banreason, bannedby, unbandate-bandate FROM ip_banned WHERE ip = '{}'", ip); if (!result) { handler->PSendSysMessage(LANG_BANINFO_NOIP); @@ -745,7 +744,7 @@ public: } break; case BAN_IP: - if (!IsIPAddress(nameOrIP.c_str())) + if (!IsIPAddress(nameOrIP)) return false; break; } |