From 6767dda246fa4488531a61ff96615c37c43aa07d Mon Sep 17 00:00:00 2001 From: open-trade Date: Wed, 5 Jan 2022 15:59:01 +0800 Subject: [PATCH] refactor --- libs/hbb_common/src/socket_client.rs | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/libs/hbb_common/src/socket_client.rs b/libs/hbb_common/src/socket_client.rs index a797acf33..e0dac0fb0 100644 --- a/libs/hbb_common/src/socket_client.rs +++ b/libs/hbb_common/src/socket_client.rs @@ -4,18 +4,14 @@ use crate::{ udp::FramedSocket, ResultType, }; -use anyhow::bail; +use anyhow::{bail, Context}; use std::net::SocketAddr; use tokio::net::ToSocketAddrs; use tokio_socks::{IntoTargetAddr, TargetAddr}; fn to_socket_addr(host: &str) -> ResultType { use std::net::ToSocketAddrs; - let addrs: Vec = host.to_socket_addrs()?.collect(); - if addrs.is_empty() { - bail!("Failed to solve {}", host); - } - Ok(addrs[0]) + host.to_socket_addrs()?.next().context("Failed to solve") } pub fn get_target_addr(host: &str) -> ResultType> { @@ -63,13 +59,10 @@ pub async fn connect_tcp<'t, T: IntoTargetAddr<'t>>( ) .await } else { - let addrs: Vec = - std::net::ToSocketAddrs::to_socket_addrs(&target_addr)?.collect(); - if addrs.is_empty() { - bail!("Invalid target addr"); - }; - - Ok(FramedStream::new(addrs[0], local, ms_timeout).await?) + let addr = std::net::ToSocketAddrs::to_socket_addrs(&target_addr)? + .next() + .context("Invalid target addr")?; + Ok(FramedStream::new(addr, local, ms_timeout).await?) } }