From e4499d44e931d2ee7c70e7610bbfca3fefd00fea Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 14 Jun 2024 04:48:14 +0200 Subject: implement upload and download --- src/server.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/server.rs') diff --git a/src/server.rs b/src/server.rs index d24f1b4..93baeb6 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,6 +1,6 @@ use crate::{Config, PeerConfig, Serial}; use anyhow::{anyhow, bail}; -use log::{error, info, warn}; +use log::{debug, error, info, warn}; use serde::{Deserialize, Serialize}; use std::{ fs::{create_dir_all, read_to_string, remove_file, File}, @@ -78,6 +78,7 @@ fn handle_connection( rsock.by_ref().take(4096).read_line(&mut line)?; let mut toks = line.trim().split(","); let command = toks.next().ok_or(anyhow!("command missing"))?; + debug!("command {command:?} issued"); match command { "quit" => break Ok(()), "list" => { @@ -123,7 +124,7 @@ fn handle_connection( writeln!(wsock, "ready")?; wsock.flush()?; - while peerdir.read_dir()?.fold(0, |a, _| a + 1) > config.storage.versions { + while peerdir.read_dir()?.fold(0, |a, _| a + 1) >= config.storage.versions { let mut dir = peerdir .read_dir()? .map(|e| { @@ -143,7 +144,7 @@ fn handle_connection( remove_file(peerdir.join(rem.to_string()))?; } - info!("upload from {addr} size={size}"); + info!("upload from {addr} size={size} serial={serial}"); let mut upload = rsock.get_ref().take(size); let mut target = BufWriter::new(File::create_new(peerdir.join(serial.to_string()))?); @@ -177,6 +178,7 @@ fn handle_connection( let size = source.metadata()?.size(); let mut source = BufReader::new(source); + info!("download for {addr} size={size} serial={serial}"); writeln!(wsock, "ready,{size}")?; wsock.flush()?; copy(&mut source, wsock)?; // TODO speed limit -- cgit v1.2.3-70-g09d2