aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-04-16 00:20:20 +0200
committerShauren <shauren.trinity@gmail.com>2016-04-16 00:20:20 +0200
commitc8b3ee3dd6a23bfc4c31161841ed15f1f7cb9ff3 (patch)
tree68e29da2f0ba442f6ea835089b31f6a6b65e7a0d /src
parent020a09190157235a28fdaf36e42cd263b22295de (diff)
Core/Bnet: Fixed LoginREST.* address selection
Diffstat (limited to 'src')
-rw-r--r--src/server/bnetserver/REST/LoginRESTService.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/server/bnetserver/REST/LoginRESTService.cpp b/src/server/bnetserver/REST/LoginRESTService.cpp
index 7ea25c0bc9c..ab02e0b4254 100644
--- a/src/server/bnetserver/REST/LoginRESTService.cpp
+++ b/src/server/bnetserver/REST/LoginRESTService.cpp
@@ -119,7 +119,8 @@ boost::asio::ip::tcp::endpoint const& LoginRESTService::GetAddressForClient(boos
else if (_localAddress.address().is_loopback())
return _externalAddress;
- if (boost::asio::ip::address_v4::netmask(_localAddress.address().to_v4()).to_ulong() & address.to_v4().to_ulong())
+ boost::asio::ip::address_v4 netmask = boost::asio::ip::address_v4::netmask(_localAddress.address().to_v4());
+ if ((netmask.to_ulong() & address.to_v4().to_ulong()) == (netmask.to_ulong() & _localAddress.address().to_v4().to_ulong()))
return _localAddress;
return _externalAddress;