refactor
This commit is contained in:
parent
5f61c2442a
commit
6767dda246
@ -4,18 +4,14 @@ use crate::{
|
|||||||
udp::FramedSocket,
|
udp::FramedSocket,
|
||||||
ResultType,
|
ResultType,
|
||||||
};
|
};
|
||||||
use anyhow::bail;
|
use anyhow::{bail, Context};
|
||||||
use std::net::SocketAddr;
|
use std::net::SocketAddr;
|
||||||
use tokio::net::ToSocketAddrs;
|
use tokio::net::ToSocketAddrs;
|
||||||
use tokio_socks::{IntoTargetAddr, TargetAddr};
|
use tokio_socks::{IntoTargetAddr, TargetAddr};
|
||||||
|
|
||||||
fn to_socket_addr(host: &str) -> ResultType<SocketAddr> {
|
fn to_socket_addr(host: &str) -> ResultType<SocketAddr> {
|
||||||
use std::net::ToSocketAddrs;
|
use std::net::ToSocketAddrs;
|
||||||
let addrs: Vec<SocketAddr> = host.to_socket_addrs()?.collect();
|
host.to_socket_addrs()?.next().context("Failed to solve")
|
||||||
if addrs.is_empty() {
|
|
||||||
bail!("Failed to solve {}", host);
|
|
||||||
}
|
|
||||||
Ok(addrs[0])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_target_addr(host: &str) -> ResultType<TargetAddr<'static>> {
|
pub fn get_target_addr(host: &str) -> ResultType<TargetAddr<'static>> {
|
||||||
@ -63,13 +59,10 @@ pub async fn connect_tcp<'t, T: IntoTargetAddr<'t>>(
|
|||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
} else {
|
} else {
|
||||||
let addrs: Vec<SocketAddr> =
|
let addr = std::net::ToSocketAddrs::to_socket_addrs(&target_addr)?
|
||||||
std::net::ToSocketAddrs::to_socket_addrs(&target_addr)?.collect();
|
.next()
|
||||||
if addrs.is_empty() {
|
.context("Invalid target addr")?;
|
||||||
bail!("Invalid target addr");
|
Ok(FramedStream::new(addr, local, ms_timeout).await?)
|
||||||
};
|
|
||||||
|
|
||||||
Ok(FramedStream::new(addrs[0], local, ms_timeout).await?)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user