Browse Source

Fix MultiplayerAPI crash when peer impl misbehave.

Also fix WebSocketMultiplayer::get_available_packet_count() return value
when peer is not configured to use the multiplayer API.
Fabio Alessandrelli 5 years ago
parent
commit
50f1b035b8
2 changed files with 2 additions and 1 deletions
  1. 1 0
      core/io/multiplayer_api.cpp
  2. 1 1
      modules/websocket/websocket_multiplayer_peer.cpp

+ 1 - 0
core/io/multiplayer_api.cpp

@@ -111,6 +111,7 @@ void MultiplayerAPI::poll() {
 		Error err = network_peer->get_packet(&packet, len);
 		if (err != OK) {
 			ERR_PRINT("Error getting packet!");
+			break; // Something is wrong!
 		}
 
 		rpc_sender_id = sender;

+ 1 - 1
modules/websocket/websocket_multiplayer_peer.cpp

@@ -98,7 +98,7 @@ void WebSocketMultiplayerPeer::_bind_methods() {
 //
 int WebSocketMultiplayerPeer::get_available_packet_count() const {
 
-	ERR_FAIL_COND_V_MSG(!_is_multiplayer, ERR_UNCONFIGURED, "Please use get_peer(ID).get_available_packet_count to get available packet count from peers when not using the MultiplayerAPI.");
+	ERR_FAIL_COND_V_MSG(!_is_multiplayer, 0, "Please use get_peer(ID).get_available_packet_count to get available packet count from peers when not using the MultiplayerAPI.");
 
 	return _incoming_packets.size();
 }