[INFO] cloning repository https://github.com/WireGuard/wireguard-rs [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WireGuard/wireguard-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWireGuard%2Fwireguard-rs"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWireGuard%2Fwireguard-rs'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] f46762183a5fad4aba88379714abf1d21c3e1c54 [INFO] checking WireGuard/wireguard-rs against master#2748a9fd93dd1a00a4521f4f16de5befbf77f6cd for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWireGuard%2Fwireguard-rs" "/workspace/builds/worker-8/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/WireGuard/wireguard-rs on toolchain 2748a9fd93dd1a00a4521f4f16de5befbf77f6cd [INFO] running `"/workspace/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/WireGuard/wireguard-rs [INFO] finished tweaking git repo https://github.com/WireGuard/wireguard-rs [INFO] tweaked toml for git repo https://github.com/WireGuard/wireguard-rs written to /workspace/builds/worker-8/source/Cargo.toml [INFO] crate git repo https://github.com/WireGuard/wireguard-rs already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] dfbd7cf1b2125d0894ca3b16a91952020368d819905b9e8e2938a041ffaa676d [INFO] running `"docker" "start" "-a" "dfbd7cf1b2125d0894ca3b16a91952020368d819905b9e8e2938a041ffaa676d"` [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling subtle v2.1.1 [INFO] [stderr] Compiling arraydeque v0.4.5 [INFO] [stderr] Checking either v1.5.2 [INFO] [stderr] Checking treebitmap v0.4.0 [INFO] [stderr] Compiling jemalloc-sys v0.3.2 [INFO] [stderr] Compiling memoffset v0.5.1 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Checking pnet_sys v0.22.0 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking ring v0.16.7 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking stream-cipher v0.3.2 [INFO] [stderr] Checking aead v0.1.1 [INFO] [stderr] Checking ipnetwork v0.14.0 [INFO] [stderr] Checking rand v0.6.5 [INFO] [stderr] Compiling regex v1.0.6 [INFO] [stderr] Checking poly1305 v0.2.0 [INFO] [stderr] Checking salsa20-core v0.2.1 [INFO] [stderr] Checking rand_chacha v0.2.1 [INFO] [stderr] Compiling synstructure v0.10.2 [INFO] [stderr] Checking futures-core v0.2.1 [INFO] [stderr] Compiling curve25519-dalek v1.2.3 [INFO] [stderr] Checking pnet_datalink v0.22.0 [INFO] [stderr] Checking chacha20 v0.2.1 [INFO] [stderr] Checking crossbeam-epoch v0.7.2 [INFO] [stderr] Checking rand v0.7.0 [INFO] [stderr] Checking futures-channel v0.2.1 [INFO] [stderr] Checking chacha20poly1305 v0.1.0 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stderr] Checking mio v0.6.19 [INFO] [stderr] Checking tokio-io v0.1.12 [INFO] [stderr] Checking crossbeam-deque v0.7.1 [INFO] [stderr] Compiling syntex_errors v0.42.0 [INFO] [stderr] Checking env_logger v0.6.2 [INFO] [stderr] Checking parking_lot_core v0.4.0 [INFO] [stderr] Compiling zerocopy-derive v0.1.4 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking tokio-threadpool v0.1.15 [INFO] [stderr] Compiling syntex_syntax v0.42.0 [INFO] [stderr] Checking mio-uds v0.6.7 [INFO] [stderr] Checking mio-extras v2.0.5 [INFO] [stderr] Checking parking_lot v0.7.1 [INFO] [stderr] Checking tempfile v3.1.0 [INFO] [stderr] Checking hjul v0.1.2 [INFO] [stderr] Checking x25519-dalek v0.5.2 [INFO] [stderr] Checking tokio-reactor v0.1.9 [INFO] [stderr] Checking rusty-fork v0.2.2 [INFO] [stderr] Checking tokio-fs v0.1.6 [INFO] [stderr] Checking zerocopy v0.2.8 [INFO] [stderr] Checking proptest v0.9.4 [INFO] [stderr] Checking tokio-uds v0.2.5 [INFO] [stderr] Checking tokio-udp v0.1.3 [INFO] [stderr] Checking tokio-tcp v0.1.3 [INFO] [stderr] Checking tokio v0.1.22 [INFO] [stderr] Compiling syntex v0.42.2 [INFO] [stderr] Compiling pnet_macros v0.22.0 [INFO] [stderr] Compiling pnet_packet v0.22.0 [INFO] [stderr] Checking pnet_transport v0.22.0 [INFO] [stderr] Checking pnet v0.22.0 [INFO] [stderr] Checking jemallocator v0.3.2 [INFO] [stderr] Checking wireguard-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/handshake/messages.rs:255:1 [INFO] [stderr] | [INFO] [stderr] 255 | / macro_rules! eq_as_bytes { [INFO] [stderr] 256 | | ($type:path) => { [INFO] [stderr] 257 | | impl PartialEq for $type { [INFO] [stderr] 258 | | fn eq(&self, other: &Self) -> bool { [INFO] [stderr] ... | [INFO] [stderr] 263 | | }; [INFO] [stderr] 264 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Opaque` [INFO] [stderr] --> src/router/device.rs:20:31 [INFO] [stderr] | [INFO] [stderr] 20 | use super::types::{Callbacks, Opaque, RouterError}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `x25519_dalek::StaticSecret` [INFO] [stderr] --> src/wireguard.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use x25519_dalek::StaticSecret; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/wireguard.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/wireguard.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sent` [INFO] [stderr] --> src/wireguard.rs:18:50 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_sent` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/wireguard.rs:20:25 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/wireguard.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sent` [INFO] [stderr] --> src/wireguard.rs:20:50 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_sent` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | fn need_key(t: &Timers) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src` [INFO] [stderr] --> src/wireguard.rs:44:32 [INFO] [stderr] | [INFO] [stderr] 44 | let (size, src) = bind.recv(&mut msg).unwrap(); // TODO handle error [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_src` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/router/device.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let mut inner = DeviceInner { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/router/peer.rs:281:9 [INFO] [stderr] | [INFO] [stderr] 281 | mut msg: Vec, [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Opaque` [INFO] [stderr] --> src/router/device.rs:20:31 [INFO] [stderr] | [INFO] [stderr] 20 | use super::types::{Callbacks, Opaque, RouterError}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `AtomicBool` [INFO] [stderr] --> src/router/tests.rs:4:25 [INFO] [stderr] | [INFO] [stderr] 4 | use std::sync::atomic::{AtomicBool, Ordering}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `x25519_dalek::StaticSecret` [INFO] [stderr] --> src/wireguard.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use x25519_dalek::StaticSecret; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_AFTER_MESSAGES` [INFO] [stderr] --> src/constants.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub const REKEY_AFTER_MESSAGES: u64 = u64::MAX - (1 << 16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REJECT_AFTER_MESSAGES` [INFO] [stderr] --> src/constants.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub const REJECT_AFTER_MESSAGES: u64 = u64::MAX - (1 << 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_AFTER_TIME` [INFO] [stderr] --> src/constants.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const REKEY_AFTER_TIME: Duration = Duration::from_secs(120); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REJECT_AFTER_TIME` [INFO] [stderr] --> src/constants.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | pub const REJECT_AFTER_TIME: Duration = Duration::from_secs(180); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_ATTEMPT_TIME` [INFO] [stderr] --> src/constants.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const REKEY_ATTEMPT_TIME: Duration = Duration::from_secs(90); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_TIMEOUT` [INFO] [stderr] --> src/constants.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const REKEY_TIMEOUT: Duration = Duration::from_secs(5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `KEEPALIVE_TIMEOUT` [INFO] [stderr] --> src/constants.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub const KEEPALIVE_TIMEOUT: Duration = Duration::from_secs(10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAX_PEER_PER_DEVICE` [INFO] [stderr] --> src/handshake/device.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const MAX_PEER_PER_DEVICE: usize = 1 << 20; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Device` [INFO] [stderr] --> src/handshake/device.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | pub struct Device { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/device.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn new(sk: StaticSecret) -> Device { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/handshake/device.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn add(&mut self, pk: PublicKey, identifier: T) -> Result<(), ConfigError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove` [INFO] [stderr] --> src/handshake/device.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn remove(&mut self, pk: PublicKey) -> Result<(), ConfigError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_psk` [INFO] [stderr] --> src/handshake/device.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn set_psk(&mut self, pk: PublicKey, psk: Option) -> Result<(), ConfigError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_psk` [INFO] [stderr] --> src/handshake/device.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn get_psk(&self, pk: PublicKey) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `release` [INFO] [stderr] --> src/handshake/device.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | pub fn release(&self, id: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `begin` [INFO] [stderr] --> src/handshake/device.rs:172:5 [INFO] [stderr] | [INFO] [stderr] 172 | / pub fn begin( [INFO] [stderr] 173 | | &self, [INFO] [stderr] 174 | | rng: &mut R, [INFO] [stderr] 175 | | pk: &PublicKey, [INFO] [stderr] ... | [INFO] [stderr] 194 | | } [INFO] [stderr] 195 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `process` [INFO] [stderr] --> src/handshake/device.rs:202:5 [INFO] [stderr] | [INFO] [stderr] 202 | / pub fn process<'a, R: RngCore + CryptoRng, S>( [INFO] [stderr] 203 | | &self, [INFO] [stderr] 204 | | rng: &mut R, // rng instance to sample randomness from [INFO] [stderr] 205 | | msg: &[u8], // message buffer [INFO] [stderr] ... | [INFO] [stderr] 325 | | } [INFO] [stderr] 326 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `lookup_pk` [INFO] [stderr] --> src/handshake/device.rs:331:5 [INFO] [stderr] | [INFO] [stderr] 331 | pub(crate) fn lookup_pk(&self, pk: &PublicKey) -> Result<&Peer, HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `lookup_id` [INFO] [stderr] --> src/handshake/device.rs:340:5 [INFO] [stderr] | [INFO] [stderr] 340 | pub(crate) fn lookup_id(&self, id: u32) -> Result<&Peer, HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `allocate` [INFO] [stderr] --> src/handshake/device.rs:352:5 [INFO] [stderr] | [INFO] [stderr] 352 | fn allocate(&self, rng: &mut R, peer: &Peer) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `LABEL_MAC1` [INFO] [stderr] --> src/handshake/macs.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const LABEL_MAC1: &[u8] = b"mac1----"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `LABEL_COOKIE` [INFO] [stderr] --> src/handshake/macs.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | const LABEL_COOKIE: &[u8] = b"cookie--"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_COOKIE` [INFO] [stderr] --> src/handshake/macs.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | const SIZE_COOKIE: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_SECRET` [INFO] [stderr] --> src/handshake/macs.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | const SIZE_SECRET: usize = 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_MAC` [INFO] [stderr] --> src/handshake/macs.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | const SIZE_MAC: usize = 16; // blake2s-mac128 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_TAG` [INFO] [stderr] --> src/handshake/macs.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | const SIZE_TAG: usize = 16; // xchacha20poly1305 tag [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Cookie` [INFO] [stderr] --> src/handshake/macs.rs:86:1 [INFO] [stderr] | [INFO] [stderr] 86 | struct Cookie { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Generator` [INFO] [stderr] --> src/handshake/macs.rs:91:1 [INFO] [stderr] | [INFO] [stderr] 91 | pub struct Generator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `addr_to_mac_bytes` [INFO] [stderr] --> src/handshake/macs.rs:98:1 [INFO] [stderr] | [INFO] [stderr] 98 | fn addr_to_mac_bytes(addr: &SocketAddr) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/macs.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn new(pk: PublicKey) -> Generator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `process` [INFO] [stderr] --> src/handshake/macs.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | pub fn process(&mut self, reply: &CookieReply) -> Result<(), HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `generate` [INFO] [stderr] --> src/handshake/macs.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn generate(&mut self, inner: &[u8], macs: &mut MacsFooter) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Secret` [INFO] [stderr] --> src/handshake/macs.rs:184:1 [INFO] [stderr] | [INFO] [stderr] 184 | struct Secret { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Validator` [INFO] [stderr] --> src/handshake/macs.rs:189:1 [INFO] [stderr] | [INFO] [stderr] 189 | pub struct Validator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/macs.rs:196:5 [INFO] [stderr] | [INFO] [stderr] 196 | pub fn new(pk: PublicKey) -> Validator { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_tau` [INFO] [stderr] --> src/handshake/macs.rs:207:5 [INFO] [stderr] | [INFO] [stderr] 207 | fn get_tau(&self, src: &[u8]) -> Option<[u8; SIZE_COOKIE]> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_set_tau` [INFO] [stderr] --> src/handshake/macs.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | fn get_set_tau(&self, rng: &mut R, src: &[u8]) -> [u8; SIZE_COOKIE] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_cookie_reply` [INFO] [stderr] --> src/handshake/macs.rs:239:5 [INFO] [stderr] | [INFO] [stderr] 239 | / pub fn create_cookie_reply( [INFO] [stderr] 240 | | &self, [INFO] [stderr] 241 | | rng: &mut R, [INFO] [stderr] 242 | | receiver: u32, // receiver id of incoming message [INFO] [stderr] ... | [INFO] [stderr] 257 | | ); [INFO] [stderr] 258 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check_mac1` [INFO] [stderr] --> src/handshake/macs.rs:266:5 [INFO] [stderr] | [INFO] [stderr] 266 | pub fn check_mac1(&self, inner: &[u8], macs: &MacsFooter) -> Result<(), HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check_mac2` [INFO] [stderr] --> src/handshake/macs.rs:275:5 [INFO] [stderr] | [INFO] [stderr] 275 | pub fn check_mac2(&self, inner: &[u8], src: &SocketAddr, macs: &MacsFooter) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/handshake/messages.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | pub fn parse(bytes: B) -> Result, HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/handshake/messages.rs:94:5 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn parse(bytes: B) -> Result, HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/handshake/messages.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | pub fn parse(bytes: B) -> Result, HandshakeError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `HMACBlake2s` [INFO] [stderr] --> src/handshake/noise.rs:36:1 [INFO] [stderr] | [INFO] [stderr] 36 | type HMACBlake2s = Hmac; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `TemporaryState` [INFO] [stderr] --> src/handshake/noise.rs:40:1 [INFO] [stderr] | [INFO] [stderr] 40 | type TemporaryState = (u32, PublicKey, GenericArray, GenericArray); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_CK` [INFO] [stderr] --> src/handshake/noise.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | const SIZE_CK: usize = 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_HS` [INFO] [stderr] --> src/handshake/noise.rs:43:1 [INFO] [stderr] | [INFO] [stderr] 43 | const SIZE_HS: usize = 32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_NONCE` [INFO] [stderr] --> src/handshake/noise.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | const SIZE_NONCE: usize = 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_TAG` [INFO] [stderr] --> src/handshake/noise.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | const SIZE_TAG: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `CLEAR_PAGES` [INFO] [stderr] --> src/handshake/noise.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | const CLEAR_PAGES: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `INITIAL_CK` [INFO] [stderr] --> src/handshake/noise.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | / const INITIAL_CK: [u8; SIZE_CK] = [ [INFO] [stderr] 52 | | 0x60, 0xe2, 0x6d, 0xae, 0xf3, 0x27, 0xef, 0xc0, 0x2e, 0xc3, 0x35, 0xe2, 0xa0, 0x25, 0xd2, 0xd0, [INFO] [stderr] 53 | | 0x16, 0xeb, 0x42, 0x06, 0xf8, 0x72, 0x77, 0xf5, 0x2d, 0x38, 0xd1, 0x98, 0x8b, 0x78, 0xcd, 0x36, [INFO] [stderr] 54 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `INITIAL_HS` [INFO] [stderr] --> src/handshake/noise.rs:57:1 [INFO] [stderr] | [INFO] [stderr] 57 | / const INITIAL_HS: [u8; SIZE_HS] = [ [INFO] [stderr] 58 | | 0x22, 0x11, 0xb3, 0x61, 0x08, 0x1a, 0xc5, 0x66, 0x69, 0x12, 0x43, 0xdb, 0x45, 0x8a, 0xd5, 0x32, [INFO] [stderr] 59 | | 0x2d, 0x9c, 0x6c, 0x66, 0x22, 0x93, 0xe8, 0xb7, 0x0e, 0xe1, 0x9c, 0x65, 0xba, 0x07, 0x9e, 0xf3, [INFO] [stderr] 60 | | ]; [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ZERO_NONCE` [INFO] [stderr] --> src/handshake/noise.rs:62:1 [INFO] [stderr] | [INFO] [stderr] 62 | const ZERO_NONCE: [u8; 12] = [0u8; 12]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `create_initiation` [INFO] [stderr] --> src/handshake/noise.rs:218:1 [INFO] [stderr] | [INFO] [stderr] 218 | / pub fn create_initiation( [INFO] [stderr] 219 | | rng: &mut R, [INFO] [stderr] 220 | | device: &Device, [INFO] [stderr] 221 | | peer: &Peer, [INFO] [stderr] ... | [INFO] [stderr] 296 | | }) [INFO] [stderr] 297 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `consume_initiation` [INFO] [stderr] --> src/handshake/noise.rs:299:1 [INFO] [stderr] | [INFO] [stderr] 299 | / pub fn consume_initiation<'a, T: Copy>( [INFO] [stderr] 300 | | device: &'a Device, [INFO] [stderr] 301 | | msg: &NoiseInitiation, [INFO] [stderr] 302 | | ) -> Result<(&'a Peer, TemporaryState), HandshakeError> { [INFO] [stderr] ... | [INFO] [stderr] 370 | | }) [INFO] [stderr] 371 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `create_response` [INFO] [stderr] --> src/handshake/noise.rs:373:1 [INFO] [stderr] | [INFO] [stderr] 373 | / pub fn create_response( [INFO] [stderr] 374 | | rng: &mut R, [INFO] [stderr] 375 | | peer: &Peer, [INFO] [stderr] 376 | | sender: u32, // sending identifier [INFO] [stderr] ... | [INFO] [stderr] 452 | | }) [INFO] [stderr] 453 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `consume_response` [INFO] [stderr] --> src/handshake/noise.rs:459:1 [INFO] [stderr] | [INFO] [stderr] 459 | / pub fn consume_response( [INFO] [stderr] 460 | | device: &Device, [INFO] [stderr] 461 | | msg: &NoiseResponse, [INFO] [stderr] 462 | | ) -> Result, HandshakeError> { [INFO] [stderr] ... | [INFO] [stderr] 551 | | }) [INFO] [stderr] 552 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Peer` [INFO] [stderr] --> src/handshake/peer.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub struct Peer { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Reset` [INFO] [stderr] --> src/handshake/peer.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | Reset, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InitiationSent` [INFO] [stderr] --> src/handshake/peer.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / InitiationSent { [INFO] [stderr] 48 | | sender: u32, // assigned sender id [INFO] [stderr] 49 | | eph_sk: StaticSecret, [INFO] [stderr] 50 | | hs: GenericArray, [INFO] [stderr] 51 | | ck: GenericArray, [INFO] [stderr] 52 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/peer.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / pub fn new( [INFO] [stderr] 73 | | identifier: T, // external identifier [INFO] [stderr] 74 | | pk: PublicKey, // public key of peer [INFO] [stderr] 75 | | ss: SharedSecret, // precomputed DH(static, static) [INFO] [stderr] ... | [INFO] [stderr] 86 | | } [INFO] [stderr] 87 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_state` [INFO] [stderr] --> src/handshake/peer.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn set_state(&self, state_new: State) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check_replay_flood` [INFO] [stderr] --> src/handshake/peer.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / pub fn check_replay_flood( [INFO] [stderr] 104 | | &self, [INFO] [stderr] 105 | | device: &Device, [INFO] [stderr] 106 | | timestamp_new: ×tamp::TAI64N, [INFO] [stderr] ... | [INFO] [stderr] 142 | | Ok(()) [INFO] [stderr] 143 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PACKETS_PER_SECOND` [INFO] [stderr] --> src/handshake/ratelimiter.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | const PACKETS_PER_SECOND: u64 = 20; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PACKETS_BURSTABLE` [INFO] [stderr] --> src/handshake/ratelimiter.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | const PACKETS_BURSTABLE: u64 = 5; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `PACKET_COST` [INFO] [stderr] --> src/handshake/ratelimiter.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | const PACKET_COST: u64 = 1_000_000_000 / PACKETS_PER_SECOND; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAX_TOKENS` [INFO] [stderr] --> src/handshake/ratelimiter.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | const MAX_TOKENS: u64 = PACKET_COST * PACKETS_BURSTABLE; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `gc_running` [INFO] [stderr] --> src/handshake/ratelimiter.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | gc_running: AtomicBool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `table` [INFO] [stderr] --> src/handshake/ratelimiter.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | table: spin::RwLock>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/ratelimiter.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn new() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `allow` [INFO] [stderr] --> src/handshake/ratelimiter.rs:52:5 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn allow(&self, addr: &IpAddr) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `TAI64N` [INFO] [stderr] --> src/handshake/timestamp.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub type TAI64N = [u8; 12]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TAI64_EPOCH` [INFO] [stderr] --> src/handshake/timestamp.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | const TAI64_EPOCH: u64 = 0x400000000000000a; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ZERO` [INFO] [stderr] --> src/handshake/timestamp.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const ZERO: TAI64N = [0u8; 12]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `now` [INFO] [stderr] --> src/handshake/timestamp.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn now() -> TAI64N { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `compare` [INFO] [stderr] --> src/handshake/timestamp.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn compare(old: &TAI64N, new: &TAI64N) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/handshake/types.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn new(s: &str) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DecryptionFailure` [INFO] [stderr] --> src/handshake/types.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | DecryptionFailure, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `UnknownPublicKey` [INFO] [stderr] --> src/handshake/types.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | UnknownPublicKey, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `UnknownReceiverId` [INFO] [stderr] --> src/handshake/types.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | UnknownReceiverId, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InvalidMessageFormat` [INFO] [stderr] --> src/handshake/types.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | InvalidMessageFormat, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `OldTimestamp` [INFO] [stderr] --> src/handshake/types.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | OldTimestamp, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InvalidState` [INFO] [stderr] --> src/handshake/types.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | InvalidState, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InvalidMac1` [INFO] [stderr] --> src/handshake/types.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | InvalidMac1, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `RateLimited` [INFO] [stderr] --> src/handshake/types.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | RateLimited, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InitiationFlood` [INFO] [stderr] --> src/handshake/types.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | InitiationFlood, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Output` [INFO] [stderr] --> src/handshake/types.rs:80:1 [INFO] [stderr] | [INFO] [stderr] 80 | / pub type Output = ( [INFO] [stderr] 81 | | Option, // external identifier associated with peer [INFO] [stderr] 82 | | Option>, // message to send [INFO] [stderr] 83 | | Option, // resulting key-pair of successful handshake [INFO] [stderr] 84 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `Psk` [INFO] [stderr] --> src/handshake/types.rs:88:1 [INFO] [stderr] | [INFO] [stderr] 88 | pub type Psk = [u8; 32]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `BITMAP_INDEX_MASK` [INFO] [stderr] --> src/router/anti_replay.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | const BITMAP_INDEX_MASK: u64 = BITMAP_LEN as u64 - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `BITMAP_LOC_MASK` [INFO] [stderr] --> src/router/anti_replay.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | const BITMAP_LOC_MASK: u64 = (SIZE_OF_WORD - 1) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `WINDOW_SIZE` [INFO] [stderr] --> src/router/anti_replay.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | const WINDOW_SIZE: u64 = (BITMAP_BITLEN - SIZE_OF_WORD) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `bitmap` [INFO] [stderr] --> src/router/anti_replay.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | bitmap: [Word; BITMAP_LEN], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `last` [INFO] [stderr] --> src/router/anti_replay.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | last: u64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `check` [INFO] [stderr] --> src/router/anti_replay.rs:50:5 [INFO] [stderr] | [INFO] [stderr] 50 | fn check(&self, seq: u64) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update_store` [INFO] [stderr] --> src/router/anti_replay.rs:67:5 [INFO] [stderr] | [INFO] [stderr] 67 | fn update_store(&mut self, seq: u64) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `update` [INFO] [stderr] --> src/router/anti_replay.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | pub fn update(&mut self, seq: u64) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `WORKER_QUEUE_SIZE` [INFO] [stderr] --> src/router/constants.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const WORKER_QUEUE_SIZE: usize = MAX_STAGED_PACKETS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_route` [INFO] [stderr] --> src/router/device.rs:84:1 [INFO] [stderr] | [INFO] [stderr] 84 | / fn get_route( [INFO] [stderr] 85 | | device: &Arc>, [INFO] [stderr] 86 | | packet: &[u8], [INFO] [stderr] 87 | | ) -> Option>> { [INFO] [stderr] ... | [INFO] [stderr] 120 | | } [INFO] [stderr] 121 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/router/device.rs:125:5 [INFO] [stderr] | [INFO] [stderr] 125 | pub fn new(num_workers: usize, tun: T, bind: B) -> Device { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_peer` [INFO] [stderr] --> src/router/device.rs:157:5 [INFO] [stderr] | [INFO] [stderr] 157 | pub fn new_peer(&self, opaque: C::Opaque) -> Peer { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send` [INFO] [stderr] --> src/router/device.rs:167:5 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn send(&self, msg: Vec) -> Result<(), RouterError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv` [INFO] [stderr] --> src/router/device.rs:197:5 [INFO] [stderr] | [INFO] [stderr] 197 | pub fn recv(&self, src: B::Endpoint, msg: Vec) -> Result<(), RouterError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `VERSION_IP4` [INFO] [stderr] --> src/router/ip.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub const VERSION_IP4: u8 = 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `VERSION_IP6` [INFO] [stderr] --> src/router/ip.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub const VERSION_IP6: u8 = 6; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `TYPE_TRANSPORT` [INFO] [stderr] --> src/router/messages.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub const TYPE_TRANSPORT: u32 = 4; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `retired` [INFO] [stderr] --> src/router/peer.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | retired: Option, // retired id (previous id, after confirming key-pair) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `treebit_list` [INFO] [stderr] --> src/router/peer.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | / fn treebit_list( [INFO] [stderr] 60 | | peer: &Arc>, [INFO] [stderr] 61 | | table: &spin::RwLock>>>, [INFO] [stderr] 62 | | callback: Box E>, [INFO] [stderr] ... | [INFO] [stderr] 74 | | res [INFO] [stderr] 75 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/router/peer.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | fn new(keypair: &Arc) -> EncryptionState { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/router/peer.rs:111:5 [INFO] [stderr] | [INFO] [stderr] 111 | fn new(peer: &Arc>, keypair: &Arc) -> DecryptionState { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `new_peer` [INFO] [stderr] --> src/router/peer.rs:170:1 [INFO] [stderr] | [INFO] [stderr] 170 | / pub fn new_peer( [INFO] [stderr] 171 | | device: Arc>, [INFO] [stderr] 172 | | opaque: C::Opaque, [INFO] [stderr] 173 | | ) -> Peer { [INFO] [stderr] ... | [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_staged` [INFO] [stderr] --> src/router/peer.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | fn send_staged(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_raw` [INFO] [stderr] --> src/router/peer.rs:233:5 [INFO] [stderr] | [INFO] [stderr] 233 | fn send_raw(&self, msg: Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `confirm_key` [INFO] [stderr] --> src/router/peer.rs:248:5 [INFO] [stderr] | [INFO] [stderr] 248 | pub fn confirm_key(&self, keypair: &Arc) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `recv_job` [INFO] [stderr] --> src/router/peer.rs:277:5 [INFO] [stderr] | [INFO] [stderr] 277 | / pub fn recv_job( [INFO] [stderr] 278 | | &self, [INFO] [stderr] 279 | | src: B::Endpoint, [INFO] [stderr] 280 | | dec: Arc>, [INFO] [stderr] ... | [INFO] [stderr] 296 | | } [INFO] [stderr] 297 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send_job` [INFO] [stderr] --> src/router/peer.rs:299:5 [INFO] [stderr] | [INFO] [stderr] 299 | pub fn send_job(&self, mut msg: Vec) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_endpoint` [INFO] [stderr] --> src/router/peer.rs:362:5 [INFO] [stderr] | [INFO] [stderr] 362 | pub fn set_endpoint(&self, address: SocketAddr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_endpoint` [INFO] [stderr] --> src/router/peer.rs:366:5 [INFO] [stderr] | [INFO] [stderr] 366 | pub fn get_endpoint(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_keypair` [INFO] [stderr] --> src/router/peer.rs:384:5 [INFO] [stderr] | [INFO] [stderr] 384 | pub fn add_keypair(&self, new: KeyPair) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `keepalive` [INFO] [stderr] --> src/router/peer.rs:437:5 [INFO] [stderr] | [INFO] [stderr] 437 | pub fn keepalive(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_subnet` [INFO] [stderr] --> src/router/peer.rs:456:5 [INFO] [stderr] | [INFO] [stderr] 456 | pub fn add_subnet(&self, ip: IpAddr, masklen: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `list_subnets` [INFO] [stderr] --> src/router/peer.rs:480:5 [INFO] [stderr] | [INFO] [stderr] 480 | pub fn list_subnets(&self) -> Vec<(IpAddr, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove_subnets` [INFO] [stderr] --> src/router/peer.rs:498:5 [INFO] [stderr] | [INFO] [stderr] 498 | pub fn remove_subnets(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send` [INFO] [stderr] --> src/router/peer.rs:512:5 [INFO] [stderr] | [INFO] [stderr] 512 | pub fn send(&self, msg: &[u8]) -> Result<(), RouterError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NoCryptKeyRoute` [INFO] [stderr] --> src/router/types.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | NoCryptKeyRoute, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `MalformedIPHeader` [INFO] [stderr] --> src/router/types.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | MalformedIPHeader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `MalformedTransportMessage` [INFO] [stderr] --> src/router/types.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | MalformedTransportMessage, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `UnknownReceiverId` [INFO] [stderr] --> src/router/types.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | UnknownReceiverId, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NoEndpoint` [INFO] [stderr] --> src/router/types.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | NoEndpoint, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SendError` [INFO] [stderr] --> src/router/types.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | SendError, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_TAG` [INFO] [stderr] --> src/router/workers.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | const SIZE_TAG: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Encryption` [INFO] [stderr] --> src/router/workers.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | Encryption, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Decryption` [INFO] [stderr] --> src/router/workers.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | Decryption, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `check_route` [INFO] [stderr] --> src/router/workers.rs:50:1 [INFO] [stderr] | [INFO] [stderr] 50 | / fn check_route( [INFO] [stderr] 51 | | device: &Arc>, [INFO] [stderr] 52 | | peer: &Arc>, [INFO] [stderr] 53 | | packet: &[u8], [INFO] [stderr] ... | [INFO] [stderr] 93 | | } [INFO] [stderr] 94 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `worker_inbound` [INFO] [stderr] --> src/router/workers.rs:96:1 [INFO] [stderr] | [INFO] [stderr] 96 | / pub fn worker_inbound( [INFO] [stderr] 97 | | device: Arc>, // related device [INFO] [stderr] 98 | | peer: Arc>, // related peer [INFO] [stderr] 99 | | receiver: Receiver>, [INFO] [stderr] ... | [INFO] [stderr] 176 | | } [INFO] [stderr] 177 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `worker_outbound` [INFO] [stderr] --> src/router/workers.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | / pub fn worker_outbound( [INFO] [stderr] 180 | | device: Arc>, // related device [INFO] [stderr] 181 | | peer: Arc>, // related peer [INFO] [stderr] 182 | | receiver: Receiver, [INFO] [stderr] ... | [INFO] [stderr] 222 | | } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `worker_parallel` [INFO] [stderr] --> src/router/workers.rs:225:1 [INFO] [stderr] | [INFO] [stderr] 225 | pub fn worker_parallel(receiver: Receiver) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_MESSAGE_PREFIX` [INFO] [stderr] --> src/router/mod.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub const SIZE_MESSAGE_PREFIX: usize = mem::size_of::(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `CAPACITY_MESSAGE_POSTFIX` [INFO] [stderr] --> src/router/mod.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const CAPACITY_MESSAGE_POSTFIX: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Events` [INFO] [stderr] --> src/wireguard.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct Events(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Wireguard` [INFO] [stderr] --> src/wireguard.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub struct Wireguard { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/wireguard.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | fn new(tun: T, bind: B) -> Wireguard { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/wireguard.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/wireguard.rs:18:38 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sent` [INFO] [stderr] --> src/wireguard.rs:18:50 [INFO] [stderr] | [INFO] [stderr] 18 | fn send(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_sent` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/wireguard.rs:20:25 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/wireguard.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sent` [INFO] [stderr] --> src/wireguard.rs:20:50 [INFO] [stderr] | [INFO] [stderr] 20 | fn recv(t: &Timers, size: usize, data: bool, sent: bool) {} [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_sent` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t` [INFO] [stderr] --> src/wireguard.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | fn need_key(t: &Timers) {} [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_t` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `src` [INFO] [stderr] --> src/wireguard.rs:44:32 [INFO] [stderr] | [INFO] [stderr] 44 | let (size, src) = bind.recv(&mut msg).unwrap(); // TODO handle error [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_src` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/router/device.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | let mut inner = DeviceInner { [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/router/peer.rs:281:9 [INFO] [stderr] | [INFO] [stderr] 281 | mut msg: Vec, [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_AFTER_MESSAGES` [INFO] [stderr] --> src/constants.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub const REKEY_AFTER_MESSAGES: u64 = u64::MAX - (1 << 16); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_AFTER_TIME` [INFO] [stderr] --> src/constants.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub const REKEY_AFTER_TIME: Duration = Duration::from_secs(120); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_ATTEMPT_TIME` [INFO] [stderr] --> src/constants.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const REKEY_ATTEMPT_TIME: Duration = Duration::from_secs(90); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `REKEY_TIMEOUT` [INFO] [stderr] --> src/constants.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub const REKEY_TIMEOUT: Duration = Duration::from_secs(5); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `KEEPALIVE_TIMEOUT` [INFO] [stderr] --> src/constants.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub const KEEPALIVE_TIMEOUT: Duration = Duration::from_secs(10); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_psk` [INFO] [stderr] --> src/handshake/device.rs:149:5 [INFO] [stderr] | [INFO] [stderr] 149 | pub fn get_psk(&self, pk: PublicKey) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_NONCE` [INFO] [stderr] --> src/handshake/noise.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | const SIZE_NONCE: usize = 8; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `SIZE_TAG` [INFO] [stderr] --> src/handshake/noise.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | const SIZE_TAG: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `set_state` [INFO] [stderr] --> src/handshake/peer.rs:93:5 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn set_state(&self, state_new: State) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `treebit_list` [INFO] [stderr] --> src/router/peer.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | / fn treebit_list( [INFO] [stderr] 60 | | peer: &Arc>, [INFO] [stderr] 61 | | table: &spin::RwLock>>>, [INFO] [stderr] 62 | | callback: Box E>, [INFO] [stderr] ... | [INFO] [stderr] 74 | | res [INFO] [stderr] 75 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `list_subnets` [INFO] [stderr] --> src/router/peer.rs:480:5 [INFO] [stderr] | [INFO] [stderr] 480 | pub fn list_subnets(&self) -> Vec<(IpAddr, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove_subnets` [INFO] [stderr] --> src/router/peer.rs:498:5 [INFO] [stderr] | [INFO] [stderr] 498 | pub fn remove_subnets(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `send` [INFO] [stderr] --> src/router/peer.rs:512:5 [INFO] [stderr] | [INFO] [stderr] 512 | pub fn send(&self, msg: &[u8]) -> Result<(), RouterError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `MalformedIPHeader` [INFO] [stderr] --> src/router/types.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | MalformedIPHeader, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `NoEndpoint` [INFO] [stderr] --> src/router/types.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | NoEndpoint, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SendError` [INFO] [stderr] --> src/router/types.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | SendError, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/router/tests.rs:247:9 [INFO] [stderr] | [INFO] [stderr] 247 | fn reset(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `CAPACITY_MESSAGE_POSTFIX` [INFO] [stderr] --> src/router/mod.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const CAPACITY_MESSAGE_POSTFIX: usize = 16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Events` [INFO] [stderr] --> src/wireguard.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub struct Events(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Wireguard` [INFO] [stderr] --> src/wireguard.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | pub struct Wireguard { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/wireguard.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | fn new(tun: T, bind: B) -> Wireguard { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3m 34s [INFO] running `"docker" "inspect" "dfbd7cf1b2125d0894ca3b16a91952020368d819905b9e8e2938a041ffaa676d"` [INFO] running `"docker" "rm" "-f" "dfbd7cf1b2125d0894ca3b16a91952020368d819905b9e8e2938a041ffaa676d"` [INFO] [stdout] dfbd7cf1b2125d0894ca3b16a91952020368d819905b9e8e2938a041ffaa676d