This commit is contained in:
parent
b83b296234
commit
933578e660
@ -11,7 +11,10 @@ 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;
|
||||||
host.to_socket_addrs()?.next().context("Failed to solve")
|
host.to_socket_addrs()?
|
||||||
|
.filter(|x| x.is_ipv4())
|
||||||
|
.next()
|
||||||
|
.context("Failed to solve")
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_target_addr(host: &str) -> ResultType<TargetAddr<'static>> {
|
pub fn get_target_addr(host: &str) -> ResultType<TargetAddr<'static>> {
|
||||||
@ -60,6 +63,7 @@ pub async fn connect_tcp<'t, T: IntoTargetAddr<'t>>(
|
|||||||
.await
|
.await
|
||||||
} else {
|
} else {
|
||||||
let addr = std::net::ToSocketAddrs::to_socket_addrs(&target_addr)?
|
let addr = std::net::ToSocketAddrs::to_socket_addrs(&target_addr)?
|
||||||
|
.filter(|x| x.is_ipv4())
|
||||||
.next()
|
.next()
|
||||||
.context("Invalid target addr")?;
|
.context("Invalid target addr")?;
|
||||||
Ok(FramedStream::new(addr, local, ms_timeout).await?)
|
Ok(FramedStream::new(addr, local, ms_timeout).await?)
|
||||||
|
@ -47,7 +47,7 @@ impl FramedSocket {
|
|||||||
|
|
||||||
#[allow(clippy::never_loop)]
|
#[allow(clippy::never_loop)]
|
||||||
pub async fn new_reuse<T: std::net::ToSocketAddrs>(addr: T) -> ResultType<Self> {
|
pub async fn new_reuse<T: std::net::ToSocketAddrs>(addr: T) -> ResultType<Self> {
|
||||||
for addr in addr.to_socket_addrs()? {
|
for addr in addr.to_socket_addrs()?.filter(|x| x.is_ipv4()) {
|
||||||
let socket = new_socket(addr, true, 0)?.into_udp_socket();
|
let socket = new_socket(addr, true, 0)?.into_udp_socket();
|
||||||
return Ok(Self::Direct(UdpFramed::new(
|
return Ok(Self::Direct(UdpFramed::new(
|
||||||
UdpSocket::from_std(socket)?,
|
UdpSocket::from_std(socket)?,
|
||||||
@ -61,7 +61,7 @@ impl FramedSocket {
|
|||||||
addr: T,
|
addr: T,
|
||||||
buf_size: usize,
|
buf_size: usize,
|
||||||
) -> ResultType<Self> {
|
) -> ResultType<Self> {
|
||||||
for addr in addr.to_socket_addrs()? {
|
for addr in addr.to_socket_addrs()?.filter(|x| x.is_ipv4()) {
|
||||||
return Ok(Self::Direct(UdpFramed::new(
|
return Ok(Self::Direct(UdpFramed::new(
|
||||||
UdpSocket::from_std(new_socket(addr, false, buf_size)?.into_udp_socket())?,
|
UdpSocket::from_std(new_socket(addr, false, buf_size)?.into_udp_socket())?,
|
||||||
BytesCodec::new(),
|
BytesCodec::new(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user