mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Merge pull request #60761 from Faless/net/4.x_fix_tcp_server_ws
[Net] Fix TCPServer and WSLClient status after "poll" refactoring.
This commit is contained in:
commit
d38d05c298
3 changed files with 8 additions and 9 deletions
|
|
@ -81,7 +81,7 @@ void StreamPeerTCP::accept_socket(Ref<NetSocket> p_sock, IPAddress p_host, uint1
|
|||
_sock->set_blocking_enabled(false);
|
||||
|
||||
timeout = OS::get_singleton()->get_ticks_msec() + (((uint64_t)GLOBAL_GET("network/limits/tcp/connect_timeout_seconds")) * 1000);
|
||||
status = STATUS_CONNECTING;
|
||||
status = STATUS_CONNECTED;
|
||||
|
||||
peer_host = p_host;
|
||||
peer_port = p_port;
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ void WSLClient::_do_handshake() {
|
|||
data->id = 1;
|
||||
_peer->make_context(data, _in_buf_size, _in_pkt_size, _out_buf_size, _out_pkt_size);
|
||||
_peer->set_no_delay(true);
|
||||
_status = CONNECTION_CONNECTED;
|
||||
_on_connect(protocol);
|
||||
break;
|
||||
}
|
||||
|
|
@ -231,6 +232,7 @@ Error WSLClient::connect_to_host(String p_host, String p_path, uint16_t p_port,
|
|||
}
|
||||
request += "\r\n";
|
||||
_request = request.utf8();
|
||||
_status = CONNECTION_CONNECTING;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
|
@ -337,21 +339,19 @@ Ref<WebSocketPeer> WSLClient::get_peer(int p_peer_id) const {
|
|||
}
|
||||
|
||||
MultiplayerPeer::ConnectionStatus WSLClient::get_connection_status() const {
|
||||
// This is surprising, but keeps the current behaviour to allow clean close requests.
|
||||
// TODO Refactor WebSocket and split Client/Server/Multiplayer like done in other peers.
|
||||
if (_peer->is_connected_to_host()) {
|
||||
return CONNECTION_CONNECTED;
|
||||
}
|
||||
|
||||
if (_tcp->get_status() == StreamPeerTCP::STATUS_CONNECTING || _resolver_id != IP::RESOLVER_INVALID_ID) {
|
||||
return CONNECTION_CONNECTING;
|
||||
}
|
||||
|
||||
return CONNECTION_DISCONNECTED;
|
||||
return _status;
|
||||
}
|
||||
|
||||
void WSLClient::disconnect_from_host(int p_code, String p_reason) {
|
||||
_peer->close(p_code, p_reason);
|
||||
_connection = Ref<StreamPeer>(nullptr);
|
||||
_tcp = Ref<StreamPeerTCP>(memnew(StreamPeerTCP));
|
||||
_status = CONNECTION_DISCONNECTED;
|
||||
|
||||
_key = "";
|
||||
_host = "";
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ private:
|
|||
Ref<WSLPeer> _peer;
|
||||
Ref<StreamPeerTCP> _tcp;
|
||||
Ref<StreamPeer> _connection;
|
||||
ConnectionStatus _status = CONNECTION_DISCONNECTED;
|
||||
|
||||
CharString _request;
|
||||
int _requested = 0;
|
||||
|
|
@ -59,8 +60,6 @@ private:
|
|||
uint8_t _resp_buf[WSL_MAX_HEADER_SIZE];
|
||||
int _resp_pos = 0;
|
||||
|
||||
String _response;
|
||||
|
||||
String _key;
|
||||
String _host;
|
||||
uint16_t _port = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue