diff options
| author | Conrad Ludgate <conradludgate@gmail.com> | 2024-01-28 13:33:45 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-28 13:33:45 +0000 |
| commit | bdcb143996567c9540fb411bc53448355665747b (patch) | |
| tree | c8152a7cfdf0f2d45c5f7e15a17b577206698340 /atuin-server/src/lib.rs | |
| parent | chore: use resolver 2, update editions + cargo (#1635) (diff) | |
| download | atuin-bdcb143996567c9540fb411bc53448355665747b.zip | |
chore(deps): update axum (#1637)
Diffstat (limited to '')
| -rw-r--r-- | atuin-server/src/lib.rs | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/atuin-server/src/lib.rs b/atuin-server/src/lib.rs index b505a8ec..a0c104dc 100644 --- a/atuin-server/src/lib.rs +++ b/atuin-server/src/lib.rs @@ -1,12 +1,11 @@ #![forbid(unsafe_code)] +use std::future::Future; use std::net::SocketAddr; use std::sync::Arc; -use std::{future::Future, net::TcpListener}; use atuin_server_database::Database; -use axum::Router; -use axum::Server; +use axum::{serve, Router}; use axum_server::Handle; use eyre::{Context, Result}; @@ -21,6 +20,7 @@ pub use settings::Settings; pub mod settings; +use tokio::net::TcpListener; use tokio::signal; #[cfg(target_family = "unix")] @@ -55,7 +55,9 @@ pub async fn launch<Db: Database>( } else { launch_with_tcp_listener::<Db>( settings, - TcpListener::bind(addr).context("could not connect to socket")?, + TcpListener::bind(addr) + .await + .context("could not connect to socket")?, shutdown_signal(), ) .await @@ -65,13 +67,11 @@ pub async fn launch<Db: Database>( pub async fn launch_with_tcp_listener<Db: Database>( settings: Settings<Db::Settings>, listener: TcpListener, - shutdown: impl Future<Output = ()>, + shutdown: impl Future<Output = ()> + Send + 'static, ) -> Result<()> { let r = make_router::<Db>(settings).await?; - Server::from_tcp(listener) - .context("could not launch server")? - .serve(r.into_make_service()) + serve(listener, r.into_make_service()) .with_graceful_shutdown(shutdown) .await?; @@ -115,7 +115,9 @@ async fn launch_with_tls<Db: Database>( // The separate listener means it's much easier to ensure metrics are not accidentally exposed to // the public. pub async fn launch_metrics_server(host: String, port: u16) -> Result<()> { - let listener = TcpListener::bind((host, port)).context("failed to bind metrics tcp")?; + let listener = TcpListener::bind((host, port)) + .await + .context("failed to bind metrics tcp")?; let recorder_handle = metrics::setup_metrics_recorder(); @@ -124,9 +126,7 @@ pub async fn launch_metrics_server(host: String, port: u16) -> Result<()> { axum::routing::get(move || std::future::ready(recorder_handle.render())), ); - Server::from_tcp(listener) - .context("could not launch server")? - .serve(router.into_make_service()) + serve(listener, router.into_make_service()) .with_graceful_shutdown(shutdown_signal()) .await?; |
