[INFO] fetching crate triglav 0.2.0...
[INFO] checking triglav-0.2.0 against master#0028f344ce9f64766259577c998a1959ca1f6a0b for pr-153041
[INFO] extracting crate triglav 0.2.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate triglav 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate triglav 0.2.0
[INFO] tweaked toml for crates.io crate triglav 0.2.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate triglav 0.2.0 on toolchain 0028f344ce9f64766259577c998a1959ca1f6a0b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0028f344ce9f64766259577c998a1959ca1f6a0b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate triglav 0.2.0 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" "+0028f344ce9f64766259577c998a1959ca1f6a0b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded signal-hook-tokio v0.3.1
[INFO] [stderr]   Downloaded base64ct v1.8.2
[INFO] [stderr]   Downloaded directories v5.0.1
[INFO] [stderr]   Downloaded rusqlite v0.31.0
[INFO] [stderr]   Downloaded clap_complete v4.5.64
[INFO] [stderr]   Downloaded priority-queue v2.7.0
[INFO] [stderr]   Downloaded statrs v0.16.1
[INFO] [stderr]   Downloaded nalgebra v0.29.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.28.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+0028f344ce9f64766259577c998a1959ca1f6a0b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 927ac902b0ab373b7a10c332417cfba092717fb05baeaea7e24787c657a62dde
[INFO] running `Command { std: "docker" "start" "-a" "927ac902b0ab373b7a10c332417cfba092717fb05baeaea7e24787c657a62dde", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "927ac902b0ab373b7a10c332417cfba092717fb05baeaea7e24787c657a62dde", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "927ac902b0ab373b7a10c332417cfba092717fb05baeaea7e24787c657a62dde", kill_on_drop: false }`
[INFO] [stdout] 927ac902b0ab373b7a10c332417cfba092717fb05baeaea7e24787c657a62dde
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "RUSTDOCFLAGS=--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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+0028f344ce9f64766259577c998a1959ca1f6a0b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a87d16adfd217c5022c47a399d34b32bd4e82c41785e5ce9747d5ebd9bedc0f
[INFO] running `Command { std: "docker" "start" "-a" "4a87d16adfd217c5022c47a399d34b32bd4e82c41785e5ce9747d5ebd9bedc0f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking openssl-probe v0.2.0
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking indexmap v2.12.1
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking base64ct v1.8.2
[INFO] [stderr]     Checking lru-slab v0.1.2
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking priority-queue v2.7.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking predicates v3.1.3
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking simba v0.6.0
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking terminal_size v0.4.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking clap_builder v4.5.54
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking shellexpand v3.1.1
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking daemonize v0.5.0
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking wait-timeout v0.2.1
[INFO] [stderr]     Checking rand_xorshift v0.4.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]    Compiling nalgebra-macros v0.1.0
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling test-case-core v3.3.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling test-case-macros v3.3.1
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]     Checking rustls-pki-types v1.13.2
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking curve25519-dalek v4.1.3
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking webpki-roots v1.0.5
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking test-case v3.3.1
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking netlink-packet-utils v0.5.2
[INFO] [stderr]     Checking dialoguer v0.11.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking clap v4.5.54
[INFO] [stderr]     Checking clap_complete v4.5.64
[INFO] [stderr]     Checking netlink-packet-core v0.7.0
[INFO] [stderr]     Checking netlink-packet-route v0.19.0
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking mockall v0.12.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking fastbloom v0.14.0
[INFO] [stderr]     Checking proptest v1.9.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking quinn-proto v0.11.13
[INFO] [stderr]     Checking nalgebra v0.29.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking prometheus v0.13.4
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking comfy-table v7.2.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking netlink-sys v0.8.7
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking signal-hook-tokio v0.3.1
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking netlink-proto v0.11.5
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking rtnetlink v0.14.1
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking statrs v0.16.1
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking triglav v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/multipath/aggregator.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::{BTreeMap, HashMap, VecDeque};
[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: `crate::types::Bandwidth`
[INFO] [stdout]   --> src/multipath/aggregator.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::types::Bandwidth;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IpAddr`
[INFO] [stdout]  --> src/tun/device.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddressFamily`, `SockFlag`, `SockType`, and `socket`
[INFO] [stdout]    --> src/tun/device.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |         use nix::sys::socket::{socket, AddressFamily, SockFlag, SockType};
[INFO] [stdout]     |                                ^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/tun/dns.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, SocketAddr};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/tun/dns.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tun/nat.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> src/tun/nat.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
[INFO] [stdout]   |                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlowTuple`
[INFO] [stdout]   --> src/tun/nat.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::packet::{FlowTuple, IpPacket, IpPacketMut, TransportProtocol};
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv6Addr`
[INFO] [stdout]  --> src/tun/routing.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
[INFO] [stdout]   |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::IpAddr`
[INFO] [stdout]  --> src/tun/runner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::IpAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU64`
[INFO] [stdout]  --> src/tun/runner.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicBool, AtomicU64, Ordering};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mpsc`
[INFO] [stdout]   --> src/tun/runner.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::{broadcast, mpsc};
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/tun/runner.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::error::{Error, Result};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]    --> src/util/interface.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 190 |     use std::ffi::CString;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/util/netwatch.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VecDeque`
[INFO] [stdout]   --> src/multipath/aggregator.rs:13:43
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::{BTreeMap, HashMap, VecDeque};
[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: `crate::types::Bandwidth`
[INFO] [stdout]   --> src/multipath/aggregator.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::types::Bandwidth;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IpAddr`
[INFO] [stdout]  --> src/tun/device.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
[INFO] [stdout]   |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddressFamily`, `SockFlag`, `SockType`, and `socket`
[INFO] [stdout]    --> src/tun/device.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |         use nix::sys::socket::{socket, AddressFamily, SockFlag, SockType};
[INFO] [stdout]     |                                ^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ipv4Addr`
[INFO] [stdout]  --> src/tun/dns.rs:7:24
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, SocketAddr};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/tun/dns.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tun/nat.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SocketAddr`
[INFO] [stdout]  --> src/tun/nat.rs:7:44
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr};
[INFO] [stdout]   |                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FlowTuple`
[INFO] [stdout]   --> src/tun/nat.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::packet::{FlowTuple, IpPacket, IpPacketMut, TransportProtocol};
[INFO] [stdout]    |                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ipv4Addr` and `Ipv6Addr`
[INFO] [stdout]  --> src/tun/routing.rs:5:24
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::IpAddr`
[INFO] [stdout]  --> src/tun/runner.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::IpAddr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicU64`
[INFO] [stdout]  --> src/tun/runner.rs:7:37
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicBool, AtomicU64, Ordering};
[INFO] [stdout]   |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mpsc`
[INFO] [stdout]   --> src/tun/runner.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tokio::sync::{broadcast, mpsc};
[INFO] [stdout]    |                              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/tun/runner.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::error::{Error, Result};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ffi::CString`
[INFO] [stdout]    --> src/util/interface.rs:190:9
[INFO] [stdout]     |
[INFO] [stdout] 190 |     use std::ffi::CString;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/util/netwatch.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut tunnel_buf = vec![0u8; self.config.buffer_size];
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut tunnel_buf = vec![0u8; self.config.buffer_size];
[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: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/tun/device.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/tun/device.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/tun/device.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/tun/device.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ready`
[INFO] [stdout]    --> src/multipath/aggregator.rs:660:13
[INFO] [stdout]     |
[INFO] [stdout] 660 |         let ready = buffer.poll_timeout();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ready`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ready2`
[INFO] [stdout]    --> src/multipath/aggregator.rs:664:13
[INFO] [stdout]     |
[INFO] [stdout] 664 |         let ready2 = buffer.insert(5, vec![5], 0);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ready2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cycles`
[INFO] [stdout]    --> src/multipath/throughput.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let cycles = self.state_cycles.load(Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_sent`
[INFO] [stdout]    --> src/multipath/uplink.rs:917:13
[INFO] [stdout]     |
[INFO] [stdout] 917 |         let total_sent = stats.bytes_sent.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cycles`
[INFO] [stdout]    --> src/multipath/throughput.rs:422:13
[INFO] [stdout]     |
[INFO] [stdout] 422 |         let cycles = self.state_cycles.load(Ordering::Relaxed);
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_cycles`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `total_sent`
[INFO] [stdout]    --> src/multipath/uplink.rs:917:13
[INFO] [stdout]     |
[INFO] [stdout] 917 |         let total_sent = stats.bytes_sent.max(1);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_total_sent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/device.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut device = Self {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gateway`
[INFO] [stdout]    --> src/tun/routing.rs:609:39
[INFO] [stdout]     |
[INFO] [stdout] 609 |     fn restore_default_gateway(&self, gateway: IpAddr, interface: &str) -> Result<()> {
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gateway`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interface`
[INFO] [stdout]    --> src/tun/routing.rs:609:56
[INFO] [stdout]     |
[INFO] [stdout] 609 |     fn restore_default_gateway(&self, gateway: IpAddr, interface: &str) -> Result<()> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let mut tun = TunDevice::create(config.tun.clone())?;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tunnel_buf`
[INFO] [stdout]    --> src/tun/runner.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut tunnel_buf = vec![0u8; self.config.buffer_size];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tunnel_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uplink_id`
[INFO] [stdout]    --> src/tun/runner.rs:318:29
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 Some((data, uplink_id)) = recv_rx.recv() => {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uplink_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `running`
[INFO] [stdout]    --> src/tun/runner.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let running = self.running.load(Ordering::SeqCst);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |         let mut runner = TunnelRunner::new(self.config)?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/device.rs:278:13
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut device = Self {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/util/netwatch.rs:325:30
[INFO] [stdout]     |
[INFO] [stdout] 325 |             let (connection, handle, mut messages) = match rtnetlink::new_connection() {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gateway`
[INFO] [stdout]    --> src/tun/routing.rs:609:39
[INFO] [stdout]     |
[INFO] [stdout] 609 |     fn restore_default_gateway(&self, gateway: IpAddr, interface: &str) -> Result<()> {
[INFO] [stdout]     |                                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_gateway`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interface`
[INFO] [stdout]    --> src/tun/routing.rs:609:56
[INFO] [stdout]     |
[INFO] [stdout] 609 |     fn restore_default_gateway(&self, gateway: IpAddr, interface: &str) -> Result<()> {
[INFO] [stdout]     |                                                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interface`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |         let mut tun = TunDevice::create(config.tun.clone())?;
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tunnel_buf`
[INFO] [stdout]    --> src/tun/runner.rs:290:13
[INFO] [stdout]     |
[INFO] [stdout] 290 |         let mut tunnel_buf = vec![0u8; self.config.buffer_size];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tunnel_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uplink_id`
[INFO] [stdout]    --> src/tun/runner.rs:318:29
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 Some((data, uplink_id)) = recv_rx.recv() => {
[INFO] [stdout]     |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uplink_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `running`
[INFO] [stdout]    --> src/tun/runner.rs:414:13
[INFO] [stdout]     |
[INFO] [stdout] 414 |         let running = self.running.load(Ordering::SeqCst);
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_running`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tun/runner.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 516 |         let mut runner = TunnelRunner::new(self.config)?;
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `deficit` is never read
[INFO] [stdout]    --> src/multipath/aggregator.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  94 | struct UplinkWeight {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |     deficit: i32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UplinkWeight` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sequence` and `from_uplink` are never read
[INFO] [stdout]    --> src/multipath/aggregator.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct BufferedPacket {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 109 |     /// Global sequence number.
[INFO] [stdout] 110 |     sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     from_uplink: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferedPacket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PACING_INTERVAL` is never used
[INFO] [stdout]   --> src/multipath/throughput.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const DEFAULT_PACING_INTERVAL: Duration = Duration::from_micros(100);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Verify` is never constructed
[INFO] [stdout]    --> src/multipath/throughput.rs:541:5
[INFO] [stdout]     |
[INFO] [stdout] 535 | enum PmtudPhase {
[INFO] [stdout]     |      ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 541 |     Verify,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PmtudPhase` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_optimization` is never read
[INFO] [stdout]    --> src/multipath/throughput.rs:965:5
[INFO] [stdout]     |
[INFO] [stdout] 959 | pub struct ThroughputOptimizer {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 965 |     last_optimization: RwLock<Instant>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_ttl` and `data` are never used
[INFO] [stdout]    --> src/tun/packet.rs:483:12
[INFO] [stdout]     |
[INFO] [stdout] 412 | impl<'a> IpPacketMut<'a> {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn set_ttl(&mut self, ttl: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 573 |     pub fn data(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keypair` is never read
[INFO] [stdout]    --> src/tun/runner.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct TunnelRunner {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 143 |     keypair: KeyPair,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `uplinks` is never read
[INFO] [stdout]    --> src/tun/runner.rs:447:5
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub struct TunnelBuilder {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 446 |     config: TunnelConfig,
[INFO] [stdout] 447 |     uplinks: Vec<UplinkConfig>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tun/runner.rs:466:12
[INFO] [stdout]     |
[INFO] [stdout] 450 | impl TunnelBuilder {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn ipv4(mut self, addr: std::net::Ipv4Addr) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn exclude(mut self, network: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 |     pub fn dns_server(mut self, server: std::net::SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub fn local_dns(mut self, addr: std::net::SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn uplink(mut self, config: UplinkConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn strategy(mut self, strategy: crate::multipath::SchedulingStrategy) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn build(self) -> Result<TunnelRunner> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/util/netwatch.rs:325:30
[INFO] [stdout]     |
[INFO] [stdout] 325 |             let (connection, handle, mut messages) = match rtnetlink::new_connection() {
[INFO] [stdout]     |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `deficit` is never read
[INFO] [stdout]    --> src/multipath/aggregator.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  94 | struct UplinkWeight {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 101 |     deficit: i32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UplinkWeight` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `sequence` and `from_uplink` are never read
[INFO] [stdout]    --> src/multipath/aggregator.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct BufferedPacket {
[INFO] [stdout]     |        -------------- fields in this struct
[INFO] [stdout] 109 |     /// Global sequence number.
[INFO] [stdout] 110 |     sequence: u64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     from_uplink: u16,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BufferedPacket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PACING_INTERVAL` is never used
[INFO] [stdout]   --> src/multipath/throughput.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const DEFAULT_PACING_INTERVAL: Duration = Duration::from_micros(100);
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Verify` is never constructed
[INFO] [stdout]    --> src/multipath/throughput.rs:541:5
[INFO] [stdout]     |
[INFO] [stdout] 535 | enum PmtudPhase {
[INFO] [stdout]     |      ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 541 |     Verify,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PmtudPhase` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_optimization` is never read
[INFO] [stdout]    --> src/multipath/throughput.rs:965:5
[INFO] [stdout]     |
[INFO] [stdout] 959 | pub struct ThroughputOptimizer {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 965 |     last_optimization: RwLock<Instant>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_ttl` and `data` are never used
[INFO] [stdout]    --> src/tun/packet.rs:483:12
[INFO] [stdout]     |
[INFO] [stdout] 412 | impl<'a> IpPacketMut<'a> {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn set_ttl(&mut self, ttl: u8) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 573 |     pub fn data(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keypair` is never read
[INFO] [stdout]    --> src/tun/runner.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct TunnelRunner {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 143 |     keypair: KeyPair,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TunnelBuilder` is never constructed
[INFO] [stdout]    --> src/tun/runner.rs:445:12
[INFO] [stdout]     |
[INFO] [stdout] 445 | pub struct TunnelBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tun/runner.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 450 | impl TunnelBuilder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 451 |     /// Create a new tunnel builder with default config.
[INFO] [stdout] 452 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn tun_name(mut self, name: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 466 |     pub fn ipv4(mut self, addr: std::net::Ipv4Addr) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn full_tunnel(mut self, enable: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn route(mut self, network: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn exclude(mut self, network: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 |     pub fn dns_server(mut self, server: std::net::SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     pub fn local_dns(mut self, addr: std::net::SocketAddr) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn uplink(mut self, config: UplinkConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn strategy(mut self, strategy: crate::multipath::SchedulingStrategy) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn build(self) -> Result<TunnelRunner> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::SocketAddr`
[INFO] [stdout]   --> tests/security_edge_cases.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::net::SocketAddr;
[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::sync::Arc`
[INFO] [stdout]   --> tests/security_edge_cases.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> tests/security_edge_cases.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CryptoError` and `Result`
[INFO] [stdout]   --> tests/security_edge_cases.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | use triglav::error::{CryptoError, Result};
[INFO] [stdout]    |                      ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PacketFlags`
[INFO] [stdout]   --> tests/security_edge_cases.rs:17:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | use triglav::protocol::{Packet, PacketFlags, PacketType, HEADER_SIZE};
[INFO] [stdout]    |                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ct2`
[INFO] [stdout]    --> tests/security_edge_cases.rs:366:9
[INFO] [stdout]     |
[INFO] [stdout] 366 |     let ct2 = client.encrypt(b"message 2").unwrap();
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_ct2`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/security_edge_cases.rs:394:10
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let (mut client2, mut server2) =
[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: unused variable: `client2`
[INFO] [stdout]    --> tests/security_edge_cases.rs:394:10
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let (mut client2, mut server2) =
[INFO] [stdout]     |          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_client2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `verify`
[INFO] [stdout]    --> tests/tun_test.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |     let verify = Command::new("ifconfig")
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_verify`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HEADER_SIZE`
[INFO] [stdout]   --> tests/error_recovery.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 | use triglav::protocol::{Packet, PacketFlags, PacketType, HEADER_SIZE};
[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 imports: `SequenceNumber` and `UplinkHealth`
[INFO] [stdout]   --> tests/error_recovery.rs:23:39
[INFO] [stdout]    |
[INFO] [stdout] 23 | use triglav::types::{ConnectionState, SequenceNumber, SessionId, UplinkHealth, UplinkId};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/error_recovery.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut sessions: DashMap<SessionId, RwLock<Option<NoiseSession>>> = DashMap::new();
[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: unused import: `triglav::crypto::KeyPair`
[INFO] [stdout]   --> tests/network_impairment_simulation.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use triglav::crypto::KeyPair;
[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 imports: `MultipathConfig`, `MultipathManager`, and `UplinkConfig`
[INFO] [stdout]   --> tests/network_impairment_simulation.rs:24:26
[INFO] [stdout]    |
[INFO] [stdout] 24 | use triglav::multipath::{MultipathConfig, MultipathManager, UplinkConfig};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HEADER_SIZE`, `PacketType`, and `Packet`
[INFO] [stdout]   --> tests/network_impairment_simulation.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | use triglav::protocol::{Packet, PacketType, HEADER_SIZE};
[INFO] [stdout]    |                         ^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `triglav::transport::TransportProtocol`
[INFO] [stdout]   --> tests/network_impairment_simulation.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use triglav::transport::TransportProtocol;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SequenceNumber`, `SessionId`, and `UplinkId`
[INFO] [stdout]   --> tests/network_impairment_simulation.rs:27:22
[INFO] [stdout]    |
[INFO] [stdout] 27 | use triglav::types::{SequenceNumber, SessionId, UplinkId};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::SocketAddr`
[INFO] [stdout]   --> tests/boundary_edge_cases.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::net::SocketAddr;
[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::sync::Arc`
[INFO] [stdout]   --> tests/boundary_edge_cases.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UplinkId`
[INFO] [stdout]   --> tests/boundary_edge_cases.rs:17:49
[INFO] [stdout]    |
[INFO] [stdout] 17 | use triglav::types::{SequenceNumber, SessionId, UplinkId};
[INFO] [stdout]    |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]   --> tests/e2e_multipath.rs:12:27
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::time::{Duration, Instant};
[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::net::SocketAddr`
[INFO] [stdout]  --> tests/scheduler_strategies.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::SocketAddr;
[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: `AtomicUsize`
[INFO] [stdout]   --> tests/stress_tests.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering};
[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: `HEADER_SIZE`
[INFO] [stdout]   --> tests/stress_tests.rs:22:58
[INFO] [stdout]    |
[INFO] [stdout] 22 | use triglav::protocol::{Packet, PacketFlags, PacketType, HEADER_SIZE};
[INFO] [stdout]    |                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> tests/tcp_transport.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[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: `triglav::error::Result`
[INFO] [stdout]   --> tests/tcp_transport.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use triglav::error::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uplink_id`
[INFO] [stdout]    --> tests/error_recovery.rs:686:9
[INFO] [stdout]     |
[INFO] [stdout] 686 |     let uplink_id = manager.add_uplink(uplink_config).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_uplink_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused implementer of `Future` that must be used
[INFO] [stdout]    --> tests/error_recovery.rs:497:5
[INFO] [stdout]     |
[INFO] [stdout] 497 |     manager.retry_pending();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: futures do nothing unless you `.await` or poll them
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_response`
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:249:45
[INFO] [stdout]     |
[INFO] [stdout] 249 | ...                   let (dest_addr, is_response) = if addr == self.target_addr {
[INFO] [stdout]     |                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_response`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `selected`
[INFO] [stdout]    --> tests/scheduler_strategies.rs:330:9
[INFO] [stdout]     |
[INFO] [stdout] 330 |     let selected = scheduler.select(&uplinks, None);
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_selected`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `last_received` is assigned to, but never used
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:580:9
[INFO] [stdout]     |
[INFO] [stdout] 580 |     let mut last_received = true;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_last_received` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]    --> tests/stress_tests.rs:599:9
[INFO] [stdout]     |
[INFO] [stdout] 599 |     let manager = MultipathManager::new(config, client_keypair);
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_received` is never read
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:591:17
[INFO] [stdout]     |
[INFO] [stdout] 591 |                 last_received = true;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_received` is never read
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:595:17
[INFO] [stdout]     |
[INFO] [stdout] 595 |                 last_received = false;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_send_time` is never read
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct ImpairmentProxy {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     last_send_time: Mutex<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: function `run_echo_server` is never used
[INFO] [stdout]    --> tests/network_impairment_simulation.rs:345:10
[INFO] [stdout]     |
[INFO] [stdout] 345 | async fn run_echo_server(addr: SocketAddr, shutdown: broadcast::Receiver<()>) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `packets_from`, `total_packets`, and `source_addresses` are never used
[INFO] [stdout]    --> tests/physical_multipath.rs:138:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl PhysicalTestServer {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn packets_from(&self, addr: &SocketAddr) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn total_packets(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn source_addresses(&self) -> Vec<SocketAddr> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `connection_count` is never used
[INFO] [stdout]    --> tests/e2e_multipath.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | impl ExitDestination {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn connection_count(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cross_session_decrypt_attempts` is never read
[INFO] [stdout]    --> tests/e2e_multipath.rs:394:5
[INFO] [stdout]     |
[INFO] [stdout] 378 | struct UplinkDataTracker {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 394 |     cross_session_decrypt_attempts: RwLock<Vec<(SocketAddr, SocketAddr, bool)>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UplinkDataTracker` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_noise` is never used
[INFO] [stdout]    --> tests/e2e_multipath.rs:431:8
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl ForwardingSession {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 431 |     fn has_noise(&self, addr: &SocketAddr) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `uplink_stats`, `total_unique_uplinks`, `verify_multi_source_data`, `get_cross_session_decrypt_attempts`, and `test_crypto_isolation` are never used
[INFO] [stdout]    --> tests/e2e_multipath.rs:468:8
[INFO] [stdout]     |
[INFO] [stdout] 436 | impl ForwardingServer {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn uplink_stats(&self, addr: &SocketAddr) -> Option<(u64, u64)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 478 |     fn total_unique_uplinks(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     fn verify_multi_source_data(&self, min_sources: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 540 |     fn get_cross_session_decrypt_attempts(&self) -> Vec<(SocketAddr, SocketAddr, bool)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 609 |     fn test_crypto_isolation(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "4a87d16adfd217c5022c47a399d34b32bd4e82c41785e5ce9747d5ebd9bedc0f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a87d16adfd217c5022c47a399d34b32bd4e82c41785e5ce9747d5ebd9bedc0f", kill_on_drop: false }`
[INFO] [stdout] 4a87d16adfd217c5022c47a399d34b32bd4e82c41785e5ce9747d5ebd9bedc0f
