aboutsummaryrefslogtreecommitdiff
path: root/src/core/internal_network/socket_proxy.cpp
diff options
context:
space:
mode:
authorFeng Chen <VonChenPlus@gmail.com>2022-09-20 11:56:43 +0800
committerGitHub <noreply@github.com>2022-09-20 11:56:43 +0800
commitc864cb57726e76e9dc4558036f3212168bec825d (patch)
treeca79c4397f40990488a7b5691e15c0fcfec507b6 /src/core/internal_network/socket_proxy.cpp
parent9a95c7fa14bdfc14aacea92896c8ae8533918fe8 (diff)
parent8d4458ef24e473e57b9931d7a9d1442b51fb0b1a (diff)
Merge branch 'master' into mipmap
Diffstat (limited to 'src/core/internal_network/socket_proxy.cpp')
-rw-r--r--src/core/internal_network/socket_proxy.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/internal_network/socket_proxy.cpp b/src/core/internal_network/socket_proxy.cpp
index 49d067f4c..0c746bd82 100644
--- a/src/core/internal_network/socket_proxy.cpp
+++ b/src/core/internal_network/socket_proxy.cpp
@@ -26,6 +26,12 @@ void ProxySocket::HandleProxyPacket(const ProxyPacket& packet) {
closed) {
return;
}
+
+ if (!broadcast && packet.broadcast) {
+ LOG_INFO(Network, "Received broadcast packet, but not configured for broadcast mode");
+ return;
+ }
+
std::lock_guard guard(packets_mutex);
received_packets.push(packet);
}
@@ -203,7 +209,7 @@ std::pair<s32, Errno> ProxySocket::SendTo(u32 flags, const std::vector<u8>& mess
packet.local_endpoint = local_endpoint;
packet.remote_endpoint = *addr;
packet.protocol = protocol;
- packet.broadcast = broadcast;
+ packet.broadcast = broadcast && packet.remote_endpoint.ip[3] == 255;
auto& ip = local_endpoint.ip;
auto ipv4 = Network::GetHostIPv4Address();