From 560095e0a7ffe1f5bd2067829ab905964299c2f3 Mon Sep 17 00:00:00 2001 From: Jordon Brooks Date: Fri, 23 Jun 2023 01:38:01 +0100 Subject: [PATCH] Added stop_actix_web function to stop the server Removed async from start_actix_web function --- src/api/server.rs | 19 ++++++++++++------- src/main.rs | 27 ++++++++++++++------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/api/server.rs b/src/api/server.rs index 4559b36..251dbfd 100644 --- a/src/api/server.rs +++ b/src/api/server.rs @@ -2,14 +2,18 @@ use actix_web::HttpServer; use crate::api::endpoints::*; -pub async fn start_actix_web(port: u16) -> std::io::Result<()> { +#[allow(dead_code)] +pub async fn stop_actix_web(server: actix_web::dev::Server) -> std::io::Result<()> { + println!("Stopping server."); + server.handle().stop(true).await; + Ok(()) +} - //std::env::set_var("RUST_LOG", "debug"); - //std::env::set_var("RUST_BACKTRACE", "1"); +pub fn start_actix_web(port: u16) -> std::io::Result { println!("Starting webserver on 127.0.0.1:{}", port); - HttpServer::new(move || { + let server = HttpServer::new(move || { let logger = actix_web::middleware::Logger::default(); actix_web::App::new() .wrap(logger) @@ -21,6 +25,7 @@ pub async fn start_actix_web(port: u16) -> std::io::Result<()> { .service(get_dock_info) }) .bind(("127.0.0.1", port))? - .run() - .await -} \ No newline at end of file + .run(); + + Ok(server) +} diff --git a/src/main.rs b/src/main.rs index 1165d89..236d956 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,25 +12,26 @@ static PORT: u16 = 9000; static USE_FALLBACK_DOCK_DETECTION: bool = false; fn main() { - let version_info = Version::get(); - println!("Version: {}", version_info.version); - println!("Build Timestamp: {}", version_info.build_timestamp); - println!("Git Branch: {}", version_info.git_branch); - println!("Git Describe: {}", version_info.git_describe); - println!("Git Commit Timestamp: {}", version_info.git_commit_timestamp); - println!("Debug Build: {}", version_info.debug); - println!("\n\n"); + //#[cfg(debug_assertions)] + { + let version_info = Version::get(); + println!("Version: {}", version_info.version); + println!("Build Timestamp: {}", version_info.build_timestamp); + println!("Git Branch: {}", version_info.git_branch); + println!("Git Describe: {}", version_info.git_describe); + println!("Git Commit Timestamp: {}", version_info.git_commit_timestamp); + println!("Debug Build: {}", version_info.debug); + println!("\n\n"); + } println!("HarmonyLink ©️ Jordon Brooks 2023"); let sys = actix_web::rt::System::new(); sys.block_on(async { - let result = api::server::start_actix_web (PORT).await; - match result { - Ok(_) => println!("Webserver started successfully."), - Err(e) => println!("Error starting actix_web: {}", e), - } + let result = api::server::start_actix_web(PORT).expect("err"); + + let _ = result.await; }); }