From c8b3ee3dd6a23bfc4c31161841ed15f1f7cb9ff3 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 16 Apr 2016 00:20:20 +0200 Subject: Core/Bnet: Fixed LoginREST.* address selection --- src/server/bnetserver/REST/LoginRESTService.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/server/bnetserver/REST/LoginRESTService.cpp') 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; -- cgit v1.2.3