diff options
Diffstat (limited to 'src/server/shared/Realm/Realm.cpp')
-rw-r--r-- | src/server/shared/Realm/Realm.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/server/shared/Realm/Realm.cpp b/src/server/shared/Realm/Realm.cpp index 7b98f51bf35..6f9d216bcd4 100644 --- a/src/server/shared/Realm/Realm.cpp +++ b/src/server/shared/Realm/Realm.cpp @@ -16,8 +16,9 @@ */ #include "Realm.h" +#include "IpAddress.h" +#include "IpNetwork.h" #include "StringFormat.h" -#include <boost/asio/ip/address.hpp> #include <algorithm> #include <cctype> @@ -47,12 +48,8 @@ boost::asio::ip::address Realm::GetAddressForClient(boost::asio::ip::address con } else { - if (clientAddr.is_v4() && - (clientAddr.to_v4().to_ulong() & LocalSubnetMask->to_v4().to_ulong()) == - (LocalAddress->to_v4().to_ulong() & LocalSubnetMask->to_v4().to_ulong())) - { + if (clientAddr.is_v4() && Trinity::Net::IsInNetwork(LocalAddress->to_v4(), LocalSubnetMask->to_v4(), clientAddr.to_v4())) realmIp = *LocalAddress; - } else realmIp = *ExternalAddress; } |