Skip to content

Commit da2e727

Browse files
authored
Merge pull request #31 from mbrubeck/futures
finer-grained dependencies on futures crates
2 parents 2a0afaa + 5df4a09 commit da2e727

File tree

9 files changed

+39
-35
lines changed

9 files changed

+39
-35
lines changed

Cargo.toml

+4-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ travis-ci = { repository = "async-std/async-tls" }
1616
appveyor = { repository = "async-std/async-tls" }
1717

1818
[dependencies]
19-
futures = "0.3.4"
19+
futures-io = "0.3.5"
20+
futures-core = "0.3.5"
2021
rustls = "0.18.0"
2122
webpki = { version = "0.21.2", optional = true }
2223
webpki-roots = { version = "0.20.0", optional = true }
@@ -29,7 +30,8 @@ server = []
2930

3031
[dev-dependencies]
3132
lazy_static = "1"
32-
futures-util = "0.3"
33+
futures-executor = "0.3.5"
34+
futures-util = { version = "0.3.5", features = ["io"] }
3335
async-std = { version = "1.0", features = ["unstable"] }
3436

3537
[[test]]

src/acceptor.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::common::tls_state::TlsState;
22
use crate::server;
33

4-
use futures::io::{AsyncRead, AsyncWrite};
4+
use futures_io::{AsyncRead, AsyncWrite};
55
use rustls::{ServerConfig, ServerSession};
66
use std::future::Future;
77
use std::io;

src/client.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
33
use crate::common::tls_state::TlsState;
44
use crate::rusttls::stream::Stream;
5-
use futures::io::{AsyncRead, AsyncWrite};
5+
use futures_core::ready;
6+
use futures_io::{AsyncRead, AsyncWrite};
67
use rustls::ClientSession;
78
use std::future::Future;
89
use std::pin::Pin;
@@ -58,11 +59,11 @@ where
5859
let mut stream = Stream::new(io, session).set_eof(eof);
5960

6061
if stream.session.is_handshaking() {
61-
futures::ready!(stream.complete_io(cx))?;
62+
ready!(stream.complete_io(cx))?;
6263
}
6364

6465
if stream.session.wants_write() {
65-
futures::ready!(stream.complete_io(cx))?;
66+
ready!(stream.complete_io(cx))?;
6667
}
6768
}
6869

@@ -95,14 +96,13 @@ where
9596

9697
// complete handshake
9798
if stream.session.is_handshaking() {
98-
futures::ready!(stream.complete_io(cx))?;
99+
ready!(stream.complete_io(cx))?;
99100
}
100101

101102
// write early data (fallback)
102103
if !stream.session.is_early_data_accepted() {
103104
while *pos < data.len() {
104-
let len =
105-
futures::ready!(stream.as_mut_pin().poll_write(cx, &data[*pos..]))?;
105+
let len = ready!(stream.as_mut_pin().poll_write(cx, &data[*pos..]))?;
106106
*pos += len;
107107
}
108108
}
@@ -176,14 +176,13 @@ where
176176

177177
// complete handshake
178178
if stream.session.is_handshaking() {
179-
futures::ready!(stream.complete_io(cx))?;
179+
ready!(stream.complete_io(cx))?;
180180
}
181181

182182
// write early data (fallback)
183183
if !stream.session.is_early_data_accepted() {
184184
while *pos < data.len() {
185-
let len =
186-
futures::ready!(stream.as_mut_pin().poll_write(cx, &data[*pos..]))?;
185+
let len = ready!(stream.as_mut_pin().poll_write(cx, &data[*pos..]))?;
187186
*pos += len;
188187
}
189188
}

src/connector.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::common::tls_state::TlsState;
22

33
use crate::client;
44

5-
use futures::io::{AsyncRead, AsyncWrite};
5+
use futures_io::{AsyncRead, AsyncWrite};
66
use rustls::{ClientConfig, ClientSession};
77
use std::future::Future;
88
use std::io;

src/rusttls/stream.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
use futures::io::{AsyncRead, AsyncWrite};
1+
use futures_core::ready;
2+
use futures_io::{AsyncRead, AsyncWrite};
23
use rustls::Session;
34
use std::io::{self, Read, Write};
45
use std::marker::Unpin;
@@ -242,7 +243,7 @@ impl<'a, IO: AsyncRead + AsyncWrite + Unpin, S: Session> AsyncWrite for Stream<'
242243

243244
this.session.flush()?;
244245
while this.session.wants_write() {
245-
futures::ready!(this.complete_inner_io(cx, Focus::Writable))?;
246+
ready!(this.complete_inner_io(cx, Focus::Writable))?;
246247
}
247248
Pin::new(&mut this.io).poll_flush(cx)
248249
}
@@ -251,7 +252,7 @@ impl<'a, IO: AsyncRead + AsyncWrite + Unpin, S: Session> AsyncWrite for Stream<'
251252
let this = self.get_mut();
252253

253254
while this.session.wants_write() {
254-
futures::ready!(this.complete_inner_io(cx, Focus::Writable))?;
255+
ready!(this.complete_inner_io(cx, Focus::Writable))?;
255256
}
256257
Pin::new(&mut this.io).poll_close(cx)
257258
}

src/rusttls/test_stream.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use super::Stream;
2-
use futures::executor;
3-
use futures::io::{AsyncRead, AsyncWrite};
4-
use futures::prelude::*;
5-
use futures::task::{noop_waker_ref, Context};
2+
use futures_executor::block_on;
3+
use futures_io::{AsyncRead, AsyncWrite};
4+
use futures_util::io::{AsyncReadExt, AsyncWriteExt};
5+
use futures_util::task::{noop_waker_ref, Context};
6+
use futures_util::{future, ready};
67
use rustls::internal::pemfile::{certs, rsa_private_keys};
78
use rustls::{ClientConfig, ClientSession, NoClientAuth, ServerConfig, ServerSession, Session};
89
use std::io::{self, BufReader, Cursor, Read, Write};
@@ -105,7 +106,7 @@ fn stream_good() -> io::Result<()> {
105106
Ok(()) as io::Result<()>
106107
};
107108

108-
executor::block_on(fut)
109+
block_on(fut)
109110
}
110111

111112
#[test]
@@ -137,7 +138,7 @@ fn stream_bad() -> io::Result<()> {
137138
Ok(()) as io::Result<()>
138139
};
139140

140-
executor::block_on(fut)
141+
block_on(fut)
141142
}
142143

143144
#[test]
@@ -162,7 +163,7 @@ fn stream_handshake() -> io::Result<()> {
162163
Ok(()) as io::Result<()>
163164
};
164165

165-
executor::block_on(fut)
166+
block_on(fut)
166167
}
167168

168169
#[test]
@@ -183,7 +184,7 @@ fn stream_handshake_eof() -> io::Result<()> {
183184
Ok(()) as io::Result<()>
184185
};
185186

186-
executor::block_on(fut)
187+
block_on(fut)
187188
}
188189

189190
#[test]
@@ -202,7 +203,7 @@ fn stream_eof() -> io::Result<()> {
202203
Ok(()) as io::Result<()>
203204
};
204205

205-
executor::block_on(fut)
206+
block_on(fut)
206207
}
207208

208209
fn make_pair() -> (ServerSession, ClientSession) {
@@ -234,11 +235,11 @@ fn do_handshake(
234235
let mut stream = Stream::new(&mut good, client);
235236

236237
if stream.session.is_handshaking() {
237-
futures::ready!(stream.complete_io(cx))?;
238+
ready!(stream.complete_io(cx))?;
238239
}
239240

240241
if stream.session.wants_write() {
241-
futures::ready!(stream.complete_io(cx))?;
242+
ready!(stream.complete_io(cx))?;
242243
}
243244

244245
Poll::Ready(Ok(()))

src/server.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
use crate::common::tls_state::TlsState;
44
use crate::rusttls::stream::Stream;
55

6-
use futures::io::{AsyncRead, AsyncWrite};
6+
use futures_core::ready;
7+
use futures_io::{AsyncRead, AsyncWrite};
78
use rustls::ServerSession;
89
use std::future::Future;
910
use std::pin::Pin;
@@ -42,11 +43,11 @@ where
4243
let mut stream = Stream::new(io, session).set_eof(eof);
4344

4445
if stream.session.is_handshaking() {
45-
futures::ready!(stream.complete_io(cx))?;
46+
ready!(stream.complete_io(cx))?;
4647
}
4748

4849
if stream.session.wants_write() {
49-
futures::ready!(stream.complete_io(cx))?;
50+
ready!(stream.complete_io(cx))?;
5051
}
5152
}
5253

src/test_0rtt.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::{client::TlsStream, TlsConnector};
22
use async_std::net::TcpStream;
33
use async_std::sync::Arc;
4-
use futures::executor;
5-
use futures::prelude::*;
4+
use futures_executor::block_on;
5+
use futures_util::io::{AsyncReadExt, AsyncWriteExt};
66
use rustls::ClientConfig;
77
use std::io;
88
use std::net::ToSocketAddrs;
@@ -36,10 +36,10 @@ fn test_0rtt() {
3636
let config = Arc::new(config);
3737
let domain = "mozilla-modern.badssl.com";
3838

39-
let (_, output) = executor::block_on(get(config.clone(), domain, false)).unwrap();
39+
let (_, output) = block_on(get(config.clone(), domain, false)).unwrap();
4040
assert!(output.contains("<title>mozilla-modern.badssl.com</title>"));
4141

42-
let (io, output) = executor::block_on(get(config.clone(), domain, true)).unwrap();
42+
let (io, output) = block_on(get(config.clone(), domain, true)).unwrap();
4343
assert!(output.contains("<title>mozilla-modern.badssl.com</title>"));
4444

4545
assert_eq!(io.early_data.0, 0);

tests/google.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use async_std::net::TcpStream;
22
use async_std::task;
33
use async_tls::TlsConnector;
4-
use futures::prelude::*;
4+
use futures_util::io::{AsyncReadExt, AsyncWriteExt};
55

66
#[test]
77
fn fetch_google() -> std::io::Result<()> {

0 commit comments

Comments
 (0)