[INFO] cloning repository https://github.com/xiaocongyu66/freebuff-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xiaocongyu66/freebuff-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaocongyu66%2Ffreebuff-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaocongyu66%2Ffreebuff-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6f3d5ef91f2487f56e8962da0905e57b6952efce
[INFO] checking xiaocongyu66/freebuff-rs against 5c543b0b8c73c7b72bc8284ced4fb22ead15734d for pr-160186
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaocongyu66%2Ffreebuff-rs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/xiaocongyu66/freebuff-rs
[INFO] finished tweaking git repo https://github.com/xiaocongyu66/freebuff-rs
[INFO] tweaked toml for git repo https://github.com/xiaocongyu66/freebuff-rs written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xiaocongyu66/freebuff-rs on toolchain 5c543b0b8c73c7b72bc8284ced4fb22ead15734d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xiaocongyu66/freebuff-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded h3 v0.0.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b
[INFO] running `Command { std: "docker" "start" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b" "/opt/rustwide/cargo-home/bin/cargo" "+5c543b0b8c73c7b72bc8284ced4fb22ead15734d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.16.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.13
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling quinn-udp v0.5.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.4.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking icu_normalizer v2.3.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]    Compiling quinn v0.11.12
[INFO] [stderr]     Checking webpki-roots v1.0.9
[INFO] [stderr]     Checking tinyvec v1.13.3
[INFO] [stderr]     Checking lru-slab v0.1.3
[INFO] [stderr]     Checking hashbrown v0.17.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking thiserror v2.0.20
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking hashlink v0.12.2
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling axum-macros v0.5.1
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking futures-executor v0.3.34
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking futures v0.3.34
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking uuid v1.26.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rustls-webpki v0.103.15
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking hyper v1.11.1
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking h3 v0.0.8
[INFO] [stderr]     Checking tokio-stream v0.1.19
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking quinn-proto v0.11.18
[INFO] [stderr]     Checking tokio-rustls v0.26.5
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking rusqlite v0.40.2
[INFO] [stderr]     Checking h3-quinn v0.0.10
[INFO] [stderr]     Checking freebuff-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]   --> src/bin/relay_test.rs:18:33
[INFO] [stdout]    |
[INFO] [stdout] 18 | ...                   use tokio::io::AsyncReadExt;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncReadExt`
[INFO] [stdout]   --> src/bin/relay_test.rs:18:33
[INFO] [stdout]    |
[INFO] [stdout] 18 | ...                   use tokio::io::AsyncReadExt;
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CODEBUFF_API`
[INFO] [stdout]  --> src/creds.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::upstream::{self, CODEBUFF_API};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Stdio`
[INFO] [stdout]  --> src/relay.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Stdio;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/relay.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stdout]  --> src/relay.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::AsyncWriteExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `socks_addr_block`
[INFO] [stdout]  --> src/tunnel/hy2.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tunnel::outbound::{parse_host_port, pct_decode, socks_addr_block};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]    --> src/tunnel/hy2.rs:289:17
[INFO] [stdout]     |
[INFO] [stdout] 289 |             use tokio::net::ToSocketAddrs;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::IpAddr`
[INFO] [stdout]  --> src/tunnel/resolve.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::IpAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]  --> src/tunnel/resolve.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use tokio::net::ToSocketAddrs;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CODEBUFF_API`
[INFO] [stdout]  --> src/creds.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::upstream::{self, CODEBUFF_API};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rustls::TlsConnector`
[INFO] [stdout]  --> src/tunnel/tls_util.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_rustls::TlsConnector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tunnel::stream::BoxStream`
[INFO] [stdout]   --> src/tunnel/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::tunnel::stream::BoxStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http_body::Body as _`
[INFO] [stdout]  --> src/upstream.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use http_body::Body as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Stdio`
[INFO] [stdout]  --> src/relay.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Stdio;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/relay.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::io::AsyncWriteExt`
[INFO] [stdout]  --> src/relay.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use tokio::io::AsyncWriteExt;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `socks_addr_block`
[INFO] [stdout]  --> src/tunnel/hy2.rs:5:60
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::tunnel::outbound::{parse_host_port, pct_decode, socks_addr_block};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]    --> src/tunnel/hy2.rs:289:17
[INFO] [stdout]     |
[INFO] [stdout] 289 |             use tokio::net::ToSocketAddrs;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::IpAddr`
[INFO] [stdout]  --> src/tunnel/resolve.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::IpAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::net::ToSocketAddrs`
[INFO] [stdout]  --> src/tunnel/resolve.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     use tokio::net::ToSocketAddrs;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rustls::TlsConnector`
[INFO] [stdout]  --> src/tunnel/tls_util.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio_rustls::TlsConnector;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::tunnel::stream::BoxStream`
[INFO] [stdout]   --> src/tunnel/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::tunnel::stream::BoxStream;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `http_body::Body as _`
[INFO] [stdout]  --> src/upstream.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use http_body::Body as _;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gateway.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Ok(s) => {
[INFO] [stdout]     |             ----- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 143 |             Ok(s) => s,
[INFO] [stdout]     |             ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/gateway.rs:143:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Ok(s) => {
[INFO] [stdout]     |             ----- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 143 |             Ok(s) => s,
[INFO] [stdout]     |             ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/tunnel/hy2.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/tunnel/hy2.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyInit`
[INFO] [stdout]  --> src/tunnel/ss.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chacha20poly1305::aead::{Aead as ChaAead, KeyInit as ChaKeyInit};
[INFO] [stdout]   |                                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Aead`
[INFO] [stdout]  --> src/tunnel/ss.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chacha20poly1305::aead::{Aead as ChaAead, KeyInit as ChaKeyInit};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_port`
[INFO] [stdout]    --> src/admin.rs:311:9
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let by_port = id.parse::<u16>().ok();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_port`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `acct_try`
[INFO] [stdout]    --> src/gateway.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     for acct_try in 0..pool_len {
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_acct_try`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fp`
[INFO] [stdout]    --> src/gateway.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let fp = upstream::stable_fingerprint(&token);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_fp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/gateway.rs:253:22
[INFO] [stdout]     |
[INFO] [stdout] 253 |         if let Some((k, run_id, _)) = c.iter().find(|(k, _, _)| *k == key) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `guard`
[INFO] [stdout]    --> src/server.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let guard = match state.sem.acquire(false).await {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:215:10
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:328:10
[INFO] [stdout]     |
[INFO] [stdout] 328 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:419:10
[INFO] [stdout]     |
[INFO] [stdout] 419 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tunnel/ws.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn poll_flush(mut self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> std::task::Poll<std::io::Result<()>> {
[INFO] [stdout]     |                   ----^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]   --> src/auth_flow.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct AuthFlow {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub created_at: std::time::Instant,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FREE_SLOTS` is never used
[INFO] [stdout]  --> src/semaphore.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_FREE_SLOTS: usize = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FREE_MULTI` is never used
[INFO] [stdout]   --> src/semaphore.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_FREE_MULTI: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `defaults` is never used
[INFO] [stdout]   --> src/semaphore.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl TieredSemaphore {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn defaults() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tunneled_client` is never used
[INFO] [stdout]   --> src/tunnel_client.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn tunneled_client(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TTL` is never used
[INFO] [stdout]    --> src/gateway.rs:270:11
[INFO] [stdout]     |
[INFO] [stdout] 270 |     const TTL: Duration = Duration::from_secs(10 * 60);
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `layer_remaining` is never used
[INFO] [stdout]    --> src/pool.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl Pool {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn layer_remaining(&self, token: &str) -> Option<i64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config_path` and `log_path` are never read
[INFO] [stdout]   --> src/relay.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RelayNode {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub config_path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 18 |     pub log_path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `work_dir` and `host` are never read
[INFO] [stdout]   --> src/relay.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Relay {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 31 |     pub nodes: tokio::sync::Mutex<HashMap<String, RelayNode>>,
[INFO] [stdout] 32 |     pub work_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     pub host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_port` is never used
[INFO] [stdout]    --> src/relay.rs:354:10
[INFO] [stdout]     |
[INFO] [stdout] 354 | async fn wait_port(host: &str, port: u16, timeout_secs: u64) -> bool {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `share_link_to_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn share_link_to_outbound(link: &str) -> Result<(String, Value), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_info` is never used
[INFO] [stdout]    --> src/relay.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn user_info(rest: &str) -> (String, Option<String>) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `host_port` is never used
[INFO] [stdout]    --> src/relay.rs:396:4
[INFO] [stdout]     |
[INFO] [stdout] 396 | fn host_port(rest: &str) -> (String, u16) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vless_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn vless_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trojan_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:418:4
[INFO] [stdout]     |
[INFO] [stdout] 418 | fn trojan_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hysteria2_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:429:4
[INFO] [stdout]     |
[INFO] [stdout] 429 | fn hysteria2_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tuic_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:446:4
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn tuic_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socks_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:455:4
[INFO] [stdout]     |
[INFO] [stdout] 455 | fn socks_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:471:4
[INFO] [stdout]     |
[INFO] [stdout] 471 | fn http_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_transport_params` is never used
[INFO] [stdout]    --> src/relay.rs:488:4
[INFO] [stdout]     |
[INFO] [stdout] 488 | fn apply_transport_params(rest: &str, out: &mut Value) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vmess_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:607:4
[INFO] [stdout]     |
[INFO] [stdout] 607 | fn vmess_outbound(link: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shadowsocks_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:624:4
[INFO] [stdout]     |
[INFO] [stdout] 624 | fn shadowsocks_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_target` is never used
[INFO] [stdout]   --> src/tunnel/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn read_target(is_http: bool, sock: &mut (impl tokio::io::AsyncRead + Unpin)) -> Result<(String, u16), String> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve_inbound_conn` is never used
[INFO] [stdout]   --> src/tunnel/mod.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub async fn serve_inbound_conn(is_http: bool, mut sock: tokio::net::TcpStream, ob: Arc<Outbound>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_http_head` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub async fn read_http_head(sock: &mut (impl tokio::io::AsyncRead + Unpin)) -> Result<(String, u16, Vec<u8>), String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `head_is_connect` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn head_is_connect(head: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bidirectional` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:176:14
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub async fn bidirectional(a: &mut tokio::net::TcpStream, b: &mut crate::tunnel::stream::BoxStream) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conn` is never read
[INFO] [stdout]   --> src/tunnel/hy2.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Hy2Io {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     conn: quinn::Connection,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_addr_pair` is never used
[INFO] [stdout]    --> src/tunnel/salamander.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn local_addr_pair(a: &SocketAddr) -> Option<SocketAddr> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loopback_of` is never used
[INFO] [stdout]    --> src/tunnel/salamander.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn loopback_of(a: &SocketAddr) -> SocketAddr {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSTREAM_HOST` is never used
[INFO] [stdout]   --> src/upstream.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const UPSTREAM_HOST: &str = "www.codebuff.com";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `up_via` is never used
[INFO] [stdout]   --> src/upstream.rs:92:14
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub async fn up_via(
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_normal_client_behavior` is never used
[INFO] [stdout]    --> src/upstream.rs:294:14
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub async fn run_normal_client_behavior(base: &str, token: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_normal_client_behavior_freq` is never used
[INFO] [stdout]    --> src/upstream.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub async fn run_normal_client_behavior_freq(base: &str, token: &str, reward_model: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `imp_url_path` is never used
[INFO] [stdout]    --> src/upstream.rs:413:4
[INFO] [stdout]     |
[INFO] [stdout] 413 | fn imp_url_path(url: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_session` is never used
[INFO] [stdout]    --> src/upstream.rs:530:14
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub async fn ensure_session(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/usage.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     c.execute_batch(
[INFO] [stdout] 15 | |         "PRAGMA journal_mode=WAL;
[INFO] [stdout] 16 | |          CREATE TABLE IF NOT EXISTS requests (
[INFO] [stdout] 17 | |             id INTEGER PRIMARY KEY AUTOINCREMENT,
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |          CREATE INDEX IF NOT EXISTS idx_requests_ts ON requests(ts);",
[INFO] [stdout] 30 | |         );
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let _unused = c.execute_batch(
[INFO] [stdout]    |     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/tunnel/hy2.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/tunnel/hy2.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `KeyInit`
[INFO] [stdout]  --> src/tunnel/ss.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chacha20poly1305::aead::{Aead as ChaAead, KeyInit as ChaKeyInit};
[INFO] [stdout]   |                                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Aead`
[INFO] [stdout]  --> src/tunnel/ss.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use chacha20poly1305::aead::{Aead as ChaAead, KeyInit as ChaKeyInit};
[INFO] [stdout]   |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `by_port`
[INFO] [stdout]    --> src/admin.rs:311:9
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let by_port = id.parse::<u16>().ok();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_by_port`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `acct_try`
[INFO] [stdout]    --> src/gateway.rs:123:9
[INFO] [stdout]     |
[INFO] [stdout] 123 |     for acct_try in 0..pool_len {
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_acct_try`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fp`
[INFO] [stdout]    --> src/gateway.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let fp = upstream::stable_fingerprint(&token);
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_fp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]    --> src/gateway.rs:253:22
[INFO] [stdout]     |
[INFO] [stdout] 253 |         if let Some((k, run_id, _)) = c.iter().find(|(k, _, _)| *k == key) {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `guard`
[INFO] [stdout]    --> src/server.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |     let guard = match state.sem.acquire(false).await {
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:215:10
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:328:10
[INFO] [stdout]     |
[INFO] [stdout] 328 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `parts`
[INFO] [stdout]    --> src/server.rs:419:10
[INFO] [stdout]     |
[INFO] [stdout] 419 |     let (parts, body_bytes) = exec.into_parts();
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_parts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tunnel/ws.rs:156:19
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn poll_flush(mut self: std::pin::Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> std::task::Poll<std::io::Result<()>> {
[INFO] [stdout]     |                   ----^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at` is never read
[INFO] [stdout]   --> src/auth_flow.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct AuthFlow {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub created_at: std::time::Instant,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FREE_SLOTS` is never used
[INFO] [stdout]  --> src/semaphore.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_FREE_SLOTS: usize = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_FREE_MULTI` is never used
[INFO] [stdout]   --> src/semaphore.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_FREE_MULTI: usize = 3;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `defaults` is never used
[INFO] [stdout]   --> src/semaphore.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl TieredSemaphore {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn defaults() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tunneled_client` is never used
[INFO] [stdout]   --> src/tunnel_client.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn tunneled_client(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TTL` is never used
[INFO] [stdout]    --> src/gateway.rs:270:11
[INFO] [stdout]     |
[INFO] [stdout] 270 |     const TTL: Duration = Duration::from_secs(10 * 60);
[INFO] [stdout]     |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `layer_remaining` is never used
[INFO] [stdout]    --> src/pool.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl Pool {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn layer_remaining(&self, token: &str) -> Option<i64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config_path` and `log_path` are never read
[INFO] [stdout]   --> src/relay.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RelayNode {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub config_path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 18 |     pub log_path: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `work_dir` and `host` are never read
[INFO] [stdout]   --> src/relay.rs:32:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Relay {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 31 |     pub nodes: tokio::sync::Mutex<HashMap<String, RelayNode>>,
[INFO] [stdout] 32 |     pub work_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     pub host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wait_port` is never used
[INFO] [stdout]    --> src/relay.rs:354:10
[INFO] [stdout]     |
[INFO] [stdout] 354 | async fn wait_port(host: &str, port: u16, timeout_secs: u64) -> bool {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `share_link_to_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn share_link_to_outbound(link: &str) -> Result<(String, Value), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `user_info` is never used
[INFO] [stdout]    --> src/relay.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn user_info(rest: &str) -> (String, Option<String>) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `host_port` is never used
[INFO] [stdout]    --> src/relay.rs:396:4
[INFO] [stdout]     |
[INFO] [stdout] 396 | fn host_port(rest: &str) -> (String, u16) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vless_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn vless_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trojan_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:418:4
[INFO] [stdout]     |
[INFO] [stdout] 418 | fn trojan_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hysteria2_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:429:4
[INFO] [stdout]     |
[INFO] [stdout] 429 | fn hysteria2_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tuic_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:446:4
[INFO] [stdout]     |
[INFO] [stdout] 446 | fn tuic_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `socks_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:455:4
[INFO] [stdout]     |
[INFO] [stdout] 455 | fn socks_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:471:4
[INFO] [stdout]     |
[INFO] [stdout] 471 | fn http_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_transport_params` is never used
[INFO] [stdout]    --> src/relay.rs:488:4
[INFO] [stdout]     |
[INFO] [stdout] 488 | fn apply_transport_params(rest: &str, out: &mut Value) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vmess_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:607:4
[INFO] [stdout]     |
[INFO] [stdout] 607 | fn vmess_outbound(link: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shadowsocks_outbound` is never used
[INFO] [stdout]    --> src/relay.rs:624:4
[INFO] [stdout]     |
[INFO] [stdout] 624 | fn shadowsocks_outbound(rest: &str) -> Result<Value, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_target` is never used
[INFO] [stdout]   --> src/tunnel/mod.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub async fn read_target(is_http: bool, sock: &mut (impl tokio::io::AsyncRead + Unpin)) -> Result<(String, u16), String> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve_inbound_conn` is never used
[INFO] [stdout]   --> src/tunnel/mod.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub async fn serve_inbound_conn(is_http: bool, mut sock: tokio::net::TcpStream, ob: Arc<Outbound>) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_http_head` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub async fn read_http_head(sock: &mut (impl tokio::io::AsyncRead + Unpin)) -> Result<(String, u16, Vec<u8>), String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `head_is_connect` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:172:4
[INFO] [stdout]     |
[INFO] [stdout] 172 | fn head_is_connect(head: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bidirectional` is never used
[INFO] [stdout]    --> src/tunnel/mod.rs:176:14
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub async fn bidirectional(a: &mut tokio::net::TcpStream, b: &mut crate::tunnel::stream::BoxStream) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conn` is never read
[INFO] [stdout]   --> src/tunnel/hy2.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Hy2Io {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 91 |     conn: quinn::Connection,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_addr_pair` is never used
[INFO] [stdout]    --> src/tunnel/salamander.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn local_addr_pair(a: &SocketAddr) -> Option<SocketAddr> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `loopback_of` is never used
[INFO] [stdout]    --> src/tunnel/salamander.rs:106:4
[INFO] [stdout]     |
[INFO] [stdout] 106 | fn loopback_of(a: &SocketAddr) -> SocketAddr {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPSTREAM_HOST` is never used
[INFO] [stdout]   --> src/upstream.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const UPSTREAM_HOST: &str = "www.codebuff.com";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `up_via` is never used
[INFO] [stdout]   --> src/upstream.rs:92:14
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub async fn up_via(
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_normal_client_behavior` is never used
[INFO] [stdout]    --> src/upstream.rs:294:14
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub async fn run_normal_client_behavior(base: &str, token: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_normal_client_behavior_freq` is never used
[INFO] [stdout]    --> src/upstream.rs:300:14
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub async fn run_normal_client_behavior_freq(base: &str, token: &str, reward_model: bool) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `imp_url_path` is never used
[INFO] [stdout]    --> src/upstream.rs:413:4
[INFO] [stdout]     |
[INFO] [stdout] 413 | fn imp_url_path(url: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_session` is never used
[INFO] [stdout]    --> src/upstream.rs:530:14
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub async fn ensure_session(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/usage.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     c.execute_batch(
[INFO] [stdout] 15 | |         "PRAGMA journal_mode=WAL;
[INFO] [stdout] 16 | |          CREATE TABLE IF NOT EXISTS requests (
[INFO] [stdout] 17 | |             id INTEGER PRIMARY KEY AUTOINCREMENT,
[INFO] [stdout] ...  |
[INFO] [stdout] 29 | |          CREATE INDEX IF NOT EXISTS idx_requests_ts ON requests(ts);",
[INFO] [stdout] 30 | |         );
[INFO] [stdout]    | |_________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _unused = ...` to ignore the resulting value without dropping it immediately
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let _unused = c.execute_batch(
[INFO] [stdout]    |     +++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `tokio-stream`
[INFO] [stderr]   --> Cargo.toml:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | tokio-stream = "0.1"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tokio-stream`
[INFO] [stderr] warning: `freebuff-rs` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 17s
[INFO] running `Command { std: "docker" "inspect" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b", kill_on_drop: false }`
[INFO] [stdout] 5cd2932bdb2d638f5577bc825e8a54906164b2e8fe3ada6dedab17af1a9b917b
