handle errors

This commit is contained in:
yggverse 2025-02-23 06:29:57 +02:00
parent eff0b836f8
commit f1f419481f

View file

@ -17,7 +17,6 @@ use std::{
fn main() -> Result<()> { fn main() -> Result<()> {
use clap::Parser; use clap::Parser;
let argument = Arc::new(Argument::parse()); let argument = Arc::new(Argument::parse());
// https://geminiprotocol.net/docs/protocol-specification.gmi#the-use-of-tls // https://geminiprotocol.net/docs/protocol-specification.gmi#the-use-of-tls
@ -135,20 +134,26 @@ fn gemini(
) { ) {
Ok(()) => loop { Ok(()) => loop {
let mut data = vec![0; argument.chunk]; let mut data = vec![0; argument.chunk];
let l = item.file.read_at(&mut data, read as u64).unwrap(); match item.file.read_at(&mut data, read as u64) {
stream.write_all(&data[..l]).unwrap(); Ok(l) => match stream.write_all(&data[..l]) {
read += l;
// println!("[{}] [info] [{peer}] Chunk sent: {l} ({read} total)", now());
// EOF
if l == 0 {
println!("[{}] [info] [{peer}] Response: {read} bytes", now());
match close(stream) {
Ok(()) => { Ok(()) => {
println!("[{}] [info] [{peer}] Connection closed by server.", now()) // EOF
if l == 0 {
println!("[{}] [info] [{peer}] Response: {read} bytes", now());
match close(stream) {
Ok(()) => println!(
"[{}] [info] [{peer}] Connection closed by server.",
now()
),
Err(e) => println!("[{}] [warning] [{peer}] {e}", now()),
}
break;
}
read += l;
} }
Err(e) => println!("[{}] [warning] [{peer}] {e}", now()), Err(e) => println!("[{}] [error] [{peer}] {e}", now()),
} },
break; Err(e) => println!("[{}] [error] [{peer}] {e}", now()),
} }
}, },
Err(e) => println!("[{}] [error] [{peer}] {e}", now()), Err(e) => println!("[{}] [error] [{peer}] {e}", now()),