diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/network.rs | 13 |
1 files changed, 9 insertions, 4 deletions
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<Mutex<HashMap<u128, (SyncSender<Arc<Vec<u8>>>, Option<SocketAddr>)>>>; + pub struct ServerNetwork { conns: Conns, udp_sock: Arc<UdpSocket>, pub recv: Receiver<(u128, Packet)>, } + impl ServerNetwork { pub fn new(addr: SocketAddr) -> Result<Self> { let (recv_tx, recv_rx) = channel(); @@ -118,10 +120,13 @@ fn serve_udp(udp_sock: Arc<UdpSocket>, 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; |