aboutsummaryrefslogtreecommitdiff
path: root/src/core/internal_network/network.cpp
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-11-03 01:19:59 +0100
committercirakg <cirakg@cirakg.xyz>2026-11-03 01:19:59 +0100
commit10e0c2a8b5074a8e0bb73bfc50d753b60d13f43d (patch)
treec0862d16323a895f4488691aba65995d210d87c9 /src/core/internal_network/network.cpp
parentc85a2c2d021e5337cf27ebd91a0f1e3d9f628de3 (diff)
parent507c36374d3bab1c036ec11f80776c9842153479 (diff)
Merge branch 'fix/room-proxy-recv' into nx2
Diffstat (limited to 'src/core/internal_network/network.cpp')
-rw-r--r--src/core/internal_network/network.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp
index 01d37fb35b..d1c436aa08 100644
--- a/src/core/internal_network/network.cpp
+++ b/src/core/internal_network/network.cpp
@@ -722,6 +722,17 @@ std::optional<IPv4Address> GetHostIPv4Address() {
return TranslateIPv4(network_interface->ip_address);
}
+std::optional<IPv4Address> GetRoomIPv4Address() {
+ if (const auto room_member = GetRoomMember().lock()) {
+ // The room host and moderators are in the Moderator state instead of Joined
+ const auto state = room_member->GetState();
+ if (state == RoomMember::State::Joined || state == RoomMember::State::Moderator) {
+ return room_member->GetFakeIpAddress();
+ }
+ }
+ return std::nullopt;
+}
+
std::string IPv4AddressToString(IPv4Address ip_addr) {
std::array<char, INET_ADDRSTRLEN> buf = {};
ASSERT(inet_ntop(AF_INET, &ip_addr, buf.data(), sizeof(buf)) == buf.data());