aboutsummaryrefslogtreecommitdiff
path: root/src/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-06-14 04:48:14 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-14 04:48:14 +0200
commite4499d44e931d2ee7c70e7610bbfca3fefd00fea (patch)
tree470e44d4ca22de6404aeb4330784dd568751908b /src/server.rs
parente34da6ca957ec813a361cbcaf0dc89e953af6db1 (diff)
downloadonline-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.rs8
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