From 19851a0a6c3e8692e5c9473a7f9d6aa8a1b0e536 Mon Sep 17 00:00:00 2001 From: Foereaper Date: Sun, 12 Apr 2015 22:15:37 +0200 Subject: [PATCH] Updated Realmd to now accept both local and external connections Thanks to Shauren and TrinityCore for the first implementation --- src/realmd | 2 +- src/shared/Utilities/Util.cpp | 15 +++++++++++++++ src/shared/Utilities/Util.h | 9 +++++++++ src/shared/revision.h | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/realmd b/src/realmd index 86cbfcf8..9c9e7ae7 160000 --- a/src/realmd +++ b/src/realmd @@ -1 +1 @@ -Subproject commit 86cbfcf877504485df94311b91d88cd932e7783a +Subproject commit 9c9e7ae7919e1cd5ce1f454520b9adf3316e2137 diff --git a/src/shared/Utilities/Util.cpp b/src/shared/Utilities/Util.cpp index 424c614b..0d26a023 100644 --- a/src/shared/Utilities/Util.cpp +++ b/src/shared/Utilities/Util.cpp @@ -262,6 +262,21 @@ bool IsIPAddress(char const* ipaddress) return ACE_OS::inet_addr(ipaddress) != INADDR_NONE; } +std::string GetAddressString(ACE_INET_Addr const& addr) +{ + char buf[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16]; + addr.addr_to_string(buf, ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 16); + return buf; +} + +bool IsIPAddrInNetwork(ACE_INET_Addr const& net, ACE_INET_Addr const& addr, ACE_INET_Addr const& subnetMask) +{ + uint32 mask = subnetMask.get_ip_address(); + if ((net.get_ip_address() & mask) == (addr.get_ip_address() & mask)) + return true; + return false; +} + /// create PID file uint32 CreatePIDFile(const std::string& filename) { diff --git a/src/shared/Utilities/Util.h b/src/shared/Utilities/Util.h index 9d4ac214..3e878d4c 100644 --- a/src/shared/Utilities/Util.h +++ b/src/shared/Utilities/Util.h @@ -26,6 +26,8 @@ #define MANGOS_H_UTIL #include "Common/Common.h" +#include +#include #include #include @@ -700,6 +702,13 @@ void vutf8printf(FILE* out, const char* str, va_list* ap); * @return bool */ bool IsIPAddress(char const* ipaddress); + +/// Checks if address belongs to the a network with specified submask +bool IsIPAddrInNetwork(ACE_INET_Addr const& net, ACE_INET_Addr const& addr, ACE_INET_Addr const& subnetMask); + +/// Transforms ACE_INET_Addr address into string format "dotted_ip:port" +std::string GetAddressString(ACE_INET_Addr const& addr); + /** * @brief * diff --git a/src/shared/revision.h b/src/shared/revision.h index 8f5aa740..2a1a02b7 100644 --- a/src/shared/revision.h +++ b/src/shared/revision.h @@ -27,5 +27,5 @@ #define REVISION_NR "21000" #define REVISION_DB_CHARACTERS "required_21000_01_warden_action" #define REVISION_DB_MANGOS "required_21000_08_warden_checks" -#define REVISION_DB_REALMD "required_20150412_warden_db_log" +#define REVISION_DB_REALMD "required_20150412_auth_realmlist" #endif // __REVISION_H__