Fix client example
This commit is contained in:
parent
34b1bc9c83
commit
02028c54b8
@ -6,7 +6,7 @@ edition = "2018"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures-util = "0.3"
|
futures-util = "0.3"
|
||||||
tokio = { version = "0.2", features = [ "net", "io-util", "rt-threaded" ] }
|
tokio = { version = "0.2", features = [ "net", "io-std", "io-util", "rt-threaded" ] }
|
||||||
structopt = "0.2"
|
structopt = "0.2"
|
||||||
tokio-rustls = { path = "../.." }
|
tokio-rustls = { path = "../.." }
|
||||||
webpki-roots = "0.18"
|
webpki-roots = "0.18"
|
||||||
|
@ -8,9 +8,12 @@ use futures_util::future;
|
|||||||
use structopt::StructOpt;
|
use structopt::StructOpt;
|
||||||
use tokio::runtime;
|
use tokio::runtime;
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
use tokio::io::{ AsyncWriteExt, copy, split };
|
use tokio::io::{
|
||||||
|
AsyncWriteExt,
|
||||||
|
copy, split,
|
||||||
|
stdin as tokio_stdin, stdout as tokio_stdout
|
||||||
|
};
|
||||||
use tokio_rustls::{ TlsConnector, rustls::ClientConfig, webpki::DNSNameRef };
|
use tokio_rustls::{ TlsConnector, rustls::ClientConfig, webpki::DNSNameRef };
|
||||||
use tokio_stdin_stdout::{ stdin as tokio_stdin, stdout as tokio_stdout };
|
|
||||||
|
|
||||||
|
|
||||||
#[derive(StructOpt)]
|
#[derive(StructOpt)]
|
||||||
@ -61,8 +64,7 @@ fn main() -> io::Result<()> {
|
|||||||
let fut = async {
|
let fut = async {
|
||||||
let stream = TcpStream::connect(&addr).await?;
|
let stream = TcpStream::connect(&addr).await?;
|
||||||
|
|
||||||
// TODO tokio-compat
|
let (mut stdin, mut stdout) = (tokio_stdin(), tokio_stdout());
|
||||||
let (mut stdin, mut stdout) = (tokio_stdin(0).compat(), tokio_stdout(0).compat());
|
|
||||||
|
|
||||||
let domain = DNSNameRef::try_from_ascii_str(&domain)
|
let domain = DNSNameRef::try_from_ascii_str(&domain)
|
||||||
.map_err(|_| io::Error::new(io::ErrorKind::InvalidInput, "invalid dnsname"))?;
|
.map_err(|_| io::Error::new(io::ErrorKind::InvalidInput, "invalid dnsname"))?;
|
||||||
@ -71,10 +73,13 @@ fn main() -> io::Result<()> {
|
|||||||
stream.write_all(content.as_bytes()).await?;
|
stream.write_all(content.as_bytes()).await?;
|
||||||
|
|
||||||
let (mut reader, mut writer) = split(stream);
|
let (mut reader, mut writer) = split(stream);
|
||||||
future::try_join(
|
future::select(
|
||||||
copy(&mut reader, &mut stdout),
|
copy(&mut reader, &mut stdout),
|
||||||
copy(&mut stdin, &mut writer)
|
copy(&mut stdin, &mut writer)
|
||||||
).await?;
|
)
|
||||||
|
.await
|
||||||
|
.factor_first()
|
||||||
|
.0?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user