aboutsummaryrefslogtreecommitdiffstats
path: root/atuin-server/src/lib.rs
diff options
context:
space:
mode:
authorConrad Ludgate <conradludgate@gmail.com>2024-01-28 13:33:45 +0000
committerGitHub <noreply@github.com>2024-01-28 13:33:45 +0000
commitbdcb143996567c9540fb411bc53448355665747b (patch)
treec8152a7cfdf0f2d45c5f7e15a17b577206698340 /atuin-server/src/lib.rs
parentchore: use resolver 2, update editions + cargo (#1635) (diff)
downloadatuin-bdcb143996567c9540fb411bc53448355665747b.zip
chore(deps): update axum (#1637)
Diffstat (limited to '')
-rw-r--r--atuin-server/src/lib.rs24
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?;