mirror of
https://github.com/shadowsocks/shadowsocks-rust.git
synced 2026-02-09 10:09:17 +08:00
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -1623,7 +1623,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "shadowsocks-rust"
|
||||
version = "1.12.1"
|
||||
version = "1.12.2"
|
||||
dependencies = [
|
||||
"build-time",
|
||||
"byte_string",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "shadowsocks-rust"
|
||||
version = "1.12.1"
|
||||
version = "1.12.2"
|
||||
authors = ["Shadowsocks Contributors"]
|
||||
description = "shadowsocks is a fast tunnel proxy that helps you bypass firewalls."
|
||||
repository = "https://github.com/shadowsocks/shadowsocks-rust"
|
||||
|
||||
@@ -329,7 +329,25 @@ fn main() {
|
||||
|
||||
#[cfg(feature = "local-dns")]
|
||||
{
|
||||
use shadowsocks_service::local::dns::NameServerAddr;
|
||||
use shadowsocks_service::{local::dns::NameServerAddr, shadowsocks::relay::socks5::AddressError};
|
||||
use std::net::SocketAddr;
|
||||
|
||||
#[inline]
|
||||
fn parse_remote_dns_addr(a: &str) -> Result<Address, AddressError> {
|
||||
if let Ok(ip) = a.parse::<IpAddr>() {
|
||||
return Ok(Address::SocketAddress(SocketAddr::new(ip, 53)));
|
||||
}
|
||||
|
||||
if let Ok(saddr) = a.parse::<SocketAddr>() {
|
||||
return Ok(Address::SocketAddress(saddr));
|
||||
}
|
||||
|
||||
if a.find(':').is_some() {
|
||||
a.parse::<Address>()
|
||||
} else {
|
||||
Ok(Address::DomainNameAddress(a.to_owned(), 53))
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(local_dns_addr) = matches.value_of("LOCAL_DNS_ADDR") {
|
||||
let addr = local_dns_addr.parse::<NameServerAddr>().expect("local dns address");
|
||||
@@ -337,7 +355,7 @@ fn main() {
|
||||
}
|
||||
|
||||
if let Some(remote_dns_addr) = matches.value_of("REMOTE_DNS_ADDR") {
|
||||
let addr = remote_dns_addr.parse::<Address>().expect("remote dns address");
|
||||
let addr = parse_remote_dns_addr(remote_dns_addr).expect("remote dns address");
|
||||
local_config.remote_dns_addr = Some(addr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
use std::{convert::Infallible, path::PathBuf};
|
||||
use std::{
|
||||
fmt::{self, Display},
|
||||
net::SocketAddr,
|
||||
net::{IpAddr, SocketAddr},
|
||||
str::FromStr,
|
||||
};
|
||||
|
||||
@@ -31,6 +31,10 @@ impl FromStr for NameServerAddr {
|
||||
type Err = NameServerAddrError;
|
||||
|
||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
if let Ok(ip) = s.parse::<IpAddr>() {
|
||||
return Ok(NameServerAddr::SocketAddr(SocketAddr::new(ip, 53)));
|
||||
}
|
||||
|
||||
match s.parse::<SocketAddr>() {
|
||||
Ok(addr) => Ok(NameServerAddr::SocketAddr(addr)),
|
||||
#[cfg(unix)]
|
||||
|
||||
Reference in New Issue
Block a user