Skip to content

Commit bbf8fb3

Browse files
committed
make clippy happier
1 parent 1d3e6b7 commit bbf8fb3

File tree

21 files changed

+161
-112
lines changed

21 files changed

+161
-112
lines changed

crates/shadowsocks-service/src/acl/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ impl Rules {
9393

9494
/// Check if there are no rules for domain names
9595
fn is_host_empty(&self) -> bool {
96-
self.rule.len() == 0
96+
self.rule.is_empty()
9797
}
9898
}
9999

crates/shadowsocks-service/src/config.rs

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1332,11 +1332,10 @@ impl Config {
13321332
#[cfg(any(feature = "trust-dns", feature = "local-dns"))]
13331333
fn parse_dns_nameservers(nameservers: &str) -> Result<DnsConfig, Error> {
13341334
#[cfg(all(unix, feature = "local-dns"))]
1335-
if nameservers.starts_with("unix://") {
1335+
if let Some(nameservers) = nameservers.strip_prefix("unix://") {
13361336
// A special DNS server only for shadowsocks-android
13371337
// It serves like a TCP DNS server but using unix domain sockets
13381338

1339-
let nameservers = &nameservers[7..];
13401339
return Ok(DnsConfig::LocalDns(NameServerAddr::UnixSocketAddr(PathBuf::from(
13411340
nameservers,
13421341
))));
@@ -1581,20 +1580,14 @@ impl fmt::Display for Config {
15811580
ServerAddr::SocketAddr(ref sa) => sa.port(),
15821581
ServerAddr::DomainName(.., port) => port,
15831582
},
1584-
local_udp_address: match local.udp_addr {
1585-
None => None,
1586-
Some(ref udp_addr) => Some(match udp_addr {
1587-
ServerAddr::SocketAddr(ref sa) => sa.ip().to_string(),
1588-
ServerAddr::DomainName(ref dm, ..) => dm.to_string(),
1589-
}),
1590-
},
1591-
local_udp_port: match local.udp_addr {
1592-
None => None,
1593-
Some(ref udp_addr) => Some(match udp_addr {
1594-
ServerAddr::SocketAddr(ref sa) => sa.port(),
1595-
ServerAddr::DomainName(.., port) => *port,
1596-
}),
1597-
},
1583+
local_udp_address: local.udp_addr.as_ref().map(|udp_addr| match udp_addr {
1584+
ServerAddr::SocketAddr(sa) => sa.ip().to_string(),
1585+
ServerAddr::DomainName(dm, ..) => dm.to_string(),
1586+
}),
1587+
local_udp_port: local.udp_addr.as_ref().map(|udp_addr| match udp_addr {
1588+
ServerAddr::SocketAddr(sa) => sa.port(),
1589+
ServerAddr::DomainName(.., port) => *port,
1590+
}),
15981591
mode: Some(local.mode.to_string()),
15991592
protocol: match local.protocol {
16001593
ProtocolType::Socks => None,

crates/shadowsocks-service/src/local/context.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ pub struct ServiceContext {
3535
reverse_lookup_cache: Mutex<LruCache<IpAddr, bool>>,
3636
}
3737

38+
impl Default for ServiceContext {
39+
fn default() -> Self {
40+
ServiceContext::new()
41+
}
42+
}
43+
3844
impl ServiceContext {
3945
/// Create a new `ServiceContext`
4046
pub fn new() -> ServiceContext {

crates/shadowsocks-service/src/local/dns/dns_resolver.rs

Lines changed: 71 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -126,93 +126,95 @@ impl DnsResolve for DnsResolver {
126126
msgv6.set_recursion_desired(true);
127127
msgv6.add_query(queryv6);
128128

129-
let (res_v4, res_v6) = future::join(self.lookup(msgv4), self.lookup(msgv6)).await;
130-
131-
if res_v4.is_err() && res_v6.is_err() {
132-
return if self.ipv6_first {
133-
Err(res_v6.unwrap_err())
134-
} else {
135-
Err(res_v4.unwrap_err())
136-
};
137-
}
129+
match future::join(self.lookup(msgv4), self.lookup(msgv6)).await {
130+
(Err(res_v4), Err(res_v6)) => {
131+
if self.ipv6_first {
132+
Err(res_v6)
133+
} else {
134+
Err(res_v4)
135+
}
136+
}
138137

139-
let mut vaddr = Vec::new();
140-
141-
if self.ipv6_first {
142-
match res_v6 {
143-
Ok(res) => {
144-
for record in res.answers() {
145-
match *record.rdata() {
146-
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
147-
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
148-
ref rdata => {
149-
trace!("skipped rdata {:?}", rdata);
138+
(res_v4, res_v6) => {
139+
let mut vaddr = Vec::new();
140+
141+
if self.ipv6_first {
142+
match res_v6 {
143+
Ok(res) => {
144+
for record in res.answers() {
145+
match *record.rdata() {
146+
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
147+
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
148+
ref rdata => {
149+
trace!("skipped rdata {:?}", rdata);
150+
}
151+
}
150152
}
151153
}
154+
Err(err) => {
155+
debug!("failed to resolve AAAA records, error: {}", err);
156+
}
152157
}
153-
}
154-
Err(err) => {
155-
debug!("failed to resolve AAAA records, error: {}", err);
156-
}
157-
}
158158

159-
match res_v4 {
160-
Ok(res) => {
161-
for record in res.answers() {
162-
match *record.rdata() {
163-
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
164-
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
165-
ref rdata => {
166-
trace!("skipped rdata {:?}", rdata);
159+
match res_v4 {
160+
Ok(res) => {
161+
for record in res.answers() {
162+
match *record.rdata() {
163+
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
164+
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
165+
ref rdata => {
166+
trace!("skipped rdata {:?}", rdata);
167+
}
168+
}
167169
}
168170
}
171+
Err(err) => {
172+
debug!("failed to resolve A records, error: {}", err);
173+
}
169174
}
170-
}
171-
Err(err) => {
172-
debug!("failed to resolve A records, error: {}", err);
173-
}
174-
}
175-
} else {
176-
match res_v4 {
177-
Ok(res) => {
178-
for record in res.answers() {
179-
match *record.rdata() {
180-
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
181-
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
182-
ref rdata => {
183-
trace!("skipped rdata {:?}", rdata);
175+
} else {
176+
match res_v4 {
177+
Ok(res) => {
178+
for record in res.answers() {
179+
match *record.rdata() {
180+
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
181+
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
182+
ref rdata => {
183+
trace!("skipped rdata {:?}", rdata);
184+
}
185+
}
184186
}
185187
}
188+
Err(err) => {
189+
debug!("failed to resolve A records, error: {}", err);
190+
}
186191
}
187-
}
188-
Err(err) => {
189-
debug!("failed to resolve A records, error: {}", err);
190-
}
191-
}
192192

193-
match res_v6 {
194-
Ok(res) => {
195-
for record in res.answers() {
196-
match *record.rdata() {
197-
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
198-
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
199-
ref rdata => {
200-
trace!("skipped rdata {:?}", rdata);
193+
match res_v6 {
194+
Ok(res) => {
195+
for record in res.answers() {
196+
match *record.rdata() {
197+
RData::A(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
198+
RData::AAAA(addr) => vaddr.push(SocketAddr::new(addr.into(), port)),
199+
ref rdata => {
200+
trace!("skipped rdata {:?}", rdata);
201+
}
202+
}
201203
}
202204
}
205+
Err(err) => {
206+
debug!("failed to resolve AAAA records, error: {}", err);
207+
}
203208
}
204209
}
205-
Err(err) => {
206-
debug!("failed to resolve AAAA records, error: {}", err);
210+
211+
if vaddr.is_empty() {
212+
let err = io::Error::new(ErrorKind::InvalidData, "resolve empty");
213+
return Err(err);
207214
}
208-
}
209-
}
210215

211-
if vaddr.is_empty() {
212-
let err = io::Error::new(ErrorKind::InvalidData, "resolve empty");
213-
return Err(err);
216+
Ok(vaddr)
217+
}
214218
}
215-
216-
Ok(vaddr)
217219
}
218220
}

crates/shadowsocks-service/src/local/dns/server.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ impl Dns {
254254
Ok(m) => m,
255255
Err(err) => {
256256
error!("dns udp {} lookup failed, error: {}", peer_addr, err);
257-
return Err(err.into());
257+
return Err(err);
258258
}
259259
};
260260

crates/shadowsocks-service/src/local/dns/upstream.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ use trust_dns_resolver::proto::{
2929
use crate::net::{FlowStat, MonProxySocket, MonProxyStream};
3030

3131
/// Collection of various DNS connections
32+
#[allow(clippy::large_enum_variant)]
3233
pub enum DnsClient {
3334
TcpLocal {
3435
stream: TcpStream,

crates/shadowsocks-service/src/local/http/http_stream.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use tokio::io::{AsyncRead, AsyncWrite, ReadBuf};
1212

1313
use crate::local::net::AutoProxyClientStream;
1414

15+
#[allow(clippy::large_enum_variant)]
1516
#[pin_project(project = ProxyHttpStreamProj)]
1617
pub enum ProxyHttpStream {
1718
Http(#[pin] AutoProxyClientStream),

crates/shadowsocks-service/src/local/http/server.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ pub struct Http {
2727
proxy_client_cache: Arc<ProxyClientCache>,
2828
}
2929

30+
impl Default for Http {
31+
fn default() -> Self {
32+
Http::new()
33+
}
34+
}
35+
3036
impl Http {
3137
/// Create a new HTTP Local server
3238
pub fn new() -> Http {

crates/shadowsocks-service/src/local/loadbalancing/server_data.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,20 @@ pub struct ServerScore {
1616
score: AtomicU32,
1717
}
1818

19-
impl ServerScore {
20-
/// Create a `ServerScore`
21-
pub fn new() -> ServerScore {
19+
impl Default for ServerScore {
20+
fn default() -> Self {
2221
ServerScore {
2322
stat_data: Mutex::new(ServerStat::new()),
2423
score: AtomicU32::new(0),
2524
}
2625
}
26+
}
27+
28+
impl ServerScore {
29+
/// Create a `ServerScore`
30+
pub fn new() -> ServerScore {
31+
ServerScore::default()
32+
}
2733

2834
/// Get server's current statistic scores
2935
pub fn score(&self) -> u32 {

crates/shadowsocks-service/src/local/loadbalancing/server_stat.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ fn max_latency_stdev() -> f64 {
4646
(diff1 + diff2).sqrt()
4747
}
4848

49-
impl ServerStat {
50-
pub fn new() -> ServerStat {
49+
impl Default for ServerStat {
50+
fn default() -> Self {
5151
ServerStat {
5252
rtt: MAX_SERVER_RTT,
5353
fail_rate: 1.0,
@@ -56,6 +56,12 @@ impl ServerStat {
5656
latency_mean: 0.0,
5757
}
5858
}
59+
}
60+
61+
impl ServerStat {
62+
pub fn new() -> ServerStat {
63+
ServerStat::default()
64+
}
5965

6066
fn score(&self) -> u32 {
6167
// Normalize rtt
@@ -109,7 +115,7 @@ impl ServerStat {
109115
self.fail_rate = cerr as f64 / self.latency_queue.len() as f64;
110116

111117
if !vlat.is_empty() {
112-
vlat.sort();
118+
vlat.sort_unstable();
113119

114120
// Find median of latency
115121
let mid = vlat.len() / 2;

crates/shadowsocks-service/src/local/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ pub mod utils;
4545
/// Starts a shadowsocks local server
4646
pub async fn run(mut config: Config) -> io::Result<()> {
4747
assert!(config.config_type == ConfigType::Local && !config.local.is_empty());
48-
assert!(config.server.len() > 0);
48+
assert!(!config.server.is_empty());
4949

5050
trace!("{:?}", config);
5151

crates/shadowsocks-service/src/local/redir/server.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ pub struct Redir {
2323
udp_redir: RedirType,
2424
}
2525

26+
impl Default for Redir {
27+
fn default() -> Self {
28+
Redir::new()
29+
}
30+
}
31+
2632
impl Redir {
2733
/// Create a new transparent proxy server with default configuration
2834
pub fn new() -> Redir {

crates/shadowsocks-service/src/local/redir/sys/unix/bsd_pf.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ impl PacketFilter {
165165
let addr: *const libc::in_addr = &((*sockaddr).sin_addr) as *const _;
166166
let port: libc::in_port_t = (*sockaddr).sin_port;
167167

168+
#[allow(clippy::size_of_in_element_count)]
168169
ptr::copy_nonoverlapping(addr, &mut pnl.daddr.pfa.v4, mem::size_of_val(&pnl.daddr.pfa.v4));
169170
pnl.set_dport(port);
170171
}
@@ -177,6 +178,7 @@ impl PacketFilter {
177178
let addr: *const libc::in6_addr = &((*sockaddr).sin6_addr) as *const _;
178179
let port: libc::in_port_t = (*sockaddr).sin6_port;
179180

181+
#[allow(clippy::size_of_in_element_count)]
180182
ptr::copy_nonoverlapping(addr, &mut pnl.daddr.pfa.v6, mem::size_of_val(&pnl.daddr.pfa.v6));
181183
pnl.set_dport(port);
182184
}
@@ -194,6 +196,7 @@ impl PacketFilter {
194196
let addr: *const libc::in_addr = &((*sockaddr).sin_addr) as *const _;
195197
let port: libc::in_port_t = (*sockaddr).sin_port;
196198

199+
#[allow(clippy::size_of_in_element_count)]
197200
ptr::copy_nonoverlapping(addr, &mut pnl.saddr.pfa.v4, mem::size_of_val(&pnl.saddr.pfa.v4));
198201
pnl.set_sport(port);
199202
}
@@ -208,6 +211,7 @@ impl PacketFilter {
208211
let addr: *const libc::in6_addr = &((*sockaddr).sin6_addr) as *const _;
209212
let port: libc::in_port_t = (*sockaddr).sin6_port;
210213

214+
#[allow(clippy::size_of_in_element_count)]
211215
ptr::copy_nonoverlapping(addr, &mut pnl.saddr.pfa.v6, mem::size_of_val(&pnl.saddr.pfa.v6));
212216
pnl.set_sport(port);
213217
}
@@ -229,6 +233,7 @@ impl PacketFilter {
229233
let dst_addr: &mut libc::sockaddr_in = &mut *(dst_addr as *mut _);
230234
dst_addr.sin_family = pnl.af;
231235
dst_addr.sin_port = pnl.rdport();
236+
#[allow(clippy::size_of_in_element_count)]
232237
ptr::copy_nonoverlapping(
233238
&pnl.rdaddr.pfa.v4,
234239
&mut dst_addr.sin_addr,
@@ -239,6 +244,7 @@ impl PacketFilter {
239244
let dst_addr: &mut libc::sockaddr_in6 = &mut *(dst_addr as *mut _);
240245
dst_addr.sin6_family = pnl.af;
241246
dst_addr.sin6_port = pnl.rdport();
247+
#[allow(clippy::size_of_in_element_count)]
242248
ptr::copy_nonoverlapping(
243249
&pnl.rdaddr.pfa.v6,
244250
&mut dst_addr.sin6_addr,

0 commit comments

Comments
 (0)