Przeglądaj źródła

Merge pull request #67532 from Faless/ws/4.x_fix_poll

[WebSocket] Fix client failing to connect to direct IP.
Rémi Verschelde 3 lat temu
rodzic
commit
28a4eec9a7
1 zmienionych plików z 4 dodań i 2 usunięć
  1. 4 2
      modules/websocket/wsl_peer.cpp

+ 4 - 2
modules/websocket/wsl_peer.cpp

@@ -320,7 +320,9 @@ void WSLPeer::_do_client_handshake() {
 	}
 
 	tcp->poll();
-	if (tcp->get_status() != StreamPeerTCP::STATUS_CONNECTED) {
+	if (tcp->get_status() == StreamPeerTCP::STATUS_CONNECTING) {
+		return; // Keep connecting.
+	} else if (tcp->get_status() != StreamPeerTCP::STATUS_CONNECTED) {
 		close(-1); // Failed to connect.
 		return;
 	}
@@ -511,7 +513,7 @@ Error WSLPeer::connect_to_url(const String &p_url, bool p_verify_tls, Ref<X509Ce
 	resolver.start(host, port);
 	resolver.try_next_candidate(tcp);
 
-	if (tcp->get_status() != StreamPeerTCP::STATUS_CONNECTING && !resolver.has_more_candidates()) {
+	if (tcp->get_status() != StreamPeerTCP::STATUS_CONNECTING && tcp->get_status() != StreamPeerTCP::STATUS_CONNECTED && !resolver.has_more_candidates()) {
 		_clear();
 		return FAILED;
 	}