[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] checking cty123/RustProxy against try#ddfd70ee3c3748e597b32f416b0d15a4f6e37685 for pr-87050 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcty123%2FRustProxy" "/workspace/builds/worker-8/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/cty123/RustProxy on toolchain ddfd70ee3c3748e597b32f416b0d15a4f6e37685 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "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-8/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" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded portpicker v0.1.0 [INFO] [stderr] Downloaded regex v1.5.2 [INFO] [stderr] Downloaded regex-syntax v0.6.24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d098acd2bea77267d64eabb4e28c90c92f1bc463f900b8658c781e762208a9ed [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" "d098acd2bea77267d64eabb4e28c90c92f1bc463f900b8658c781e762208a9ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d098acd2bea77267d64eabb4e28c90c92f1bc463f900b8658c781e762208a9ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d098acd2bea77267d64eabb4e28c90c92f1bc463f900b8658c781e762208a9ed", kill_on_drop: false }` [INFO] [stdout] d098acd2bea77267d64eabb4e28c90c92f1bc463f900b8658c781e762208a9ed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "+ddfd70ee3c3748e597b32f416b0d15a4f6e37685" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8f9d095412817f2202f260a9c9d96538922fc2907a9dfda029478e5f8d46a182 [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" "8f9d095412817f2202f260a9c9d96538922fc2907a9dfda029478e5f8d46a182", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.26 [INFO] [stderr] Compiling syn v1.0.71 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Checking once_cell v1.7.2 [INFO] [stderr] Compiling cc v1.0.67 [INFO] [stderr] Checking pin-project-lite v0.2.6 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Compiling futures-channel v0.3.15 [INFO] [stderr] Checking futures-io v0.3.15 [INFO] [stderr] Compiling serde v1.0.125 [INFO] [stderr] Checking regex-syntax v0.6.24 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking itoa v0.4.7 [INFO] [stderr] Compiling tokio v1.8.0 [INFO] [stderr] Compiling futures-util v0.3.15 [INFO] [stderr] Checking instant v0.1.9 [INFO] [stderr] Checking mio v0.7.11 [INFO] [stderr] Checking itertools v0.10.0 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking parking_lot v0.11.1 [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 quote v1.0.9 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking regex v1.5.2 [INFO] [stderr] Checking portpicker v0.1.0 [INFO] [stderr] Checking env_logger v0.8.3 [INFO] [stderr] Checking webpki v0.21.4 [INFO] [stderr] Checking sct v0.6.1 [INFO] [stderr] Checking rustls v0.19.1 [INFO] [stderr] Checking webpki-roots v0.21.1 [INFO] [stderr] Checking serde_json v1.0.64 [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] Checking futures-executor v0.3.15 [INFO] [stderr] Checking tokio-util v0.6.7 [INFO] [stderr] Checking tokio-rustls v0.22.0 [INFO] [stderr] Checking tokio-stream v0.1.6 [INFO] [stderr] Checking futures v0.3.15 [INFO] [stderr] Checking 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 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 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 `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: 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: 60 warnings emitted [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 1m 08s [INFO] running `Command { std: "docker" "inspect" "8f9d095412817f2202f260a9c9d96538922fc2907a9dfda029478e5f8d46a182", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f9d095412817f2202f260a9c9d96538922fc2907a9dfda029478e5f8d46a182", kill_on_drop: false }` [INFO] [stdout] 8f9d095412817f2202f260a9c9d96538922fc2907a9dfda029478e5f8d46a182