summaryrefslogtreecommitdiff
path: root/examples/low-level-rustls
diff options
context:
space:
mode:
authorDavid Pedersen <david.pdrsn@gmail.com>2023-11-23 12:03:03 +0100
committerGitHub <noreply@github.com>2023-11-23 11:03:03 +0000
commit43b14a5f02d6be984416e094aaca79b84ac48792 (patch)
tree3e9b993452af0b54172664f4171732a31d9a1ea9 /examples/low-level-rustls
parent2f4720907ab06256b9955bb3ac776dffb3ad2c45 (diff)
Update to latest versions of hyper and http-body (#1882)
Co-authored-by: Michael Scofield <mscofield0@tutanota.com> Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Diffstat (limited to 'examples/low-level-rustls')
-rw-r--r--examples/low-level-rustls/Cargo.toml2
-rw-r--r--examples/low-level-rustls/src/main.rs195
2 files changed, 101 insertions, 96 deletions
diff --git a/examples/low-level-rustls/Cargo.toml b/examples/low-level-rustls/Cargo.toml
index 91069128..08e28230 100644
--- a/examples/low-level-rustls/Cargo.toml
+++ b/examples/low-level-rustls/Cargo.toml
@@ -7,7 +7,7 @@ publish = false
[dependencies]
axum = { path = "../../axum" }
futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
-hyper = { version = "0.14", features = ["full"] }
+hyper = { version = "1.0.0", features = ["full"] }
rustls-pemfile = "0.3"
tokio = { version = "1", features = ["full"] }
tokio-rustls = "0.23"
diff --git a/examples/low-level-rustls/src/main.rs b/examples/low-level-rustls/src/main.rs
index 5d2d6284..01514b48 100644
--- a/examples/low-level-rustls/src/main.rs
+++ b/examples/low-level-rustls/src/main.rs
@@ -4,100 +4,105 @@
//! cargo run -p example-low-level-rustls
//! ```
-use axum::{extract::Request, routing::get, Router};
-use futures_util::future::poll_fn;
-use hyper::server::{
- accept::Accept,
- conn::{AddrIncoming, Http},
-};
-use rustls_pemfile::{certs, pkcs8_private_keys};
-use std::{
- fs::File,
- io::BufReader,
- path::{Path, PathBuf},
- pin::Pin,
- sync::Arc,
-};
-use tokio::net::TcpListener;
-use tokio_rustls::{
- rustls::{Certificate, PrivateKey, ServerConfig},
- TlsAcceptor,
-};
-use tower::make::MakeService;
-use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
-
-#[tokio::main]
-async fn main() {
- tracing_subscriber::registry()
- .with(
- tracing_subscriber::EnvFilter::try_from_default_env()
- .unwrap_or_else(|_| "example_tls_rustls=debug".into()),
- )
- .with(tracing_subscriber::fmt::layer())
- .init();
-
- let rustls_config = rustls_server_config(
- PathBuf::from(env!("CARGO_MANIFEST_DIR"))
- .join("self_signed_certs")
- .join("key.pem"),
- PathBuf::from(env!("CARGO_MANIFEST_DIR"))
- .join("self_signed_certs")
- .join("cert.pem"),
- );
-
- let acceptor = TlsAcceptor::from(rustls_config);
-
- let listener = TcpListener::bind("127.0.0.1:3000").await.unwrap();
- let mut listener = AddrIncoming::from_listener(listener).unwrap();
-
- let protocol = Arc::new(Http::new());
-
- let mut app = Router::<()>::new()
- .route("/", get(handler))
- .into_make_service();
-
- loop {
- let stream = poll_fn(|cx| Pin::new(&mut listener).poll_accept(cx))
- .await
- .unwrap()
- .unwrap();
-
- let acceptor = acceptor.clone();
-
- let protocol = protocol.clone();
-
- let svc = MakeService::<_, Request<hyper::Body>>::make_service(&mut app, &stream);
-
- tokio::spawn(async move {
- if let Ok(stream) = acceptor.accept(stream).await {
- let _ = protocol.serve_connection(stream, svc.await.unwrap()).await;
- }
- });
- }
+// TODO
+fn main() {
+ eprint!("this example has not yet been updated to hyper 1.0");
}
-async fn handler() -> &'static str {
- "Hello, World!"
-}
-
-fn rustls_server_config(key: impl AsRef<Path>, cert: impl AsRef<Path>) -> Arc<ServerConfig> {
- let mut key_reader = BufReader::new(File::open(key).unwrap());
- let mut cert_reader = BufReader::new(File::open(cert).unwrap());
-
- let key = PrivateKey(pkcs8_private_keys(&mut key_reader).unwrap().remove(0));
- let certs = certs(&mut cert_reader)
- .unwrap()
- .into_iter()
- .map(Certificate)
- .collect();
-
- let mut config = ServerConfig::builder()
- .with_safe_defaults()
- .with_no_client_auth()
- .with_single_cert(certs, key)
- .expect("bad certificate/key");
-
- config.alpn_protocols = vec![b"h2".to_vec(), b"http/1.1".to_vec()];
-
- Arc::new(config)
-}
+// use axum::{extract::Request, routing::get, Router};
+// use futures_util::future::poll_fn;
+// use hyper::server::{
+// accept::Accept,
+// conn::{AddrIncoming, Http},
+// };
+// use rustls_pemfile::{certs, pkcs8_private_keys};
+// use std::{
+// fs::File,
+// io::BufReader,
+// path::{Path, PathBuf},
+// pin::Pin,
+// sync::Arc,
+// };
+// use tokio::net::TcpListener;
+// use tokio_rustls::{
+// rustls::{Certificate, PrivateKey, ServerConfig},
+// TlsAcceptor,
+// };
+// use tower::make::MakeService;
+// use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
+
+// #[tokio::main]
+// async fn main() {
+// tracing_subscriber::registry()
+// .with(
+// tracing_subscriber::EnvFilter::try_from_default_env()
+// .unwrap_or_else(|_| "example_tls_rustls=debug".into()),
+// )
+// .with(tracing_subscriber::fmt::layer())
+// .init();
+
+// let rustls_config = rustls_server_config(
+// PathBuf::from(env!("CARGO_MANIFEST_DIR"))
+// .join("self_signed_certs")
+// .join("key.pem"),
+// PathBuf::from(env!("CARGO_MANIFEST_DIR"))
+// .join("self_signed_certs")
+// .join("cert.pem"),
+// );
+
+// let acceptor = TlsAcceptor::from(rustls_config);
+
+// let listener = TcpListener::bind("127.0.0.1:3000").await.unwrap();
+// let mut listener = AddrIncoming::from_listener(listener).unwrap();
+
+// let protocol = Arc::new(Http::new());
+
+// let mut app = Router::<()>::new()
+// .route("/", get(handler))
+// .into_make_service();
+
+// loop {
+// let stream = poll_fn(|cx| Pin::new(&mut listener).poll_accept(cx))
+// .await
+// .unwrap()
+// .unwrap();
+
+// let acceptor = acceptor.clone();
+
+// let protocol = protocol.clone();
+
+// let svc = MakeService::<_, Request<hyper::Body>>::make_service(&mut app, &stream);
+
+// tokio::spawn(async move {
+// if let Ok(stream) = acceptor.accept(stream).await {
+// let _ = protocol.serve_connection(stream, svc.await.unwrap()).await;
+// }
+// });
+// }
+// }
+
+// async fn handler() -> &'static str {
+// "Hello, World!"
+// }
+
+// fn rustls_server_config(key: impl AsRef<Path>, cert: impl AsRef<Path>) -> Arc<ServerConfig> {
+// let mut key_reader = BufReader::new(File::open(key).unwrap());
+// let mut cert_reader = BufReader::new(File::open(cert).unwrap());
+
+// let key = PrivateKey(pkcs8_private_keys(&mut key_reader).unwrap().remove(0));
+// let certs = certs(&mut cert_reader)
+// .unwrap()
+// .into_iter()
+// .map(Certificate)
+// .collect();
+
+// let mut config = ServerConfig::builder()
+// .with_safe_defaults()
+// .with_no_client_auth()
+// .with_single_cert(certs, key)
+// .expect("bad certificate/key");
+
+// config.alpn_protocols = vec![b"h2".to_vec(), b"http/1.1".to_vec()];
+
+// Arc::new(config)
+// }