diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-14 04:48:14 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-14 04:48:14 +0200 |
commit | e4499d44e931d2ee7c70e7610bbfca3fefd00fea (patch) | |
tree | 470e44d4ca22de6404aeb4330784dd568751908b /src/server.rs | |
parent | e34da6ca957ec813a361cbcaf0dc89e953af6db1 (diff) | |
download | online-offsite-backup-e4499d44e931d2ee7c70e7610bbfca3fefd00fea.tar online-offsite-backup-e4499d44e931d2ee7c70e7610bbfca3fefd00fea.tar.bz2 online-offsite-backup-e4499d44e931d2ee7c70e7610bbfca3fefd00fea.tar.zst |
implement upload and download
Diffstat (limited to 'src/server.rs')
-rw-r--r-- | src/server.rs | 8 |
1 files changed, 5 insertions, 3 deletions
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 |