Merge pull request #31483 from Faless/ws/fix_double_relay

Fix WebSocketServer relaying message twice.
This commit is contained in:
Rémi Verschelde 2019-08-20 12:49:15 +02:00 committed by GitHub
commit f2c9252b6e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -299,8 +299,6 @@ void WebSocketMultiplayerPeer::_process_multiplayer(Ref<WebSocketPeer> p_peer, u
ERR_FAIL_COND(type != SYS_NONE); // Only server sends sys messages
ERR_FAIL_COND(from != p_peer_id); // Someone is cheating
_server_relay(from, to, in_buffer, size); // Relay if needed
if (to == 1) { // This is for the server
_store_pkt(from, to, in_buffer, data_size);
@ -315,13 +313,9 @@ void WebSocketMultiplayerPeer::_process_multiplayer(Ref<WebSocketPeer> p_peer, u
// All but one, for us if not excluded
if (_peer_id != -(int32_t)p_peer_id)
_store_pkt(from, to, in_buffer, data_size);
} else {
// Send to specific peer
ERR_FAIL_COND(!_peer_map.has(to));
get_peer(to)->put_packet(in_buffer, size);
}
// Relay if needed (i.e. "to" includes a peer that is not the server)
_server_relay(from, to, in_buffer, size);
} else {