Speed up connecting

This commit is contained in:
Sofia 2026-08-15 01:00:10 +03:00
parent c75e0e40c7
commit 30ef3ab779

View File

@ -100,7 +100,9 @@ impl<T: std::fmt::Debug + Clone + Serialize + DeserializeOwned + Send + Sync + '
if let Some(_) = &self.udp.socket {
for (addr, conn) in &mut self.connections {
let interval = if conn.last_sent_ping > conn.last_recv_pong {
let interval = if conn.last_sent_ping > conn.last_recv_pong
&& conn.state == ConnectionState::Connected
{
self.config.max_ping_interval
} else {
self.config.ping_interval
@ -309,6 +311,8 @@ impl<T: std::fmt::Debug + Clone + Serialize + DeserializeOwned + Send + Sync + '
if conn.state == ConnectionState::ConnectingNearlyReady
|| conn.state == ConnectionState::ReceivingConnection
{
// Workaround to make the first ping after connecting to be instantaneous
conn.last_recv_pong = Instant::now();
conn.state = ConnectionState::Connected;
messages.push(PeerMessage::NewConnection(conn.clone()));
}