diff --git a/src/main.rs b/src/main.rs index 9059048..c71e4ab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -75,7 +75,7 @@ fn handle( peer: SocketAddr, connection: Result, HandshakeError>, ) { - debug!("New peer connected: `{peer}`"); + debug!("Incoming connection from: `{peer}`"); match connection { Ok(mut stream) => { // server should work with large files without memory overload, @@ -153,15 +153,10 @@ fn response( stream: &mut TlsStream, ) { use route::Route; - debug!("Incoming request from `{peer}` to `{}`", request.url.path()); - - let route = Route::from_url(&request.url); - - // try index page, including optional page value - match route { - Route::List { page } => send( - &match list(config, public, request.url.query(), page) { + send( + &match Route::from_url(&request.url) { + Route::List { page } => match list(config, public, request.url.query(), page) { Ok(data) => response::success::Default { data: data.as_bytes(), meta: response::success::default::Meta { @@ -177,31 +172,12 @@ fn response( .into_bytes() } }, - stream, - |result| { - if let Err(e) = result { - error!("Internal server error on handle peer `{peer}` request: `{e}`") - } - }, - ), - Route::Search => send( - &response::Input::Default(response::input::Default { + Route::Search => response::Input::Default(response::input::Default { message: Some("Keyword, file, hash...".into()), }) .into_bytes(), - stream, - |result| { - if let Err(e) = result { - error!( - "Internal server error on handle peer `{peer}` request `{}`: `{e}`", - request.url.as_str() - ) - } - }, - ), - Route::Info(id) => match public.torrent(id) { - Some(torrent) => send( - &match info(config, torrent) { + Route::Info(id) => match public.torrent(id) { + Some(torrent) => match info(config, torrent) { Ok(data) => response::success::Default { data: data.as_bytes(), meta: response::success::default::Meta { @@ -217,37 +193,35 @@ fn response( .into_bytes() } }, - stream, - |result| { - if let Err(e) = result { - error!("Internal server error on handle peer `{peer}` request: `{e}`") - } - }, - ), - None => todo!(), - }, - Route::NotFound => { - warn!( - "Requested resource `{}` not found by peer `{peer}`", - request.url.as_str() - ); - send( - &response::Failure::Permanent(response::failure::Permanent::NotFound( + None => { + warn!( + "Requested resource `{}` not found by peer `{peer}`", + request.url.as_str() + ); + response::Failure::Permanent(response::failure::Permanent::NotFound( + response::failure::permanent::NotFound { message: None }, + )) + .into_bytes() + } + }, + Route::NotFound => { + warn!( + "Requested resource `{}` not found by peer `{peer}`", + request.url.as_str() + ); + response::Failure::Permanent(response::failure::Permanent::NotFound( response::failure::permanent::NotFound { message: None }, )) - .into_bytes(), - stream, - |result| { - if let Err(e) = result { - error!( - "Internal server error on handle peer `{peer}` request `{}`: `{e}`", - request.url.as_str() - ) - } - }, - ) - } - } + .into_bytes() + } + }, + stream, + |result| { + if let Err(e) = result { + error!("Internal server error on handle peer `{peer}` request: `{e}`") + } + }, + ) } fn send(data: &[u8], stream: &mut TlsStream, callback: impl FnOnce(Result<()>)) {