From 1b1b4e9ff17316610760817d3f34d5f2f5a5bccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=97=8D+85CD?= <50108258+kwaa@users.noreply.github.com> Date: Thu, 25 Jul 2024 17:34:58 +0800 Subject: [PATCH] fix(examples): use axum::serve --- examples/live_federation/main.rs | 20 +++++++++----------- examples/local_federation/axum/http.rs | 20 ++++++++++---------- examples/local_federation/instance.rs | 4 ++-- examples/local_federation/main.rs | 4 ++-- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/examples/live_federation/main.rs b/examples/live_federation/main.rs index 3fa0b18..0da5ce5 100644 --- a/examples/live_federation/main.rs +++ b/examples/live_federation/main.rs @@ -12,10 +12,8 @@ use axum::{ Router, }; use error::Error; -use std::{ - net::ToSocketAddrs, - sync::{Arc, Mutex}, -}; +use std::sync::{Arc, Mutex}; +use tokio::net::TcpListener; use tracing::log::{info, LevelFilter}; mod activities; @@ -60,13 +58,13 @@ async fn main() -> Result<(), Error> { .route("/.well-known/webfinger", get(webfinger)) .layer(FederationMiddleware::new(config)); - let addr = BIND_ADDRESS - .to_socket_addrs()? - .next() - .expect("Failed to lookup domain name"); - axum::Server::bind(&addr) - .serve(app.into_make_service()) - .await?; + axum::serve( + TcpListener::bind(BIND_ADDRESS) + .await + .expect("Failed to lookup domain name"), + app.into_make_service(), + ) + .await?; Ok(()) } diff --git a/examples/local_federation/axum/http.rs b/examples/local_federation/axum/http.rs index f17ea4a..b675acf 100644 --- a/examples/local_federation/axum/http.rs +++ b/examples/local_federation/axum/http.rs @@ -17,15 +17,14 @@ use axum::{ extract::{Path, Query}, response::IntoResponse, routing::{get, post}, - Json, - Router, + Json, Router, }; use axum_macros::debug_handler; use serde::Deserialize; -use std::net::ToSocketAddrs; +use tokio::net::TcpListener; use tracing::info; -pub fn listen(config: &FederationConfig) -> Result<(), Error> { +pub async fn listen(config: &FederationConfig) -> Result<(), Error> { let hostname = config.domain(); info!("Listening with axum on {hostname}"); let config = config.clone(); @@ -35,13 +34,14 @@ pub fn listen(config: &FederationConfig) -> Result<(), Error> { .route("/.well-known/webfinger", get(webfinger)) .layer(FederationMiddleware::new(config)); - let addr = hostname - .to_socket_addrs()? - .next() - .expect("Failed to lookup domain name"); - let server = axum::Server::bind(&addr).serve(app.into_make_service()); + axum::serve( + TcpListener::bind(hostname) + .await + .expect("Failed to lookup domain name"), + app.into_make_service(), + ) + .await?; - tokio::spawn(server); Ok(()) } diff --git a/examples/local_federation/instance.rs b/examples/local_federation/instance.rs index 2413d21..26a3508 100644 --- a/examples/local_federation/instance.rs +++ b/examples/local_federation/instance.rs @@ -76,12 +76,12 @@ impl FromStr for Webserver { } } -pub fn listen( +pub async fn listen( config: &FederationConfig, webserver: &Webserver, ) -> Result<(), Error> { match webserver { - Webserver::Axum => crate::axum::http::listen(config)?, + Webserver::Axum => crate::axum::http::listen(config).await?, // Webserver::ActixWeb => crate::actix_web::http::listen(config)?, } Ok(()) diff --git a/examples/local_federation/main.rs b/examples/local_federation/main.rs index 8995cb9..a683b4c 100644 --- a/examples/local_federation/main.rs +++ b/examples/local_federation/main.rs @@ -34,8 +34,8 @@ async fn main() -> Result<(), Error> { let alpha = new_instance("localhost:8001", "alpha".to_string()).await?; let beta = new_instance("localhost:8002", "beta".to_string()).await?; - listen(&alpha, &webserver)?; - listen(&beta, &webserver)?; + listen(&alpha, &webserver).await?; + listen(&beta, &webserver).await?; info!("Local instances started"); info!("Alpha user follows beta user via webfinger");