diff --git a/src/server.rs b/src/server.rs index 7ad79d9..3026b4a 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,4 +1,4 @@ -use crate::{Request, Result}; +use crate::{color, Request, Result}; use gophermap::{GopherMenu, ItemType}; use std::{ fs, @@ -28,14 +28,26 @@ pub fn start(host: &str, port: u16, root: &str) -> Result<()> { let full_root_path = fs::canonicalize(&root)?.to_string_lossy().to_string(); let pool = ThreadPool::new(MAX_WORKERS); - println!("-> Listening on {} at {}", addr, full_root_path); + println!( + "{}- Listening on {} at {}{}", + color::Yellow, + addr, + full_root_path, + color::Reset + ); for stream in listener.incoming() { let stream = stream?; - println!("-> Connection from: {}", stream.peer_addr()?); + println!( + "{}┌ Connection{} from {}{}", + color::Green, + color::Reset, + color::Magenta, + stream.peer_addr()? + ); let req = Request::from(host, port, root)?; pool.execute(move || { if let Err(e) = accept(stream, req) { - eprintln!("-! {}", e); + eprintln!("{}└ {}{}", color::Red, e, color::Reset); } }); } @@ -47,7 +59,13 @@ fn accept(stream: TcpStream, mut req: Request) -> Result<()> { let reader = BufReader::new(&stream); let mut lines = reader.lines(); if let Some(Ok(line)) = lines.next() { - println!("-> Client sent: {:?}", line); + println!( + "{}│{} Client sent: {:?}{}", + color::Green, + color::Reset, + line, + color::Reset + ); req.parse_request(&line); write_response(&stream, req)?; }