chore(deps): update rust crate arc-swap to v1.9.2 #3113
build-msrv.yml
on: push
Matrix: build-msrv-shadowsocks-rust
Matrix: build-msrv-shadowsocks-service
Matrix: build-msrv-shadowsocks
Annotations
90 warnings and 3 notices
|
build-msrv-shadowsocks (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: ilammy/setup-nasm@v1. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
large size difference between variants:
crates/shadowsocks-service/src/server/tcprelay.rs#L43
warning: large size difference between variants
--> crates/shadowsocks-service/src/server/tcprelay.rs:43:1
|
43 | / enum RemoteStream {
44 | | Direct(OutboundTcpStream),
| | ------------------------- the second-largest variant contains at least 48 bytes
45 | | Proxied(OutboundProxyStream),
| | ---------------------------- the largest variant contains at least 1160 bytes
46 | | }
| |_^ the entire enum is at least 1160 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#large_enum_variant
= note: `#[warn(clippy::large_enum_variant)]` on by default
help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum
|
45 - Proxied(OutboundProxyStream),
45 + Proxied(Box<OutboundProxyStream>),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/udp_server.rs#L80
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/udp_server.rs:80:32
|
80 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
80 - return Err(io::Error::new(io::ErrorKind::Other, err));
80 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L151
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:151:28
|
151 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
151 - return Err(io::Error::new(io::ErrorKind::Other, err));
151 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L133
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:133:32
|
133 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
133 - return Err(io::Error::new(io::ErrorKind::Other, err));
133 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L984
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:984:32
|
984 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
984 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
984 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L975
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:975:50
|
975 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
975 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
975 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L971
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:971:50
|
971 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
971 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
971 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L922
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:922:61
|
922 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
922 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
922 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L918
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:918:61
|
918 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
918 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
918 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L886
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:886:36
|
886 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
886 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
886 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L879
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:879:36
|
879 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
879 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
879 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L488
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:488:36
|
488 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
488 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
488 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L338
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:338:40
|
338 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
338 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
338 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L332
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:332:32
|
332 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
332 - return Err(io::Error::new(io::ErrorKind::Other, err));
332 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L324
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:324:32
|
324 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
324 - return Err(io::Error::new(io::ErrorKind::Other, err));
324 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L101
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:101:32
|
101 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
101 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
101 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L88
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:88:40
|
88 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
88 - last_err = io::Error::new(io::ErrorKind::Other, err);
88 + last_err = io::Error::other(err);
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L79
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:79:40
|
79 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
79 - last_err = io::Error::new(io::ErrorKind::Other, err);
79 + last_err = io::Error::other(err);
|
|
|
this `if` can be collapsed into the outer `match`:
crates/shadowsocks-service/src/config.rs#L1355
warning: this `if` can be collapsed into the outer `match`
--> crates/shadowsocks-service/src/config.rs:1355:17
|
1355 | / if !self.mode.enable_tcp() {
1356 | | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | | return Err(err);
1358 | | }
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#collapsible_match
= note: `#[warn(clippy::collapsible_match)]` on by default
help: collapse nested if block
|
1354 ~ ProtocolType::Http
1355 ~ if !self.mode.enable_tcp() => {
1356 | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | return Err(err);
1358 ~ }
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L195
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:195:25
|
195 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
195 - Err(io::Error::new(io::ErrorKind::Other, err))
195 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L189
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:189:33
|
189 | ... Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
189 - Err(io::Error::new(io::ErrorKind::Other, err))
189 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L164
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:164:25
|
164 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
164 - Err(io::Error::new(io::ErrorKind::Other, err))
164 + Err(io::Error::other(err))
|
|
|
large size difference between variants:
crates/shadowsocks-service/src/server/tcprelay.rs#L43
warning: large size difference between variants
--> crates/shadowsocks-service/src/server/tcprelay.rs:43:1
|
43 | / enum RemoteStream {
44 | | Direct(OutboundTcpStream),
| | ------------------------- the second-largest variant contains at least 64 bytes
45 | | Proxied(OutboundProxyStream),
| | ---------------------------- the largest variant contains at least 1160 bytes
46 | | }
| |_^ the entire enum is at least 1160 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#large_enum_variant
= note: `#[warn(clippy::large_enum_variant)]` on by default
help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum
|
45 - Proxied(OutboundProxyStream),
45 + Proxied(Box<OutboundProxyStream>),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/udp_server.rs#L80
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/udp_server.rs:80:32
|
80 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
80 - return Err(io::Error::new(io::ErrorKind::Other, err));
80 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L151
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:151:28
|
151 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
151 - return Err(io::Error::new(io::ErrorKind::Other, err));
151 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L133
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:133:32
|
133 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
133 - return Err(io::Error::new(io::ErrorKind::Other, err));
133 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L984
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:984:32
|
984 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
984 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
984 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L975
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:975:50
|
975 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
975 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
975 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L971
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:971:50
|
971 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
971 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
971 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L922
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:922:61
|
922 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
922 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
922 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L918
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:918:61
|
918 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
918 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
918 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L886
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:886:36
|
886 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
886 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
886 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L879
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:879:36
|
879 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
879 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
879 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L488
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:488:36
|
488 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
488 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
488 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L338
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:338:40
|
338 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
338 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
338 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L332
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:332:32
|
332 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
332 - return Err(io::Error::new(io::ErrorKind::Other, err));
332 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L324
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:324:32
|
324 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
324 - return Err(io::Error::new(io::ErrorKind::Other, err));
324 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L101
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:101:32
|
101 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
101 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
101 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L88
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:88:40
|
88 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
88 - last_err = io::Error::new(io::ErrorKind::Other, err);
88 + last_err = io::Error::other(err);
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L79
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:79:40
|
79 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
79 - last_err = io::Error::new(io::ErrorKind::Other, err);
79 + last_err = io::Error::other(err);
|
|
|
this `if` can be collapsed into the outer `match`:
crates/shadowsocks-service/src/config.rs#L1355
warning: this `if` can be collapsed into the outer `match`
--> crates/shadowsocks-service/src/config.rs:1355:17
|
1355 | / if !self.mode.enable_tcp() {
1356 | | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | | return Err(err);
1358 | | }
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#collapsible_match
= note: `#[warn(clippy::collapsible_match)]` on by default
help: collapse nested if block
|
1354 ~ ProtocolType::Http
1355 ~ if !self.mode.enable_tcp() => {
1356 | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | return Err(err);
1358 ~ }
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L195
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:195:25
|
195 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
195 - Err(io::Error::new(io::ErrorKind::Other, err))
195 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L189
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:189:33
|
189 | ... Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
189 - Err(io::Error::new(io::ErrorKind::Other, err))
189 + Err(io::Error::other(err))
|
|
|
build-msrv-shadowsocks-service (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: ilammy/setup-nasm@v1. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
build-msrv-shadowsocks-rust (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: ilammy/setup-nasm@v1. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
large size difference between variants:
crates/shadowsocks-service/src/server/tcprelay.rs#L43
warning: large size difference between variants
--> crates/shadowsocks-service/src/server/tcprelay.rs:43:1
|
43 | / enum RemoteStream {
44 | | Direct(OutboundTcpStream),
| | ------------------------- the second-largest variant contains at least 48 bytes
45 | | Proxied(OutboundProxyStream),
| | ---------------------------- the largest variant contains at least 1160 bytes
46 | | }
| |_^ the entire enum is at least 1160 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#large_enum_variant
= note: `#[warn(clippy::large_enum_variant)]` on by default
help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum
|
45 - Proxied(OutboundProxyStream),
45 + Proxied(Box<OutboundProxyStream>),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/udp_server.rs#L80
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/udp_server.rs:80:32
|
80 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
80 - return Err(io::Error::new(io::ErrorKind::Other, err));
80 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L151
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:151:28
|
151 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
151 - return Err(io::Error::new(io::ErrorKind::Other, err));
151 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L133
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:133:32
|
133 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
133 - return Err(io::Error::new(io::ErrorKind::Other, err));
133 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L984
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:984:32
|
984 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
984 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
984 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L975
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:975:50
|
975 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
975 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
975 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L971
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:971:50
|
971 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
971 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
971 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L922
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:922:61
|
922 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
922 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
922 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L918
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:918:61
|
918 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
918 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
918 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L886
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:886:36
|
886 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
886 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
886 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L879
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:879:36
|
879 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
879 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
879 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L488
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:488:36
|
488 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
488 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
488 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L338
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:338:40
|
338 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
338 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
338 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L332
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:332:32
|
332 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
332 - return Err(io::Error::new(io::ErrorKind::Other, err));
332 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L324
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:324:32
|
324 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
324 - return Err(io::Error::new(io::ErrorKind::Other, err));
324 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L101
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:101:32
|
101 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
101 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
101 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L88
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:88:40
|
88 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
88 - last_err = io::Error::new(io::ErrorKind::Other, err);
88 + last_err = io::Error::other(err);
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L79
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:79:40
|
79 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
79 - last_err = io::Error::new(io::ErrorKind::Other, err);
79 + last_err = io::Error::other(err);
|
|
|
this `if` can be collapsed into the outer `match`:
crates/shadowsocks-service/src/config.rs#L1355
warning: this `if` can be collapsed into the outer `match`
--> crates/shadowsocks-service/src/config.rs:1355:17
|
1355 | / if !self.mode.enable_tcp() {
1356 | | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | | return Err(err);
1358 | | }
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#collapsible_match
= note: `#[warn(clippy::collapsible_match)]` on by default
help: collapse nested if block
|
1354 ~ ProtocolType::Http
1355 ~ if !self.mode.enable_tcp() => {
1356 | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | return Err(err);
1358 ~ }
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L195
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:195:25
|
195 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
195 - Err(io::Error::new(io::ErrorKind::Other, err))
195 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L189
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:189:33
|
189 | ... Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
189 - Err(io::Error::new(io::ErrorKind::Other, err))
189 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L164
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:164:25
|
164 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
164 - Err(io::Error::new(io::ErrorKind::Other, err))
164 + Err(io::Error::other(err))
|
|
|
large size difference between variants:
crates/shadowsocks-service/src/server/tcprelay.rs#L43
warning: large size difference between variants
--> crates/shadowsocks-service/src/server/tcprelay.rs:43:1
|
43 | / enum RemoteStream {
44 | | Direct(OutboundTcpStream),
| | ------------------------- the second-largest variant contains at least 64 bytes
45 | | Proxied(OutboundProxyStream),
| | ---------------------------- the largest variant contains at least 1160 bytes
46 | | }
| |_^ the entire enum is at least 1160 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#large_enum_variant
= note: `#[warn(clippy::large_enum_variant)]` on by default
help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum
|
45 - Proxied(OutboundProxyStream),
45 + Proxied(Box<OutboundProxyStream>),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/udp_server.rs#L80
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/udp_server.rs:80:32
|
80 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
80 - return Err(io::Error::new(io::ErrorKind::Other, err));
80 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L151
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:151:28
|
151 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
151 - return Err(io::Error::new(io::ErrorKind::Other, err));
151 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs#L133
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/fake_dns/tcp_server.rs:133:32
|
133 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
133 - return Err(io::Error::new(io::ErrorKind::Other, err));
133 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L984
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:984:32
|
984 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
984 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
984 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L975
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:975:50
|
975 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
975 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
975 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L971
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:971:50
|
971 | next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
971 - next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err))
971 + next.await.map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L922
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:922:61
|
922 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
922 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
922 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L918
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:918:61
|
918 | Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
918 - Err(..) => next.await.map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
918 + Err(..) => next.await.map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L886
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:886:36
|
886 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
886 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
886 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L879
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:879:36
|
879 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
879 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))
879 + .map_err(|err| io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L488
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:488:36
|
488 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
488 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
488 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L338
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:338:40
|
338 | Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
338 - Err(err) => return Err(io::Error::new(io::ErrorKind::Other, err)),
338 + Err(err) => return Err(io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L332
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:332:32
|
332 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
332 - return Err(io::Error::new(io::ErrorKind::Other, err));
332 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/server.rs#L324
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/server.rs:324:32
|
324 | return Err(io::Error::new(io::ErrorKind::Other, err));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
324 - return Err(io::Error::new(io::ErrorKind::Other, err));
324 + return Err(io::Error::other(err));
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L101
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:101:32
|
101 | .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
101 - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)),
101 + .map_err(|err| io::Error::other(err)),
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L88
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:88:40
|
88 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
88 - last_err = io::Error::new(io::ErrorKind::Other, err);
88 + last_err = io::Error::other(err);
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks-service/src/local/dns/dns_resolver.rs#L79
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks-service/src/local/dns/dns_resolver.rs:79:40
|
79 | ... last_err = io::Error::new(io::ErrorKind::Other, err);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
79 - last_err = io::Error::new(io::ErrorKind::Other, err);
79 + last_err = io::Error::other(err);
|
|
|
this `if` can be collapsed into the outer `match`:
crates/shadowsocks-service/src/config.rs#L1355
warning: this `if` can be collapsed into the outer `match`
--> crates/shadowsocks-service/src/config.rs:1355:17
|
1355 | / if !self.mode.enable_tcp() {
1356 | | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | | return Err(err);
1358 | | }
| |_________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#collapsible_match
= note: `#[warn(clippy::collapsible_match)]` on by default
help: collapse nested if block
|
1354 ~ ProtocolType::Http
1355 ~ if !self.mode.enable_tcp() => {
1356 | let err = Error::new(ErrorKind::Invalid, "TCP mode have to be enabled for http", None);
1357 | return Err(err);
1358 ~ }
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L195
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:195:25
|
195 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
195 - Err(io::Error::new(io::ErrorKind::Other, err))
195 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L189
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:189:33
|
189 | ... Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
help: use `std::io::Error::other`
|
189 - Err(io::Error::new(io::ErrorKind::Other, err))
189 + Err(io::Error::other(err))
|
|
|
this can be `std::io::Error::other(_)`:
crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs#L164
warning: this can be `std::io::Error::other(_)`
--> crates/shadowsocks/src/dns_resolver/hickory_dns_resolver.rs:164:25
|
164 | Err(io::Error::new(io::ErrorKind::Other, err))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.96.0/index.html#io_other_error
= note: `#[warn(clippy::io_other_error)]` on by default
help: use `std::io::Error::other`
|
164 - Err(io::Error::new(io::ErrorKind::Other, err))
164 + Err(io::Error::other(err))
|
|
|
build-msrv-shadowsocks (macos-latest)
The macos-latest label will migrate to macOS 26 beginning June 15, 2026. For more information see https://github.com/actions/runner-images/issues/14167
|
|
build-msrv-shadowsocks-service (macos-latest)
The macos-latest label will migrate to macOS 26 beginning June 15, 2026. For more information see https://github.com/actions/runner-images/issues/14167
|
|
build-msrv-shadowsocks-rust (macos-latest)
The macos-latest label will migrate to macOS 26 beginning June 15, 2026. For more information see https://github.com/actions/runner-images/issues/14167
|