Skip to content

Commit

Permalink
fix: cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
0xAlcibiades committed Sep 10, 2024
1 parent 215d7be commit 6a20e2e
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 51 deletions.
17 changes: 6 additions & 11 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,19 @@ repository = "https://github.com/valorem-labs-inc/hyper-server"
version = "1.0.0"

[dependencies]
async-stream = "0.3.5"
bytes = "1.7.1"
http = "1.1.0"
http-body = "1.0.1"
http-body-util = "0.1.2"
hyper = "1.4.1"
hyper-util = { version = "0.1.8", features = ["server", "tokio", "server-auto", "server-graceful", "service"] }
rustls = "0.23.13"
rustls-pemfile = "2.1.3"
pin-project = "1.1.5"
tokio = { version = "1.40.0", features = ["net", "macros"] }
tokio-rustls = "0.26.0"
tokio-stream = { version = "0.1.16", features = ["net"] }
tower = { version = "0.5.1", features = ["util"] }
tracing = "0.1.40"
http-body = "1.0.1"
tokio-stream = { version = "0.1.16", features = ["net"] }
bytes = "1.7.1"
pin-project = "1.1.5"
async-stream = "0.3.5"
futures = "0.3.30"

[dev-dependencies]
hyper = { version = "1.4.1", features = ["client"] }
tokio = { version = "1.0", features = ["rt", "net", "test-util"] }
tokio-test = "0.4.4"
hyper = {version = "1.4.1", features = ["client"] }
68 changes: 30 additions & 38 deletions src/http.rs
Original file line number Diff line number Diff line change
@@ -1,35 +1,21 @@
use tokio_stream::StreamExt as _;
use tracing::{debug, trace};
use hyper_util::{
rt::{TokioExecutor, TokioIo, TokioTimer},
server::conn::auto::{Builder as HttpConnectionBuilder, HttpServerConnExec},
service::TowerToHyperService,
};
use std::future::pending;
use std::{future::Future, pin::pin, sync::Arc, time::Duration};

use bytes::Bytes;
use http::{Request, Response};
use http_body_util::BodyExt;
use hyper::{body::Incoming, service::Service as HyperService};
use pin_project::pin_project;
use std::future::pending;
use std::{
convert::Infallible,
fmt,
future::{self, poll_fn, Future},
marker::PhantomData,
net::SocketAddr,
pin::{pin, Pin},
sync::Arc,
task::{ready, Context, Poll},
time::Duration,
};
use futures::Sink;
use http_body::Body;
use hyper::body::Incoming;
use hyper::service::Service;
use hyper_util::{
rt::{TokioExecutor, TokioIo},
server::conn::auto::{Builder as HttpConnectionBuilder, HttpServerConnExec},
};
use tokio::io::{AsyncRead, AsyncWrite};
use tokio::net::TcpListener;
use tokio::time::sleep;
use tokio_stream::Stream;
use tokio_stream::wrappers::TcpListenerStream;
use tokio_stream::StreamExt as _;
use tracing::{debug, trace};

use crate::fuse::Fuse;

/// Sleeps for a specified duration or waits indefinitely.
Expand Down Expand Up @@ -173,10 +159,7 @@ where
let incoming = crate::tcp::serve_tcp_incoming(incoming);

// Set up the HTTP connection builder
let server = {
let mut builder = HttpConnectionBuilder::new(TokioExecutor::new());
builder
};
let server = { HttpConnectionBuilder::new(TokioExecutor::new()) };

// Create a channel for signaling graceful shutdown
let (signal_tx, signal_rx) = tokio::sync::watch::channel(());
Expand Down Expand Up @@ -243,21 +226,25 @@ where

#[cfg(test)]
mod tests {
use super::*;
use std::net::SocketAddr;
use std::time::Duration;
use tokio::net::{TcpStream, TcpListener};
use tokio::sync::oneshot;

use bytes::Bytes;
use http_body_util::{BodyExt, Empty, Full};
use hyper::{body::Incoming, Request, Response, StatusCode};
use hyper_util::service::TowerToHyperService;
use tokio::net::{TcpListener, TcpStream};
use tokio::sync::oneshot;
use tokio_stream::wrappers::TcpListenerStream;
use tower::ServiceExt;

use super::*;

// Echo service
async fn echo(req: Request<Incoming>) -> Result<Response<Full<Bytes>>, hyper::Error> {
match (req.method(), req.uri().path()) {
(&hyper::Method::GET, "/") => Ok(Response::new(Full::new(Bytes::from("Hello, World!")))),
(&hyper::Method::GET, "/") => {
Ok(Response::new(Full::new(Bytes::from("Hello, World!"))))
}
(&hyper::Method::POST, "/echo") => {
let body = req.collect().await?.to_bytes();
Ok(Response::new(Full::new(body)))
Expand All @@ -277,7 +264,10 @@ mod tests {
(incoming, server_addr)
}

async fn send_request(addr: SocketAddr, req: Request<Empty<Bytes>>) -> hyper::Result<Response<Incoming>> {
async fn send_request(
addr: SocketAddr,
req: Request<Empty<Bytes>>,
) -> hyper::Result<Response<Incoming>> {
let stream = TcpStream::connect(addr).await.unwrap();
let io = TokioIo::new(stream);

Expand Down Expand Up @@ -338,7 +328,8 @@ mod tests {

// Shutdown the server
shutdown_tx.send(()).unwrap();
tokio::time::timeout(Duration::from_secs(5), server).await
tokio::time::timeout(Duration::from_secs(5), server)
.await
.expect("Server didn't shut down within the timeout period")
.unwrap()
.unwrap();
Expand Down Expand Up @@ -381,9 +372,10 @@ mod tests {

// Shutdown the server
shutdown_tx.send(()).unwrap();
tokio::time::timeout(Duration::from_secs(5), server).await
tokio::time::timeout(Duration::from_secs(5), server)
.await
.expect("Server didn't shut down within the timeout period")
.unwrap()
.unwrap();
}
}
}
2 changes: 0 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,3 @@ mod tcp;
mod tls;

pub(crate) type Error = Box<dyn std::error::Error + Send + Sync>;


0 comments on commit 6a20e2e

Please sign in to comment.