summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main.rs2
-rw-r--r--server/src/network.rs4
2 files changed, 4 insertions, 2 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index a8473c6..58c3cb2 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -50,7 +50,7 @@ impl State {
})
}
pub fn handle_packet(&mut self, conn: u128, packet: Packet, net: &ServerNetwork) -> Result<()> {
- self.tree.update(&packet);
+ self.tree.packet(&packet);
match packet {
Packet::Connect(_) => {
for p in self.tree.prime_client() {
diff --git a/server/src/network.rs b/server/src/network.rs
index 22cbc65..211d0bc 100644
--- a/server/src/network.rs
+++ b/server/src/network.rs
@@ -63,6 +63,7 @@ impl ServerNetwork {
};
let (send_tx, send_rx) = sync_channel(128);
conns.lock().unwrap().insert(conn, (send_tx, None));
+ recv_tx.send((conn, Packet::Connect(conn))).unwrap();
let sock2 = match sock.try_clone() {
Ok(x) => x,
@@ -143,6 +144,7 @@ impl ServerNetwork {
Ok(s)
}
pub fn broadcast(&self, packet: Packet, reliable: bool) {
+ debug!("* -> {packet:?}");
let ser = Arc::new(packet.write_alloc());
for (cid, (tcp, udp)) in self.conns.lock().unwrap().iter() {
if !reliable {
@@ -165,6 +167,7 @@ impl ServerNetwork {
return;
}
}
+ debug!("{conn} -> {packet:?}");
if let Err(_) = tcp.send(ser.clone()) {
warn!("{conn}: queue full, packet dropped")
}
@@ -183,7 +186,6 @@ fn handle_conn_read(conn: u128, sock: TcpStream, tx: Sender<(u128, Packet)>) ->
fn handle_conn_write(conn: u128, sock: TcpStream, rx: Receiver<Arc<Vec<u8>>>) -> Result<()> {
let mut sock = BufWriter::new(sock);
for packet in rx {
- debug!("{conn} -> {packet:?}");
sock.write_all(&packet)?;
sock.flush()?;
}