From f8c243d5a06cbb72f4757e2fb5421c3ec50d509c Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 23 Mar 2025 15:09:21 +0100 Subject: fix endless loading on broken meshes --- server/src/network.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'server/src') diff --git a/server/src/network.rs b/server/src/network.rs index ec65218..19498c5 100644 --- a/server/src/network.rs +++ b/server/src/network.rs @@ -30,11 +30,13 @@ use std::{ use weareshared::{helper::ReadWrite, packets::Packet, tree::PacketSink}; type Conns = Arc>>, Option)>>>; + pub struct ServerNetwork { conns: Conns, udp_sock: Arc, pub recv: Receiver<(u128, Packet)>, } + impl ServerNetwork { pub fn new(addr: SocketAddr) -> Result { let (recv_tx, recv_rx) = channel(); @@ -118,10 +120,13 @@ fn serve_udp(udp_sock: Arc, conns: Conns, recv_tx: Sender<(u128, Pack if let Packet::Connect(id) = &packet { if let Some((_send, udp_addr)) = conns.lock().unwrap().get_mut(id) { *udp_addr = Some(addr); - cstates.insert(addr, CState { - conn_id: *id, - last_ack: Instant::now(), - }); + cstates.insert( + addr, + CState { + conn_id: *id, + last_ack: Instant::now(), + }, + ); } } else if let Some(conn) = cstates.get(&addr) { let cid = conn.conn_id; -- cgit v1.2.3-70-g09d2