summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Platte <jplatte+git@posteo.de>2024-09-30 21:23:19 +0000
committerGitHub <noreply@github.com>2024-09-30 23:23:19 +0200
commit5db62e8452f3c34bab83f3fdfacffa1946b91af1 (patch)
treeb6d3013bcc3559c58500375b9a9c4069a0ba71a7
parent20b94453470243200768c84dadf44a4b8d67becf (diff)
Remove examples/listen-multiple-addrs (#2951)HEADmain
-rw-r--r--examples/listen-multiple-addrs/Cargo.toml12
-rw-r--r--examples/listen-multiple-addrs/src/main.rs57
2 files changed, 0 insertions, 69 deletions
diff --git a/examples/listen-multiple-addrs/Cargo.toml b/examples/listen-multiple-addrs/Cargo.toml
deleted file mode 100644
index ed146ca5..00000000
--- a/examples/listen-multiple-addrs/Cargo.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-[package]
-name = "example-listen-multiple-addrs"
-version = "0.1.0"
-edition = "2021"
-publish = false
-
-[dependencies]
-axum = { path = "../../axum" }
-hyper = { version = "1.0.0", features = ["full"] }
-hyper-util = { version = "0.1", features = ["tokio", "server-auto", "http1"] }
-tokio = { version = "1", features = ["full"] }
-tower = { version = "0.5.1", features = ["util"] }
diff --git a/examples/listen-multiple-addrs/src/main.rs b/examples/listen-multiple-addrs/src/main.rs
deleted file mode 100644
index dafd4d64..00000000
--- a/examples/listen-multiple-addrs/src/main.rs
+++ /dev/null
@@ -1,57 +0,0 @@
-//! Showcases how listening on multiple addrs is possible.
-//!
-//! This may be useful in cases where the platform does not
-//! listen on both IPv4 and IPv6 when the IPv6 catch-all listener is used (`::`),
-//! [like older versions of Windows.](https://docs.microsoft.com/en-us/windows/win32/winsock/dual-stack-sockets)
-
-use axum::{extract::Request, routing::get, Router};
-use hyper::body::Incoming;
-use hyper_util::{
- rt::{TokioExecutor, TokioIo},
- server,
-};
-use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
-use tokio::net::TcpListener;
-use tower::Service;
-
-#[tokio::main]
-async fn main() {
- let app: Router = Router::new().route("/", get(|| async { "Hello, World!" }));
-
- let localhost_v4 = SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 8080);
- let listener_v4 = TcpListener::bind(&localhost_v4).await.unwrap();
-
- let localhost_v6 = SocketAddr::new(Ipv6Addr::LOCALHOST.into(), 8080);
- let listener_v6 = TcpListener::bind(&localhost_v6).await.unwrap();
-
- // See https://github.com/tokio-rs/axum/blob/main/examples/serve-with-hyper/src/main.rs for
- // more details about this setup
- loop {
- // Accept connections from `listener_v4` and `listener_v6` at the same time
- let (socket, _remote_addr) = tokio::select! {
- result = listener_v4.accept() => {
- result.unwrap()
- }
- result = listener_v6.accept() => {
- result.unwrap()
- }
- };
-
- let tower_service = app.clone();
-
- tokio::spawn(async move {
- let socket = TokioIo::new(socket);
-
- let hyper_service = hyper::service::service_fn(move |request: Request<Incoming>| {
- tower_service.clone().call(request)
- });
-
- if let Err(err) = server::conn::auto::Builder::new(TokioExecutor::new())
- .serve_connection_with_upgrades(socket, hyper_service)
- .await
- {
- eprintln!("failed to serve connection: {err:#}");
- }
- });
- }
-}