diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-08-06 12:32:27 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-08-06 12:32:27 +0200 |
commit | 4359c28feafb39dd0157744a52f6746d49a38c37 (patch) | |
tree | 1bac9247e3bcf6578cb9ff3d76ea49962767fb67 | |
parent | 4577b370366f46a8571583c0fbf779951ce0dc98 (diff) | |
parent | 531c72f30d5bc23e56b4841f5f657397e9095bf5 (diff) | |
download | redot-engine-4359c28feafb39dd0157744a52f6746d49a38c37.tar.gz |
Merge pull request #95192 from Faless/mp/quite_relay_to_disconnected
[MP] Avoid error spam in relay protocol when clients disconnect
-rw-r--r-- | modules/multiplayer/scene_multiplayer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/multiplayer/scene_multiplayer.cpp b/modules/multiplayer/scene_multiplayer.cpp index e2ebca0c88..6694376b30 100644 --- a/modules/multiplayer/scene_multiplayer.cpp +++ b/modules/multiplayer/scene_multiplayer.cpp @@ -307,8 +307,10 @@ void SceneMultiplayer::_process_sys(int p_from, const uint8_t *p_packet, int p_p int len = p_packet_len - SYS_CMD_SIZE; bool should_process = false; if (get_unique_id() == 1) { // I am the server. - // Direct messages to server should not go through relay. - ERR_FAIL_COND(peer > 0 && !connected_peers.has(peer)); + // The requested target might have disconnected while the packet was in transit. + if (unlikely(peer > 0 && !connected_peers.has(peer))) { + return; + } // Send relay packet. relay_buffer->seek(0); relay_buffer->put_u8(NETWORK_COMMAND_SYS); |