[INFO] cloning repository https://github.com/cty123/RustProxy [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cty123/RustProxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcty123%2FRustProxy", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcty123%2FRustProxy'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a75663dd5cb3a8f40585d54c0346ccbe932ac61f [INFO] testing cty123/RustProxy against try#ecabaf78506b7a4668d42dc20268c086b93f0fad for pr-87041 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcty123%2FRustProxy" "/workspace/builds/worker-1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/cty123/RustProxy on toolchain ecabaf78506b7a4668d42dc20268c086b93f0fad [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/cty123/RustProxy [INFO] finished tweaking git repo https://github.com/cty123/RustProxy [INFO] tweaked toml for git repo https://github.com/cty123/RustProxy written to /workspace/builds/worker-1/source/Cargo.toml [INFO] crate git repo https://github.com/cty123/RustProxy already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded portpicker v0.1.0 [INFO] [stderr] Downloaded regex-syntax v0.6.24 [INFO] [stderr] Downloaded regex v1.5.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 4727378565ba07a79042db2a771adbdd461d97643183bce6240b22e58f2e3c40 [INFO] running `Command { std: "docker" "start" "-a" "4727378565ba07a79042db2a771adbdd461d97643183bce6240b22e58f2e3c40", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4727378565ba07a79042db2a771adbdd461d97643183bce6240b22e58f2e3c40", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4727378565ba07a79042db2a771adbdd461d97643183bce6240b22e58f2e3c40", kill_on_drop: false }` [INFO] [stdout] 4727378565ba07a79042db2a771adbdd461d97643183bce6240b22e58f2e3c40 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 681e41e090efc56123e4ae62d006d7227a064cf07144f7b163b683dc4844390c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "681e41e090efc56123e4ae62d006d7227a064cf07144f7b163b683dc4844390c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.94 [INFO] [stderr] Compiling syn v1.0.71 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling once_cell v1.7.2 [INFO] [stderr] Compiling untrusted v0.7.1 [INFO] [stderr] Compiling spin v0.5.2 [INFO] [stderr] Compiling futures-channel v0.3.15 [INFO] [stderr] Compiling futures-io v0.3.15 [INFO] [stderr] Compiling serde v1.0.125 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Compiling regex-syntax v0.6.24 [INFO] [stderr] Compiling itoa v0.4.7 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling tokio v1.8.0 [INFO] [stderr] Compiling futures-util v0.3.15 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling lock_api v0.4.4 [INFO] [stderr] Compiling itertools v0.10.0 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling parking_lot_core v0.8.3 [INFO] [stderr] Compiling signal-hook-registry v1.3.0 [INFO] [stderr] Compiling mio v0.7.11 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling parking_lot v0.11.1 [INFO] [stderr] Compiling regex v1.5.2 [INFO] [stderr] Compiling portpicker v0.1.0 [INFO] [stderr] Compiling webpki v0.21.4 [INFO] [stderr] Compiling sct v0.6.1 [INFO] [stderr] Compiling rustls v0.19.1 [INFO] [stderr] Compiling webpki-roots v0.21.1 [INFO] [stderr] Compiling env_logger v0.8.3 [INFO] [stderr] Compiling tokio-macros v1.1.0 [INFO] [stderr] Compiling futures-macro v0.3.15 [INFO] [stderr] Compiling async-trait v0.1.50 [INFO] [stderr] Compiling futures-executor v0.3.15 [INFO] [stderr] Compiling futures v0.3.15 [INFO] [stderr] Compiling tokio-stream v0.1.6 [INFO] [stderr] Compiling tokio-rustls v0.22.0 [INFO] [stderr] Compiling tokio-util v0.6.7 [INFO] [stderr] Compiling rust-proxy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/main.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::net::{TcpListener, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_rustls::TlsAcceptor` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio_rustls::TlsAcceptor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/transport/tcp.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/transport/tcp.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::net::{TcpStream, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncReadExt` [INFO] [stdout] --> src/transport/tcp.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::io::{AsyncRead, AsyncWrite, AsyncReadExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::infra::udp::stream::UdpStream` [INFO] [stdout] --> src/transport/tcp.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::infra::udp::stream::UdpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::protocol::common::command::UDP` [INFO] [stdout] --> src/transport/tcp.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::protocol::common::command::UDP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error` [INFO] [stdout] --> src/protocol/trojan/outbound.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Result, Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/protocol/trojan/packet.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Result` [INFO] [stdout] --> src/protocol/trojan/packet.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{Result, Error, ErrorKind}; [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/protocol/trojan/packet.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Poll` [INFO] [stdout] --> src/protocol/trojan/packet.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::task::{Context, Poll}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/protocol/trojan/packet.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/protocol/trojan/packet.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/protocol/trojan/packet.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, `BytesMut` [INFO] [stdout] --> src/protocol/trojan/packet.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut, Buf}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::UdpSocket` [INFO] [stdout] --> src/protocol/trojan/packet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncRead`, `AsyncWrite`, `ReadBuf` [INFO] [stdout] --> src/protocol/trojan/packet.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ATYPE_DOMAIN_NAME`, `ATYPE_IPV4`, `ATYPE_IPV6`, `IPV4_SIZE`, `IPV6_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::protocol::common::addr::{ATYPE_IPV4, ATYPE_IPV6, ATYPE_DOMAIN_NAME, IPV4_SIZE, IPV6_SIZE}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InboundConfig`, `OutboundConfig` [INFO] [stdout] --> src/config/parser.rs:1:27 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::base::{InboundConfig, OutboundConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/config/parser.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/config/parser.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/infra/udp/stream.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{Result, Error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/infra/udp/stream.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `portpicker` [INFO] [stdout] --> src/infra/udp/stream.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use portpicker; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/tcp.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mode` [INFO] [stdout] --> src/transport/tcp.rs:21:51 [INFO] [stdout] | [INFO] [stdout] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:46:41 [INFO] [stdout] | [INFO] [stdout] 46 | fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:51:44 [INFO] [stdout] | [INFO] [stdout] 51 | fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | let (mut socket, _) = listener.accept().await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dial` [INFO] [stdout] --> src/transport/tcp.rs:64:14 [INFO] [stdout] | [INFO] [stdout] 64 | pub async fn dial(addr_port: String) -> io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dial_tls` [INFO] [stdout] --> src/transport/tcp.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | pub async fn dial_tls(addr_port: String) -> io::Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `version` [INFO] [stdout] --> src/protocol/socks5/base.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | version: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rsv` [INFO] [stdout] --> src/protocol/socks5/base.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rsv: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ClientHello` [INFO] [stdout] --> src/protocol/socks5/base.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ClientHello { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `DOMAIN_NAME_SIZE` [INFO] [stdout] --> src/protocol/common/addr.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub const DOMAIN_NAME_SIZE: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Domain` [INFO] [stdout] --> src/protocol/common/addr.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | Domain(DomainName), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ATYPE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | const STATE_ATYPE: u8 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ADDR_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | const STATE_ADDR_SIZE: u8 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ADDR` [INFO] [stdout] --> src/protocol/trojan/packet.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | const STATE_ADDR: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PORT` [INFO] [stdout] --> src/protocol/trojan/packet.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | const STATE_PORT: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PAYLOAD_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | const STATE_PAYLOAD_SIZE: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_CRLF` [INFO] [stdout] --> src/protocol/trojan/packet.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | const STATE_CRLF: u8 = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PAYLOAD` [INFO] [stdout] --> src/protocol/trojan/packet.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | const STATE_PAYLOAD: u8 = 6; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_ATYPE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | const BYTES_ATYPE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_ADDR_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | const BYTES_ADDR_SIZE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_PORT` [INFO] [stdout] --> src/protocol/trojan/packet.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | const BYTES_PORT: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_PAYLOAD_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | const BYTES_PAYLOAD_SIZE: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_CRLF` [INFO] [stdout] --> src/protocol/trojan/packet.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | const BYTES_CRLF: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `InboundConfig` [INFO] [stdout] --> src/config/base.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct InboundConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `OutboundConfig` [INFO] [stdout] --> src/config/base.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct OutboundConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `reader_config` [INFO] [stdout] --> src/config/parser.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn reader_config() -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `connect` [INFO] [stdout] --> src/infra/udp/stream.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn connect(addr: A) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `setup_certificate` [INFO] [stdout] --> src/main.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn setup_certificate(cert_path: &str, key_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `load_certs` [INFO] [stdout] --> src/main.rs:74:4 [INFO] [stdout] | [INFO] [stdout] 74 | fn load_certs(path: &str) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `load_keys` [INFO] [stdout] --> src/main.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn load_keys(path: &str) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transport/tcp.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / match futures::future::join(tokio::io::copy(&mut source_read, &mut target_write), [INFO] [stdout] 54 | | tokio::io::copy(&mut target_read, &mut source_write)) [INFO] [stdout] 55 | | .await { [INFO] [stdout] 56 | | (Err(e), _) | (_, Err(e)) => Err(e.to_string()), [INFO] [stdout] 57 | | _ => Ok(()), [INFO] [stdout] 58 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 60 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 56.49s [INFO] running `Command { std: "docker" "inspect" "681e41e090efc56123e4ae62d006d7227a064cf07144f7b163b683dc4844390c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "681e41e090efc56123e4ae62d006d7227a064cf07144f7b163b683dc4844390c", kill_on_drop: false }` [INFO] [stdout] 681e41e090efc56123e4ae62d006d7227a064cf07144f7b163b683dc4844390c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dc32a76b18675fce130ac586bb6f240ba5d285ca71f7ead86a0389eade0a3367 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "dc32a76b18675fce130ac586bb6f240ba5d285ca71f7ead86a0389eade0a3367", kill_on_drop: false }` [INFO] [stderr] Compiling rust-proxy v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/main.rs:2:31 [INFO] [stdout] | [INFO] [stdout] 2 | use tokio::net::{TcpListener, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_rustls::TlsAcceptor` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio_rustls::TlsAcceptor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `warn` [INFO] [stdout] --> src/transport/tcp.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, warn}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UdpSocket` [INFO] [stdout] --> src/transport/tcp.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio::net::{TcpStream, UdpSocket}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncReadExt` [INFO] [stdout] --> src/transport/tcp.rs:8:40 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::io::{AsyncRead, AsyncWrite, AsyncReadExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::infra::udp::stream::UdpStream` [INFO] [stdout] --> src/transport/tcp.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crate::infra::udp::stream::UdpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::protocol::common::command::UDP` [INFO] [stdout] --> src/transport/tcp.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::protocol::common::command::UDP; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error` [INFO] [stdout] --> src/protocol/trojan/outbound.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Result, Error, ErrorKind}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info`, `warn` [INFO] [stdout] --> src/protocol/trojan/packet.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrorKind`, `Error`, `Result` [INFO] [stdout] --> src/protocol/trojan/packet.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{Result, Error, ErrorKind}; [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/protocol/trojan/packet.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Poll` [INFO] [stdout] --> src/protocol/trojan/packet.rs:5:17 [INFO] [stdout] | [INFO] [stdout] 5 | use std::task::{Context, Poll}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cmp::min` [INFO] [stdout] --> src/protocol/trojan/packet.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::cmp::min; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/protocol/trojan/packet.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::borrow::Borrow` [INFO] [stdout] --> src/protocol/trojan/packet.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::borrow::Borrow; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf`, `BytesMut` [INFO] [stdout] --> src/protocol/trojan/packet.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | use bytes::{BytesMut, BufMut, Buf}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::net::UdpSocket` [INFO] [stdout] --> src/protocol/trojan/packet.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncRead`, `AsyncWrite`, `ReadBuf` [INFO] [stdout] --> src/protocol/trojan/packet.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ATYPE_DOMAIN_NAME`, `ATYPE_IPV4`, `ATYPE_IPV6`, `IPV4_SIZE`, `IPV6_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:14:37 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::protocol::common::addr::{ATYPE_IPV4, ATYPE_IPV6, ATYPE_DOMAIN_NAME, IPV4_SIZE, IPV6_SIZE}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `InboundConfig`, `OutboundConfig` [INFO] [stdout] --> src/config/parser.rs:1:27 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::config::base::{InboundConfig, OutboundConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/config/parser.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::BufReader` [INFO] [stdout] --> src/config/parser.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::BufReader; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/infra/udp/stream.rs:9:23 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{Result, Error}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/infra/udp/stream.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `portpicker` [INFO] [stdout] --> src/infra/udp/stream.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use portpicker; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/transport/tcp.rs:21:27 [INFO] [stdout] | [INFO] [stdout] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stdout] | ----^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mode` [INFO] [stdout] --> src/transport/tcp.rs:21:51 [INFO] [stdout] | [INFO] [stdout] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mode` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:46:41 [INFO] [stdout] | [INFO] [stdout] 46 | fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:51:44 [INFO] [stdout] | [INFO] [stdout] 51 | fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:32:14 [INFO] [stdout] | [INFO] [stdout] 32 | let (mut socket, _) = listener.accept().await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dial` [INFO] [stdout] --> src/transport/tcp.rs:64:14 [INFO] [stdout] | [INFO] [stdout] 64 | pub async fn dial(addr_port: String) -> io::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `dial_tls` [INFO] [stdout] --> src/transport/tcp.rs:68:14 [INFO] [stdout] | [INFO] [stdout] 68 | pub async fn dial_tls(addr_port: String) -> io::Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `version` [INFO] [stdout] --> src/protocol/socks5/base.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | version: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rsv` [INFO] [stdout] --> src/protocol/socks5/base.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rsv: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ClientHello` [INFO] [stdout] --> src/protocol/socks5/base.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct ClientHello { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `DOMAIN_NAME_SIZE` [INFO] [stdout] --> src/protocol/common/addr.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub const DOMAIN_NAME_SIZE: usize = 256; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Domain` [INFO] [stdout] --> src/protocol/common/addr.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | Domain(DomainName), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ATYPE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | const STATE_ATYPE: u8 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ADDR_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | const STATE_ADDR_SIZE: u8 = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_ADDR` [INFO] [stdout] --> src/protocol/trojan/packet.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | const STATE_ADDR: u8 = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PORT` [INFO] [stdout] --> src/protocol/trojan/packet.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | const STATE_PORT: u8 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PAYLOAD_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:20:1 [INFO] [stdout] | [INFO] [stdout] 20 | const STATE_PAYLOAD_SIZE: u8 = 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_CRLF` [INFO] [stdout] --> src/protocol/trojan/packet.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | const STATE_CRLF: u8 = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `STATE_PAYLOAD` [INFO] [stdout] --> src/protocol/trojan/packet.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | const STATE_PAYLOAD: u8 = 6; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_ATYPE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | const BYTES_ATYPE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_ADDR_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:25:1 [INFO] [stdout] | [INFO] [stdout] 25 | const BYTES_ADDR_SIZE: usize = 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_PORT` [INFO] [stdout] --> src/protocol/trojan/packet.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | const BYTES_PORT: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_PAYLOAD_SIZE` [INFO] [stdout] --> src/protocol/trojan/packet.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | const BYTES_PAYLOAD_SIZE: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `BYTES_CRLF` [INFO] [stdout] --> src/protocol/trojan/packet.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | const BYTES_CRLF: usize = 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `InboundConfig` [INFO] [stdout] --> src/config/base.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct InboundConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `OutboundConfig` [INFO] [stdout] --> src/config/base.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct OutboundConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `reader_config` [INFO] [stdout] --> src/config/parser.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn reader_config() -> (){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `connect` [INFO] [stdout] --> src/infra/udp/stream.rs:24:18 [INFO] [stdout] | [INFO] [stdout] 24 | pub async fn connect(addr: A) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `setup_certificate` [INFO] [stdout] --> src/main.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn setup_certificate(cert_path: &str, key_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `load_certs` [INFO] [stdout] --> src/main.rs:74:4 [INFO] [stdout] | [INFO] [stdout] 74 | fn load_certs(path: &str) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `load_keys` [INFO] [stdout] --> src/main.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn load_keys(path: &str) -> io::Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transport/tcp.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / match futures::future::join(tokio::io::copy(&mut source_read, &mut target_write), [INFO] [stdout] 54 | | tokio::io::copy(&mut target_read, &mut source_write)) [INFO] [stdout] 55 | | .await { [INFO] [stdout] 56 | | (Err(e), _) | (_, Err(e)) => Err(e.to_string()), [INFO] [stdout] 57 | | _ => Ok(()), [INFO] [stdout] 58 | | }; [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 60 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.39s [INFO] running `Command { std: "docker" "inspect" "dc32a76b18675fce130ac586bb6f240ba5d285ca71f7ead86a0389eade0a3367", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc32a76b18675fce130ac586bb6f240ba5d285ca71f7ead86a0389eade0a3367", kill_on_drop: false }` [INFO] [stdout] dc32a76b18675fce130ac586bb6f240ba5d285ca71f7ead86a0389eade0a3367 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 3d5484dcfefc1c14550d83a933eb31d0cb65210b8456c421879f123e3ec563a3 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "3d5484dcfefc1c14550d83a933eb31d0cb65210b8456c421879f123e3ec563a3", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `UdpSocket` [INFO] [stderr] --> src/main.rs:2:31 [INFO] [stderr] | [INFO] [stderr] 2 | use tokio::net::{TcpListener, UdpSocket}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio_rustls::TlsAcceptor` [INFO] [stderr] --> src/main.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use tokio_rustls::TlsAcceptor; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `warn` [INFO] [stderr] --> src/transport/tcp.rs:1:17 [INFO] [stderr] | [INFO] [stderr] 1 | use log::{info, warn}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `UdpSocket` [INFO] [stderr] --> src/transport/tcp.rs:7:29 [INFO] [stderr] | [INFO] [stderr] 7 | use tokio::net::{TcpStream, UdpSocket}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AsyncReadExt` [INFO] [stderr] --> src/transport/tcp.rs:8:40 [INFO] [stderr] | [INFO] [stderr] 8 | use tokio::io::{AsyncRead, AsyncWrite, AsyncReadExt}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::infra::udp::stream::UdpStream` [INFO] [stderr] --> src/transport/tcp.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use crate::infra::udp::stream::UdpStream; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::protocol::common::command::UDP` [INFO] [stderr] --> src/transport/tcp.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use crate::protocol::common::command::UDP; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind`, `Error` [INFO] [stderr] --> src/protocol/trojan/outbound.rs:2:23 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{Result, Error, ErrorKind}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `info`, `warn` [INFO] [stderr] --> src/protocol/trojan/packet.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use log::{info, warn}; [INFO] [stderr] | ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind`, `Error`, `Result` [INFO] [stderr] --> src/protocol/trojan/packet.rs:3:15 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::{Result, Error, ErrorKind}; [INFO] [stderr] | ^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::pin::Pin` [INFO] [stderr] --> src/protocol/trojan/packet.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::pin::Pin; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Context`, `Poll` [INFO] [stderr] --> src/protocol/trojan/packet.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | use std::task::{Context, Poll}; [INFO] [stderr] | ^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::min` [INFO] [stderr] --> src/protocol/trojan/packet.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::cmp::min; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::TryInto` [INFO] [stderr] --> src/protocol/trojan/packet.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::convert::TryInto; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/protocol/trojan/packet.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufMut`, `Buf`, `BytesMut` [INFO] [stderr] --> src/protocol/trojan/packet.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | use bytes::{BytesMut, BufMut, Buf}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::net::UdpSocket` [INFO] [stderr] --> src/protocol/trojan/packet.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use tokio::net::UdpSocket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AsyncRead`, `AsyncWrite`, `ReadBuf` [INFO] [stderr] --> src/protocol/trojan/packet.rs:12:17 [INFO] [stderr] | [INFO] [stderr] 12 | use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ATYPE_DOMAIN_NAME`, `ATYPE_IPV4`, `ATYPE_IPV6`, `IPV4_SIZE`, `IPV6_SIZE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:14:37 [INFO] [stderr] | [INFO] [stderr] 14 | use crate::protocol::common::addr::{ATYPE_IPV4, ATYPE_IPV6, ATYPE_DOMAIN_NAME, IPV4_SIZE, IPV6_SIZE}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `InboundConfig`, `OutboundConfig` [INFO] [stderr] --> src/config/parser.rs:1:27 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::config::base::{InboundConfig, OutboundConfig}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/config/parser.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/config/parser.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Error` [INFO] [stderr] --> src/infra/udp/stream.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | use std::io::{Result, Error}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::TryInto` [INFO] [stderr] --> src/infra/udp/stream.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::convert::TryInto; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `portpicker` [INFO] [stderr] --> src/infra/udp/stream.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use portpicker; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/transport/tcp.rs:21:27 [INFO] [stderr] | [INFO] [stderr] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stderr] | ----^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mode` [INFO] [stderr] --> src/transport/tcp.rs:21:51 [INFO] [stderr] | [INFO] [stderr] 21 | pub async fn dispatch(mut inbound_stream: IO, mode: &str) -> Result<(), Error> [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_mode` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cx` [INFO] [stderr] --> src/infra/udp/stream.rs:46:41 [INFO] [stderr] | [INFO] [stderr] 46 | fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `cx` [INFO] [stderr] --> src/infra/udp/stream.rs:51:44 [INFO] [stderr] | [INFO] [stderr] 51 | fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_cx` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:32:14 [INFO] [stderr] | [INFO] [stderr] 32 | let (mut socket, _) = listener.accept().await?; [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dial` [INFO] [stderr] --> src/transport/tcp.rs:64:14 [INFO] [stderr] | [INFO] [stderr] 64 | pub async fn dial(addr_port: String) -> io::Result { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `dial_tls` [INFO] [stderr] --> src/transport/tcp.rs:68:14 [INFO] [stderr] | [INFO] [stderr] 68 | pub async fn dial_tls(addr_port: String) -> io::Result> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `version` [INFO] [stderr] --> src/protocol/socks5/base.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | version: u8, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `rsv` [INFO] [stderr] --> src/protocol/socks5/base.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | rsv: u8, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `atype` [INFO] [stderr] --> src/protocol/socks5/base.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | atype: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ClientHello` [INFO] [stderr] --> src/protocol/socks5/base.rs:14:12 [INFO] [stderr] | [INFO] [stderr] 14 | pub struct ClientHello { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `atype` [INFO] [stderr] --> src/protocol/socks5/base.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | atype: u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `DOMAIN_NAME_SIZE` [INFO] [stderr] --> src/protocol/common/addr.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub const DOMAIN_NAME_SIZE: usize = 256; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Domain` [INFO] [stderr] --> src/protocol/common/addr.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | Domain(DomainName), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_ATYPE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const STATE_ATYPE: u8 = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_ADDR_SIZE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | const STATE_ADDR_SIZE: u8 = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_ADDR` [INFO] [stderr] --> src/protocol/trojan/packet.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | const STATE_ADDR: u8 = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_PORT` [INFO] [stderr] --> src/protocol/trojan/packet.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | const STATE_PORT: u8 = 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_PAYLOAD_SIZE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | const STATE_PAYLOAD_SIZE: u8 = 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_CRLF` [INFO] [stderr] --> src/protocol/trojan/packet.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | const STATE_CRLF: u8 = 5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `STATE_PAYLOAD` [INFO] [stderr] --> src/protocol/trojan/packet.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const STATE_PAYLOAD: u8 = 6; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `BYTES_ATYPE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | const BYTES_ATYPE: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `BYTES_ADDR_SIZE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | const BYTES_ADDR_SIZE: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `BYTES_PORT` [INFO] [stderr] --> src/protocol/trojan/packet.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | const BYTES_PORT: usize = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `BYTES_PAYLOAD_SIZE` [INFO] [stderr] --> src/protocol/trojan/packet.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | const BYTES_PAYLOAD_SIZE: usize = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant is never used: `BYTES_CRLF` [INFO] [stderr] --> src/protocol/trojan/packet.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | const BYTES_CRLF: usize = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `InboundConfig` [INFO] [stderr] --> src/config/base.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | pub struct InboundConfig { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `OutboundConfig` [INFO] [stderr] --> src/config/base.rs:7:12 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct OutboundConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reader_config` [INFO] [stderr] --> src/config/parser.rs:5:4 [INFO] [stderr] | [INFO] [stderr] 5 | fn reader_config() -> (){ [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `connect` [INFO] [stderr] --> src/infra/udp/stream.rs:24:18 [INFO] [stderr] | [INFO] [stderr] 24 | pub async fn connect(addr: A) -> Result { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `setup_certificate` [INFO] [stderr] --> src/main.rs:62:4 [INFO] [stderr] | [INFO] [stderr] 62 | fn setup_certificate(cert_path: &str, key_path: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `load_certs` [INFO] [stderr] --> src/main.rs:74:4 [INFO] [stderr] | [INFO] [stderr] 74 | fn load_certs(path: &str) -> io::Result> { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `load_keys` [INFO] [stderr] --> src/main.rs:79:4 [INFO] [stderr] | [INFO] [stderr] 79 | fn load_keys(path: &str) -> io::Result> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/transport/tcp.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | / match futures::future::join(tokio::io::copy(&mut source_read, &mut target_write), [INFO] [stderr] 54 | | tokio::io::copy(&mut target_read, &mut source_write)) [INFO] [stderr] 55 | | .await { [INFO] [stderr] 56 | | (Err(e), _) | (_, Err(e)) => Err(e.to_string()), [INFO] [stderr] 57 | | _ => Ok(()), [INFO] [stderr] 58 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: 60 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/rust_proxy-e77008ab5f1ea60c) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3d5484dcfefc1c14550d83a933eb31d0cb65210b8456c421879f123e3ec563a3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d5484dcfefc1c14550d83a933eb31d0cb65210b8456c421879f123e3ec563a3", kill_on_drop: false }` [INFO] [stdout] 3d5484dcfefc1c14550d83a933eb31d0cb65210b8456c421879f123e3ec563a3