aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-07-18 18:09:30 +0200
committerShauren <shauren.trinity@gmail.com>2023-07-18 18:09:30 +0200
commit7d8bc543f9277bec3db12ecde9b9025211ed1994 (patch)
tree1f1d937a0062a2b3a56f67152165ea06049b7acc /src
parentdfbf09f4b936eaf6042fb0b2ab431eb986c330d2 (diff)
Core/Network: Don't send localhost addresses to external clients
Diffstat (limited to 'src')
-rw-r--r--src/common/Asio/IpNetwork.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/common/Asio/IpNetwork.cpp b/src/common/Asio/IpNetwork.cpp
index 5e5dcb9ac22..5de167e7a77 100644
--- a/src/common/Asio/IpNetwork.cpp
+++ b/src/common/Asio/IpNetwork.cpp
@@ -80,7 +80,15 @@ Optional<std::size_t> SelectAddressForClient(boost::asio::ip::address const& cli
{
boost::asio::ip::address const& address = addresses[i];
- if (IsInLocalNetwork(address))
+ if (address.is_loopback())
+ {
+ if (address.is_v6() && !loopbackIpv6Index)
+ loopbackIpv6Index = i;
+
+ if (address.is_v4() && !loopbackIpv4Index)
+ loopbackIpv4Index = i;
+ }
+ else if (IsInLocalNetwork(address))
{
if (address.is_v6() && !localIpv6Index)
localIpv6Index = i;
@@ -97,14 +105,6 @@ Optional<std::size_t> SelectAddressForClient(boost::asio::ip::address const& cli
externalIpv4Index = i;
}
- if (address.is_loopback())
- {
- if (address.is_v6() && !loopbackIpv6Index)
- loopbackIpv6Index = i;
-
- if (address.is_v4() && !loopbackIpv4Index)
- loopbackIpv4Index = i;
- }
}
if (IsInLocalNetwork(clientAddress) || clientAddress.is_loopback())