-use async_std::task;
use log::*;
-use crate::StitchConnection;
+use crate::Connection;
use async_std::net::{TcpStream, ToSocketAddrs};
-impl StitchConnection {
- pub fn tcp_client<A: ToSocketAddrs + std::fmt::Display>(
+impl Connection {
+ pub async fn tcp_client<A: ToSocketAddrs + std::fmt::Display>(
ip_addrs: A,
- ) -> anyhow::Result<StitchConnection> {
- let read_stream = task::block_on(TcpStream::connect(&ip_addrs))?;
+ ) -> anyhow::Result<Self> {
+ let stream = TcpStream::connect(&ip_addrs).await?;
info!("Established client TCP connection to {}", ip_addrs);
- Ok(Self::from(read_stream))
+ stream.set_nodelay(true)?;
+ Ok(Self::from(stream))
}
}
-impl From<TcpStream> for StitchConnection {
+impl From<TcpStream> for Connection {
fn from(stream: TcpStream) -> Self {
let write_stream = stream.clone();
Self::new(
local_addr,
peer_addr,
- Box::new(stream),
- Box::new(write_stream),
+ Box::pin(stream),
+ Box::pin(write_stream),
)
}
}