[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] 104ce065b217f4c2d1b91f0fff160cfc3d8ddcfd [INFO] checking cty123/RustProxy against try#3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f for pr-87248 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcty123%2FRustProxy" "/workspace/builds/worker-11/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/cty123/RustProxy on toolchain 3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "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-11/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" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded env_logger v0.9.0 [INFO] [stderr] Downloaded webpki-roots v0.22.0 [INFO] [stderr] Downloaded webpki v0.22.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-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e188ced9d13186fcafadec3be610df592afffbdc59409d4d5277ef566d49b9c1 [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" "e188ced9d13186fcafadec3be610df592afffbdc59409d4d5277ef566d49b9c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e188ced9d13186fcafadec3be610df592afffbdc59409d4d5277ef566d49b9c1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e188ced9d13186fcafadec3be610df592afffbdc59409d4d5277ef566d49b9c1", kill_on_drop: false }` [INFO] [stdout] e188ced9d13186fcafadec3be610df592afffbdc59409d4d5277ef566d49b9c1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f45445cc1fcae1418b35aac0ebf5b5d84d8cab70e9d290b24b798713006f570b [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" "f45445cc1fcae1418b35aac0ebf5b5d84d8cab70e9d290b24b798713006f570b", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.71 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling futures-core v0.3.16 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking futures-sink v0.3.16 [INFO] [stderr] Compiling futures-task v0.3.16 [INFO] [stderr] Checking bytes v1.0.1 [INFO] [stderr] Checking futures-io v0.3.16 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Compiling serde_json v1.0.64 [INFO] [stderr] Compiling async-trait v0.1.50 [INFO] [stderr] Checking regex-syntax v0.6.24 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Checking lock_api v0.4.4 [INFO] [stderr] Checking instant v0.1.9 [INFO] [stderr] Compiling proc-macro2 v1.0.26 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking ring v0.16.20 [INFO] [stderr] Checking parking_lot v0.11.1 [INFO] [stderr] Compiling tokio v1.9.0 [INFO] [stderr] Compiling futures-macro v0.3.16 [INFO] [stderr] Compiling futures-util v0.3.16 [INFO] [stderr] Checking futures-channel v0.3.16 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking mio v0.7.11 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking regex v1.5.2 [INFO] [stderr] Checking webpki v0.21.4 [INFO] [stderr] Checking sct v0.6.1 [INFO] [stderr] Checking webpki v0.22.0 [INFO] [stderr] Checking webpki-roots v0.22.0 [INFO] [stderr] Checking rustls v0.19.1 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Compiling tokio-macros v1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.125 [INFO] [stderr] Checking futures-executor v0.3.16 [INFO] [stderr] Checking futures v0.3.16 [INFO] [stderr] Checking serde v1.0.125 [INFO] [stderr] Checking tokio-rustls v0.22.0 [INFO] [stderr] Checking tokio-stream v0.1.7 [INFO] [stderr] Checking tokio-util v0.6.7 [INFO] [stderr] Checking trojan-rust v0.1.0 (/opt/rustwide/workdir) [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] = note: `#[warn(unused_imports)]` on by default [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 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 import: `UDP` [INFO] [stdout] --> src/protocol/trojan/parser.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::protocol::common::command::{CONNECT, UDP}; [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: `AsyncRead`, `AsyncWrite` [INFO] [stdout] --> src/proxy/handler.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use tokio::io::{AsyncRead, AsyncWrite}; [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] = note: `#[warn(unused_imports)]` on by default [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 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 import: `UDP` [INFO] [stdout] --> src/protocol/trojan/parser.rs:9:49 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::protocol::common::command::{CONNECT, UDP}; [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: `AsyncRead`, `AsyncWrite` [INFO] [stdout] --> src/proxy/handler.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use tokio::io::{AsyncRead, AsyncWrite}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/protocol/trojan/parser.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 26 | UDP_ASSOCIATE => UDP_ASSOCIATE, [INFO] [stdout] | ------------- matches any value [INFO] [stdout] 27 | _ => return Err(Error::new(ErrorKind::InvalidInput, "Unsupported command")), [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:44:41 [INFO] [stdout] | [INFO] [stdout] 44 | 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] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:49:44 [INFO] [stdout] | [INFO] [stdout] 49 | 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: unused variable: `outbound_config` [INFO] [stdout] --> src/proxy/tcp_server.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | outbound_config: OutboundConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbound_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/protocol/trojan/parser.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 26 | UDP_ASSOCIATE => UDP_ASSOCIATE, [INFO] [stdout] | ------------- matches any value [INFO] [stdout] 27 | _ => return Err(Error::new(ErrorKind::InvalidInput, "Unsupported command")), [INFO] [stdout] | ^ unreachable pattern [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:44:41 [INFO] [stdout] | [INFO] [stdout] 44 | 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] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cx` [INFO] [stdout] --> src/infra/udp/stream.rs:49:44 [INFO] [stdout] | [INFO] [stdout] 49 | 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: unused variable: `outbound_config` [INFO] [stdout] --> src/proxy/tcp_server.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | outbound_config: OutboundConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outbound_config` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `connect` [INFO] [stdout] --> src/infra/udp/stream.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | pub async fn connect(addr: A) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `version` [INFO] [stdout] --> src/protocol/socks5/base.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | version: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rsv` [INFO] [stdout] --> src/protocol/socks5/base.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | rsv: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ClientHello` [INFO] [stdout] --> src/protocol/socks5/base.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ClientHello { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `request_addr_port` [INFO] [stdout] --> src/protocol/socks5/base.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn request_addr_port(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `transport_protocol` [INFO] [stdout] --> src/protocol/common/request.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | transport_protocol: TransportProtocol, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `transport_protocol` [INFO] [stdout] --> src/protocol/common/request.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn transport_protocol(self) -> TransportProtocol { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CRLF` [INFO] [stdout] --> src/protocol/trojan/base.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | const CRLF: u16 = 0x0D0A; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `hex` [INFO] [stdout] --> src/protocol/trojan/base.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | hex: [u8; 56], [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/trojan/base.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `addr_len` [INFO] [stdout] --> src/protocol/trojan/base.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | addr_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_bytes` [INFO] [stdout] --> src/protocol/trojan/base.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn to_bytes(&self) -> Vec { [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: associated function is never used: `connect` [INFO] [stdout] --> src/infra/udp/stream.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | pub async fn connect(addr: A) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `version` [INFO] [stdout] --> src/protocol/socks5/base.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | version: u8, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `rsv` [INFO] [stdout] --> src/protocol/socks5/base.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | rsv: u8, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `ClientHello` [INFO] [stdout] --> src/protocol/socks5/base.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct ClientHello { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/socks5/base.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `request_addr_port` [INFO] [stdout] --> src/protocol/socks5/base.rs:88:12 [INFO] [stdout] | [INFO] [stdout] 88 | pub fn request_addr_port(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `transport_protocol` [INFO] [stdout] --> src/protocol/common/request.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | transport_protocol: TransportProtocol, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `transport_protocol` [INFO] [stdout] --> src/protocol/common/request.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn transport_protocol(self) -> TransportProtocol { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `CRLF` [INFO] [stdout] --> src/protocol/trojan/base.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | const CRLF: u16 = 0x0D0A; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `hex` [INFO] [stdout] --> src/protocol/trojan/base.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | hex: [u8; 56], [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `atype` [INFO] [stdout] --> src/protocol/trojan/base.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | atype: u8, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `addr_len` [INFO] [stdout] --> src/protocol/trojan/base.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | addr_len: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `to_bytes` [INFO] [stdout] --> src/protocol/trojan/base.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn to_bytes(&self) -> Vec { [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: variable `UDP_ASSOCIATE` should have a snake case name [INFO] [stdout] --> src/protocol/trojan/parser.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | UDP_ASSOCIATE => UDP_ASSOCIATE, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `udp_associate` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `UDP_ASSOCIATE` should have a snake case name [INFO] [stdout] --> src/protocol/trojan/parser.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | UDP_ASSOCIATE => UDP_ASSOCIATE, [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to snake case: `udp_associate` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 47 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 47 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 15s [INFO] running `Command { std: "docker" "inspect" "f45445cc1fcae1418b35aac0ebf5b5d84d8cab70e9d290b24b798713006f570b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f45445cc1fcae1418b35aac0ebf5b5d84d8cab70e9d290b24b798713006f570b", kill_on_drop: false }` [INFO] [stdout] f45445cc1fcae1418b35aac0ebf5b5d84d8cab70e9d290b24b798713006f570b