http: add RateLimitedStream::inner, drop peer_addr

instead of implementing 'peer_addr' specifically for
RateLimitedStream<tokio::net::TcpStream>, just provide
.inner() and .inner_mut() so the user can reach the inner
stream directly.

This way we can drop the tokio/net feature as well

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
Wolfgang Bumiller 2023-01-25 11:56:05 +01:00
parent b2c26f74a6
commit d7ed04f8e5
2 changed files with 8 additions and 7 deletions

View File

@ -36,7 +36,6 @@ rate-limited-stream = [
"dep:tokio",
"hyper?/client",
"rate-limiter",
"tokio?/net",
"tokio?/time",
]
client = [

View File

@ -29,12 +29,6 @@ pub struct RateLimitedStream<S> {
stream: S,
}
impl RateLimitedStream<tokio::net::TcpStream> {
pub fn peer_addr(&self) -> std::io::Result<std::net::SocketAddr> {
self.stream.peer_addr()
}
}
impl<S> RateLimitedStream<S> {
/// Creates a new instance with reads and writes limited to the same `rate`.
pub fn new(stream: S, rate: u64, bucket_size: u64) -> Self {
@ -97,6 +91,14 @@ impl<S> RateLimitedStream<S> {
}
}
}
pub fn inner(&self) -> &S {
&self.stream
}
pub fn inner_mut(&mut self) -> &mut S {
&mut self.stream
}
}
fn register_traffic(limiter: &(dyn ShareableRateLimit), count: usize) -> Option<Pin<Box<Sleep>>> {