fmt
This commit is contained in:
+9
-11
@@ -147,24 +147,22 @@ impl Config {
|
||||
&LocalInterface::default(),
|
||||
);
|
||||
match address_result {
|
||||
Ok(address) => {
|
||||
match address_choose(address) {
|
||||
Ok(resolved_address) => {
|
||||
server_address = resolved_address;
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to choose address: {}", e);
|
||||
println!("Failed to choose address: {}", e);
|
||||
}
|
||||
Ok(address) => match address_choose(address) {
|
||||
Ok(resolved_address) => {
|
||||
server_address = resolved_address;
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to choose address: {}", e);
|
||||
println!("Failed to choose address: {}", e);
|
||||
}
|
||||
},
|
||||
Err(e) => {
|
||||
log::error!("DNS query failed: {}", e);
|
||||
println!("DNS query failed: {}", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#[cfg(feature = "port_mapping")]
|
||||
let port_mapping_list = crate::port_mapping::convert(port_mapping_list)?;
|
||||
|
||||
|
||||
@@ -390,11 +390,12 @@ impl<Call: VntCallback, Device: DeviceWrite> ServerPacketHandler<Call, Device> {
|
||||
"device_fd == 0".into(),
|
||||
));
|
||||
} else {
|
||||
let device = unsafe { tun_rs::SyncDevice::from_fd(device_fd as _) };
|
||||
if let Err(e) = self.tun_device_helper.start(
|
||||
Arc::new(device),
|
||||
self.config_info.allow_wire_guard,
|
||||
) {
|
||||
let device =
|
||||
unsafe { tun_rs::SyncDevice::from_fd(device_fd as _) };
|
||||
if let Err(e) = self
|
||||
.tun_device_helper
|
||||
.start(Arc::new(device), self.config_info.allow_wire_guard)
|
||||
{
|
||||
self.callback.error(ErrorInfo::new_msg(
|
||||
ErrorType::FailedToCrateDevice,
|
||||
format!("{:?}", e),
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
use crate::channel::socket::LocalInterface;
|
||||
use anyhow::Context;
|
||||
use dns_parser::{Builder, Packet, QueryClass, QueryType, RData, ResponseCode};
|
||||
use http_req::request::{RedirectPolicy, Request};
|
||||
use http_req::uri::Uri;
|
||||
use std::cell::RefCell;
|
||||
use std::collections::HashMap;
|
||||
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr, ToSocketAddrs, UdpSocket};
|
||||
use std::str::FromStr;
|
||||
use std::time::Duration;
|
||||
use std::{io, thread};
|
||||
use http_req::request::{Request, RedirectPolicy};
|
||||
use http_req::uri::Uri;
|
||||
use crate::channel::socket::LocalInterface;
|
||||
use anyhow::Context;
|
||||
use dns_parser::{Builder, Packet, QueryClass, QueryType, RData, ResponseCode};
|
||||
|
||||
thread_local! {
|
||||
static HISTORY: RefCell<HashMap<SocketAddr,usize>> = RefCell::new(HashMap::new());
|
||||
@@ -97,7 +97,6 @@ pub fn dns_query_all(
|
||||
// 执行重定向检查
|
||||
if let Some(stripped) = redirect_domain {
|
||||
if let Some(redirected_url) = check_for_redirect(&stripped)? {
|
||||
|
||||
// 去掉 URL 开头的协议部分
|
||||
let final_domain = remove_http_prefix(&redirected_url);
|
||||
println!("Server Address: {}", final_domain);
|
||||
@@ -214,8 +213,8 @@ fn parse_host_port(addr: &str) -> bool {
|
||||
// 处理 IPv6 地址(格式为 [::1]:8080)
|
||||
if addr.starts_with('[') {
|
||||
if let Some(idx) = addr.rfind(']') {
|
||||
if let Some(port_idx) = addr[idx+1..].find(':') {
|
||||
let port = &addr[idx+1+port_idx+1..]; // 提取端口部分
|
||||
if let Some(port_idx) = addr[idx + 1..].find(':') {
|
||||
let port = &addr[idx + 1 + port_idx + 1..]; // 提取端口部分
|
||||
return !port.is_empty() && port.chars().all(|c| c.is_numeric());
|
||||
}
|
||||
}
|
||||
@@ -248,9 +247,7 @@ fn check_for_redirect(domain: &String) -> anyhow::Result<Option<String>> {
|
||||
|
||||
// 解析 URL
|
||||
let uri = match Uri::try_from(url.as_str()) {
|
||||
Ok(u) => {
|
||||
u
|
||||
}
|
||||
Ok(u) => u,
|
||||
Err(e) => {
|
||||
println!("解析地址失败: {}", e);
|
||||
return Ok(last_redirect_url);
|
||||
@@ -288,7 +285,6 @@ fn check_for_redirect(domain: &String) -> anyhow::Result<Option<String>> {
|
||||
return Ok(last_redirect_url);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理 200 响应
|
||||
else if response.status_code().is_success() {
|
||||
for line in body_str.lines() {
|
||||
|
||||
Reference in New Issue
Block a user