[INFO] cloning repository https://github.com/Git-ijhwang/rust_gtpv2 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Git-ijhwang/rust_gtpv2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 897946ea61c0aa7aa6128a0fe45f2728e33aeaad [INFO] checking Git-ijhwang/rust_gtpv2 against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGit-ijhwang%2Frust_gtpv2" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Git-ijhwang/rust_gtpv2 [INFO] finished tweaking git repo https://github.com/Git-ijhwang/rust_gtpv2 [INFO] tweaked toml for git repo https://github.com/Git-ijhwang/rust_gtpv2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Git-ijhwang/rust_gtpv2 on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Git-ijhwang/rust_gtpv2 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "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] Downloading crates ... [INFO] [stderr] Downloaded windows-registry v0.2.0 [INFO] [stderr] Downloaded thiserror-impl v2.0.5 [INFO] [stderr] Downloaded thiserror v2.0.5 [INFO] [stderr] Downloaded serde_json v1.0.133 [INFO] [stderr] Downloaded sysinfo v0.33.1 [INFO] [stderr] Downloaded hyper v1.5.2 [INFO] [stderr] Downloaded h2 v0.4.7 [INFO] [stderr] Downloaded reqwest v0.12.12 [INFO] [stderr] Downloaded fern v0.7.1 [INFO] [stderr] Downloaded rustls v0.23.21 [INFO] [stderr] Downloaded rustix v0.38.43 [INFO] [stderr] Downloaded libc v0.2.167 [INFO] [stderr] Downloaded tokio v1.41.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053 [INFO] running `Command { std: "docker" "start" "-a" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053", kill_on_drop: false }` [INFO] [stdout] 9de5b06df3b2fa7efbfbd52a1b0ba69063d68d0c72d3d0e167ad79e7ada30053 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b [INFO] running `Command { std: "docker" "start" "-a" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Compiling libc v0.2.167 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking bytes v1.9.0 [INFO] [stderr] Checking pin-project-lite v0.2.15 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Compiling pkg-config v0.3.31 [INFO] [stderr] Checking itoa v1.0.14 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking writeable v0.5.5 [INFO] [stderr] Checking litemap v0.7.4 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking icu_locid_transform_data v1.5.0 [INFO] [stderr] Compiling openssl v0.10.68 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Compiling serde v1.0.215 [INFO] [stderr] Checking icu_properties_data v1.5.0 [INFO] [stderr] Compiling httparse v1.9.5 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking write16 v1.0.0 [INFO] [stderr] Checking utf16_iter v1.0.5 [INFO] [stderr] Compiling cc v1.2.4 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking icu_normalizer_data v1.5.0 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking http v1.2.0 [INFO] [stderr] Compiling serde_json v1.0.133 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Checking rustls-pki-types v1.10.1 [INFO] [stderr] Compiling thiserror v2.0.5 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking iana-time-zone v0.1.61 [INFO] [stderr] Checking ipnet v2.10.1 [INFO] [stderr] Checking fern v0.7.1 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking socket2 v0.5.8 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Compiling openssl-sys v0.9.104 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking sysinfo v0.33.1 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.215 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v2.0.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Checking tokio v1.41.1 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking tokio-util v0.7.13 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.39 [INFO] [stderr] Checking h2 v0.4.7 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking hyper v1.5.2 [INFO] [stderr] Checking hyper-util v0.1.10 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.12 [INFO] [stderr] Checking gtp-control v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::net::Ipv4Addr` [INFO] [stdout] --> src/gtpv2_send.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::Ipv4Addr; [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: `debug`, `error`, `trace`, and `warn` [INFO] [stdout] --> src/gtpv2_send.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::seq` [INFO] [stdout] --> src/gtpv2_send.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use rand::seq; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::gtpv2_type::*` [INFO] [stdout] --> src/gtpv2_send.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gtpv2_type::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::peers::*` [INFO] [stdout] --> src/gtpv2_send.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::peers::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/gtpv2_recv.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddrV4` [INFO] [stdout] --> src/gtpv2_recv.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddrV4, UdpSocket, SocketAddr}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/gtpv2_recv.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::gtp_dictionary::{self, *}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `session` [INFO] [stdout] --> src/gtpv2_recv.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::{find_pkt_in_queue, session, validate_gtpv2::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/gtpv2_recv.rs:383:25 [INFO] [stdout] | [INFO] [stdout] 383 | gpos += (4 + len); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 383 - gpos += (4 + len); [INFO] [stdout] 383 + gpos += 4 + len ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/gtpv2_ie.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn` [INFO] [stdout] --> src/gtp_msg.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie1` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct gtpv2c_ie1 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie2` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct gtpv2c_ie2 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie4` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | struct gtpv2c_ie4 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie8` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | struct gtpv2c_ie8 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie_tlv` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | struct gtpv2c_ie_tlv { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIeTlv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::Ipv4Addr` [INFO] [stdout] --> src/gtpv2_send.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::Ipv4Addr; [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: `debug`, `error`, `trace`, and `warn` [INFO] [stdout] --> src/gtpv2_send.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rand::seq` [INFO] [stdout] --> src/gtpv2_send.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use rand::seq; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::gtpv2_type::*` [INFO] [stdout] --> src/gtpv2_send.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::gtpv2_type::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::peers::*` [INFO] [stdout] --> src/gtpv2_send.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::peers::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `debug` [INFO] [stdout] --> src/gtpv2_recv.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddrV4` [INFO] [stdout] --> src/gtpv2_recv.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use std::net::{Ipv4Addr, SocketAddrV4, UdpSocket, SocketAddr}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/gtpv2_recv.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::gtp_dictionary::{self, *}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `session` [INFO] [stdout] --> src/gtpv2_recv.rs:15:32 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::{find_pkt_in_queue, session, validate_gtpv2::*}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/gtpv2_recv.rs:383:25 [INFO] [stdout] | [INFO] [stdout] 383 | gpos += (4 + len); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 383 - gpos += (4 + len); [INFO] [stdout] 383 + gpos += 4 + len ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/gtpv2_ie.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, and `warn` [INFO] [stdout] --> src/gtp_msg.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie1` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct gtpv2c_ie1 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie2` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct gtpv2c_ie2 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie4` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | struct gtpv2c_ie4 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie8` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | struct gtpv2c_ie8 { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIe8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `gtpv2c_ie_tlv` should have an upper camel case name [INFO] [stdout] --> src/gtp_msg.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | struct gtpv2c_ie_tlv { [INFO] [stdout] | ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Gtpv2cIeTlv` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/udpsock.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/pkt_manage.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/udpsock.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/gtp_dictionary.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/pkt_manage.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/gtp_dictionary.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info` and `warn` [INFO] [stdout] --> src/validate_gtpv2.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `info` and `warn` [INFO] [stdout] --> src/validate_gtpv2.rs:3:25 [INFO] [stdout] | [INFO] [stdout] 3 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/peers.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | use tokio::time::{self, Duration}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/peers.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/peers.rs:9:19 [INFO] [stdout] | [INFO] [stdout] 9 | use tokio::time::{self, Duration}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/peers.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::RwLock` [INFO] [stdout] --> src/ippool.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::sync::RwLock; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/ippool.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/session.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, RwLock, Mutex}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `trace` [INFO] [stdout] --> src/session.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::RwLock` [INFO] [stdout] --> src/ippool.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::sync::RwLock; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `bearer_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct bearer_info { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `BearerInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `pdn_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct pdn_info { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `PdnInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, and `warn` [INFO] [stdout] --> src/ippool.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `control_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct control_info { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/dump.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, error, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/msg_static.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/msg_static.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::sync::{RwLock, Mutex}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn` [INFO] [stdout] --> src/main.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/session.rs:4:22 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, RwLock, Mutex}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, and `trace` [INFO] [stdout] --> src/session.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `bearer_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct bearer_info { [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `BearerInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `pdn_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct pdn_info { [INFO] [stdout] | ^^^^^^^^ help: convert the identifier to upper camel case: `PdnInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `control_info` should have an upper camel case name [INFO] [stdout] --> src/session.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct control_info { [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlInfo` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `error` and `warn` [INFO] [stdout] --> src/dump.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use log::{info, error, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/msg_static.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/msg_static.rs:8:19 [INFO] [stdout] | [INFO] [stdout] 8 | use tokio::sync::{RwLock, Mutex}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `error`, `trace`, and `warn` [INFO] [stdout] --> src/main.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gtpv2_recv.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | let mut pdn_index:u32 = 0; [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/gtpv2_recv.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [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/gtpv2_recv.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | let mut pdn; [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/gtpv2_recv.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | let mut pdn_index:u32 = 0; [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/gtpv2_recv.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [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/gtpv2_recv.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | let mut pdn; [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/gtpv2_recv.rs:455:9 [INFO] [stdout] | [INFO] [stdout] 455 | let mut pdn; [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/gtpv2_recv.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | let mut pdn; [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/gtpv2_recv.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [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/gtpv2_recv.rs:934:9 [INFO] [stdout] | [INFO] [stdout] 934 | let mut peer = if let Some(value) = peers.get_mut(&u32::from(pkt_info.peer_ip)) { [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/gtpv2_recv.rs:956:9 [INFO] [stdout] | [INFO] [stdout] 956 | let mut restart_counter = 0; [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/gtpv2_recv.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [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/gtpv2_recv.rs:934:9 [INFO] [stdout] | [INFO] [stdout] 934 | let mut peer = if let Some(value) = peers.get_mut(&u32::from(pkt_info.peer_ip)) { [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/gtpv2_recv.rs:956:9 [INFO] [stdout] | [INFO] [stdout] 956 | let mut restart_counter = 0; [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/msg_static.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 109 | / loop { [INFO] [stdout] 110 | | cnt += 1; [INFO] [stdout] ... | [INFO] [stdout] 152 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 153 | [INFO] [stdout] 154 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/msg_static.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 109 | / loop { [INFO] [stdout] 110 | | cnt += 1; [INFO] [stdout] ... | [INFO] [stdout] 152 | | } [INFO] [stdout] | |_____- any code following this expression is unreachable [INFO] [stdout] 153 | [INFO] [stdout] 154 | Ok(()) [INFO] [stdout] | ^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `io::Write` [INFO] [stdout] --> src/main.rs:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | use std::{fs::File, fs::metadata,io::Write}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg_type` [INFO] [stdout] --> src/gtpv2_recv.rs:119:37 [INFO] [stdout] | [INFO] [stdout] 119 | fn add_ie_parse_info(&mut self, msg_type: u8, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `min_len` [INFO] [stdout] --> src/gtpv2_recv.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_len` [INFO] [stdout] --> src/gtpv2_recv.rs:120:22 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received` [INFO] [stdout] --> src/gtpv2_recv.rs:120:35 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ie_instance` [INFO] [stdout] --> src/gtpv2_recv.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | ie_instance: u8, ie_presence: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_instance` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ie_presence` [INFO] [stdout] --> src/gtpv2_recv.rs:121:26 [INFO] [stdout] | [INFO] [stdout] 121 | ie_instance: u8, ie_presence: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_presence` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/gtpv2_recv.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | Err(err) => Err("Unknow Message type".to_string()), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:415:75 [INFO] [stdout] | [INFO] [stdout] 415 | async fn recv_delete_session_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imsi` [INFO] [stdout] --> src/gtpv2_recv.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | let mut imsi: String; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_imsi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cause_value` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | let mut cause_value: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_cause_value` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pdn_index` [INFO] [stdout] --> src/gtpv2_recv.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | let mut pdn_index:u32 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/gtpv2_recv.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imsi` [INFO] [stdout] --> src/gtpv2_recv.rs:436:10 [INFO] [stdout] | [INFO] [stdout] 436 | let imsi = session.lock().unwrap().imsi.clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imsi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `cause_value` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | cause_value = 64; //Context_NOT_Found [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 `cause_value` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | cause_value = 64; //Context_NOT_Found [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:451:74 [INFO] [stdout] | [INFO] [stdout] 451 | async fn recv_modify_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ebi` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:454:19 [INFO] [stdout] | [INFO] [stdout] 454 | let mut ebi = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:549:74 [INFO] [stdout] | [INFO] [stdout] 549 | async fn recv_create_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pdn` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | let mut pdn; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_pdn` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ebi` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:553:19 [INFO] [stdout] | [INFO] [stdout] 553 | let mut ebi = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | pdn = ret; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pdn_index` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:654:9 [INFO] [stdout] | [INFO] [stdout] 654 | let mut pdn_index = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_pdn_index` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/gtpv2_recv.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn_index` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:891:26 [INFO] [stdout] | [INFO] [stdout] 891 | Ok(value) => pdn_index = value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn_index` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:859:17 [INFO] [stdout] | [INFO] [stdout] 859 | Ok(value) => pdn_index = value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:276:25 [INFO] [stdout] | [INFO] [stdout] 276 | let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | total_len += gtpv2_add_ie_paa(&mut buffer, 0, PDN_TYPE_IPV4, ip ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `restart_counter` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:921:31 [INFO] [stdout] | [INFO] [stdout] 921 | let mut restart_counter = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `restart_counter` [INFO] [stdout] --> src/gtpv2_recv.rs:956:9 [INFO] [stdout] | [INFO] [stdout] 956 | let mut restart_counter = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_restart_counter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ret` [INFO] [stdout] --> src/gtpv2_recv.rs:964:20 [INFO] [stdout] | [INFO] [stdout] 964 | if let Result::Ok(ret) = get_single_value(pkt_info.ie, GTPV2C_IE_RECOVERY) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ret` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sin_port` [INFO] [stdout] --> src/gtpv2_recv.rs:1084:25 [INFO] [stdout] | [INFO] [stdout] 1084 | let sin_port = addr.port(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mp` [INFO] [stdout] --> src/gtp_msg.rs:36:40 [INFO] [stdout] | [INFO] [stdout] 36 | l: u16, teid: u32, s: u32, mp: u8) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_mp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/gtp_msg.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let peer = if let Some(value) = peers.get_mut(&u32::from(locked_session.peer_ip)) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | total_len += gtpv2_add_ie_tbcd(&mut buffer, GTPV2C_IE_MSISDN, 0, msisdn_value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gtp_msg.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | let mut buffer:[u8;1024] = [0u8;1024]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/gtp_msg.rs:352:41 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pdn_index` [INFO] [stdout] --> src/gtp_msg.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | pdn_index: usize) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `session` [INFO] [stdout] --> src/gtp_msg.rs:358:9 [INFO] [stdout] | [INFO] [stdout] 358 | let session = session.lock().unwrap(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/gtp_msg.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | let mut buffer:[u8;1024] = [0u8;1024]; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pkt` [INFO] [stdout] --> src/pkt_manage.rs:122:14 [INFO] [stdout] | [INFO] [stdout] 122 | Some(pkt) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pkt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `io::Write` [INFO] [stdout] --> src/main.rs:25:34 [INFO] [stdout] | [INFO] [stdout] 25 | use std::{fs::File, fs::metadata,io::Write}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg_type` [INFO] [stdout] --> src/gtpv2_recv.rs:119:37 [INFO] [stdout] | [INFO] [stdout] 119 | fn add_ie_parse_info(&mut self, msg_type: u8, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `min_len` [INFO] [stdout] --> src/gtpv2_recv.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_min_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_len` [INFO] [stdout] --> src/gtpv2_recv.rs:120:22 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received` [INFO] [stdout] --> src/gtpv2_recv.rs:120:35 [INFO] [stdout] | [INFO] [stdout] 120 | min_len: u8, max_len: u8, received: u8, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ie_instance` [INFO] [stdout] --> src/gtpv2_recv.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | ie_instance: u8, ie_presence: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_instance` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ie_presence` [INFO] [stdout] --> src/gtpv2_recv.rs:121:26 [INFO] [stdout] | [INFO] [stdout] 121 | ie_instance: u8, ie_presence: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ie_presence` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/gtpv2_recv.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | Err(err) => Err("Unknow Message type".to_string()), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pflag` [INFO] [stdout] --> src/validate_gtpv2.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let pflag = (data[p] & GTPV2_P_FLAG) > 0; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pflag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dictionary` [INFO] [stdout] --> src/validate_gtpv2.rs:177:40 [INFO] [stdout] | [INFO] [stdout] 177 | fn extract_nested_ies(raw_data: &[u8], dictionary: &GtpMessage) -> Vec<(u8, usize) > { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dictionary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:415:75 [INFO] [stdout] | [INFO] [stdout] 415 | async fn recv_delete_session_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imsi` [INFO] [stdout] --> src/gtpv2_recv.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | let mut imsi: String; [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_imsi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cause_value` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | let mut cause_value: u8; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_cause_value` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pdn_index` [INFO] [stdout] --> src/gtpv2_recv.rs:421:9 [INFO] [stdout] | [INFO] [stdout] 421 | let mut pdn_index:u32 = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/gtpv2_recv.rs:423:9 [INFO] [stdout] | [INFO] [stdout] 423 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `imsi` [INFO] [stdout] --> src/gtpv2_recv.rs:436:10 [INFO] [stdout] | [INFO] [stdout] 436 | let imsi = session.lock().unwrap().imsi.clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_imsi` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `cause_value` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | cause_value = 64; //Context_NOT_Found [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 `cause_value` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:443:9 [INFO] [stdout] | [INFO] [stdout] 443 | cause_value = 64; //Context_NOT_Found [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `echo_period` [INFO] [stdout] --> src/peers.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | let echo_period = config.get("ECHO_PERIOD").unwrap().parse::().unwrap() ; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_echo_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:451:74 [INFO] [stdout] | [INFO] [stdout] 451 | async fn recv_modify_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/peers.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | for (key, peer) in peers.iter_mut() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ebi` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:454:19 [INFO] [stdout] | [INFO] [stdout] 454 | let mut ebi = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sess_list` [INFO] [stdout] --> src/gtpv2_recv.rs:549:74 [INFO] [stdout] | [INFO] [stdout] 549 | async fn recv_create_bearer_req(pkt_info: PktInfo, teid_list: &TeidList, sess_list: &SessionList) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sess_list` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pdn` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | let mut pdn; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_pdn` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ebi` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:553:19 [INFO] [stdout] | [INFO] [stdout] 553 | let mut ebi = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | pdn = ret; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pdn_index` is assigned to, but never used [INFO] [stdout] --> src/gtpv2_recv.rs:654:9 [INFO] [stdout] | [INFO] [stdout] 654 | let mut pdn_index = 0; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_pdn_index` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `address` [INFO] [stdout] --> src/gtpv2_recv.rs:655:9 [INFO] [stdout] | [INFO] [stdout] 655 | let mut address = [Ipv4Addr::new(0,0,0,0); 48]; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_address` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn_index` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:891:26 [INFO] [stdout] | [INFO] [stdout] 891 | Ok(value) => pdn_index = value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pdn_index` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:859:17 [INFO] [stdout] | [INFO] [stdout] 859 | Ok(value) => pdn_index = value, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/session.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 350 | let mut session = session.lock().unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:276:25 [INFO] [stdout] | [INFO] [stdout] 276 | let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:282:5 [INFO] [stdout] | [INFO] [stdout] 282 | total_len += gtpv2_add_ie_paa(&mut buffer, 0, PDN_TYPE_IPV4, ip ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `restart_counter` is never read [INFO] [stdout] --> src/gtpv2_recv.rs:921:31 [INFO] [stdout] | [INFO] [stdout] 921 | let mut restart_counter = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `restart_counter` [INFO] [stdout] --> src/gtpv2_recv.rs:956:9 [INFO] [stdout] | [INFO] [stdout] 956 | let mut restart_counter = 0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_restart_counter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ret` [INFO] [stdout] --> src/gtpv2_recv.rs:964:20 [INFO] [stdout] | [INFO] [stdout] 964 | if let Result::Ok(ret) = get_single_value(pkt_info.ie, GTPV2C_IE_RECOVERY) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ret` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sin_port` [INFO] [stdout] --> src/gtpv2_recv.rs:1084:25 [INFO] [stdout] | [INFO] [stdout] 1084 | let sin_port = addr.port(); [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sin_port` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mp` [INFO] [stdout] --> src/gtp_msg.rs:36:40 [INFO] [stdout] | [INFO] [stdout] 36 | l: u16, teid: u32, s: u32, mp: u8) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_mp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/gtp_msg.rs:330:9 [INFO] [stdout] | [INFO] [stdout] 330 | let peer = if let Some(value) = peers.get_mut(&u32::from(locked_session.peer_ip)) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:314:25 [INFO] [stdout] | [INFO] [stdout] 314 | let mut total_len = gtpv2_add_ie_cause( &mut buffer, 0, 16, 0, None, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `total_len` is never read [INFO] [stdout] --> src/gtp_msg.rs:318:5 [INFO] [stdout] | [INFO] [stdout] 318 | total_len += gtpv2_add_ie_tbcd(&mut buffer, GTPV2C_IE_MSISDN, 0, msisdn_value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/gtp_msg.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | let mut buffer:[u8;1024] = [0u8;1024]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/gtp_msg.rs:352:41 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pdn_index` [INFO] [stdout] --> src/gtp_msg.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | pdn_index: usize) [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pdn_index` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `session` [INFO] [stdout] --> src/gtp_msg.rs:358:9 [INFO] [stdout] | [INFO] [stdout] 358 | let session = session.lock().unwrap(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `buffer` [INFO] [stdout] --> src/gtp_msg.rs:364:9 [INFO] [stdout] | [INFO] [stdout] 364 | let mut buffer:[u8;1024] = [0u8;1024]; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pkt` [INFO] [stdout] --> src/pkt_manage.rs:122:14 [INFO] [stdout] | [INFO] [stdout] 122 | Some(pkt) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_pkt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `IeMessage` is more private than the item `get_ie_value` [INFO] [stdout] --> src/gtpv2_recv.rs:353:1 [INFO] [stdout] | [INFO] [stdout] 353 | pub fn get_ie_value(raw_data: &[u8]) -> IeMessage [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_ie_value` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `IeMessage` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/gtpv2_recv.rs:326:1 [INFO] [stdout] | [INFO] [stdout] 326 | struct IeMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2Peer` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | struct Gtpv2Peer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BearerTFT` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct BearerTFT { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeDetailInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | struct Gtpv2IeDetailInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | struct Gtpv2IeInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `add_ie_parse_info` are never used [INFO] [stdout] --> src/gtpv2_recv.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 110 | impl Gtpv2IeInfo { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 111 | fn new (msg_type: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | fn add_ie_parse_info(&mut self, msg_type: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IeParseDetails` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | struct IeParseDetails { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IeParseGroupDetails` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | struct IeParseGroupDetails { //XXX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2GroupIeParseInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | struct Gtpv2GroupIeParseInfo {//gtpv2_group_ie_parse_info_t [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeParseInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:174:8 [INFO] [stdout] | [INFO] [stdout] 174 | struct Gtpv2IeParseInfo { //gtpv2_ie_parse_info_t [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_gtpv2_version_not_supported` is never used [INFO] [stdout] --> src/gtpv2_recv.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn send_gtpv2_version_not_supported( _peer: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_dictionary` is never used [INFO] [stdout] --> src/gtpv2_recv.rs:229:14 [INFO] [stdout] | [INFO] [stdout] 229 | pub async fn find_dictionary(msg_type: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 245 | enum LVValue { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 248 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LVValue` 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: function `gtpv2_add_ie_tv2` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | pub fn gtpv2_add_ie_tv2<'a>( msg: &'a mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_add_ie_tv4` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn gtpv2_add_ie_tv4<'a>( msg: &'a mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_add_ie_mccmnc` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn gtpv2_add_ie_mccmnc( msg: &mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie1` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct gtpv2c_ie1 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/gtp_msg.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl gtpv2c_ie1 { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 91 | pub fn new(p: &mut [u8], t: u8, i: u8, v: u8){ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie2` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct gtpv2c_ie2 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie4` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | struct gtpv2c_ie4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie8` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | struct gtpv2c_ie8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie_tlv` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | struct gtpv2c_ie_tlv { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_ie` is never used [INFO] [stdout] --> src/gtp_msg.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn create_ie <'a> (p:&'a mut [u8], t:u8, val:u8) -> usize [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv1` is never used [INFO] [stdout] --> src/gtp_msg.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn gtpv2_get_ie_tv1(data: &[u8], val: &mut u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv2` is never used [INFO] [stdout] --> src/gtp_msg.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn gtpv2_get_ie_tv2(data: &[u8], val: &mut u16) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv4` is never used [INFO] [stdout] --> src/gtp_msg.rs:163:4 [INFO] [stdout] | [INFO] [stdout] 163 | fn gtpv2_get_ie_tv4(data: &[u8], val: &mut u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tlv` is never used [INFO] [stdout] --> src/gtp_msg.rs:171:4 [INFO] [stdout] | [INFO] [stdout] 171 | fn gtpv2_get_ie_tlv(data: &[u8], val: &mut [u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_under_tv4` is never used [INFO] [stdout] --> src/gtp_msg.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn gtpv2_get_ie_under_tv4( data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_mbr` is never used [INFO] [stdout] --> src/gtp_msg.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn gtpv2_get_ie_mbr(data: &[u8], up: &mut u32, down: &mut u32) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtp_send_delete_session_request` is never used [INFO] [stdout] --> src/gtp_msg.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_send_time`, `increment_send_count`, and `is_expired` are never used [INFO] [stdout] --> src/pkt_manage.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl EncapPkt { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn update_send_time(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn increment_send_count(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `pop` and `que_print` are never used [INFO] [stdout] --> src/pkt_manage.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl MsgQue { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn pop(&mut self) -> EncapPkt { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn que_print(self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `check_peer`, `put_peer`, `change_peer_status`, and `print` are never used [INFO] [stdout] --> src/peers.rs:75:18 [INFO] [stdout] | [INFO] [stdout] 45 | impl Peer { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub async fn check_peer(ip: Ipv4Addr) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub async fn put_peer(peer: Peer) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn change_peer_status(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub async fn print() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `del` is never used [INFO] [stdout] --> src/session.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl TeidList { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn del(&self, teid: &u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `del` and `get` are never used [INFO] [stdout] --> src/session.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 42 | impl SessionList { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn del(&self, imsi: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn get (&self, imsi:&str) -> Option>> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `used` is never read [INFO] [stdout] --> src/session.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct bearer_info { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 97 | pub used: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `bearer_info` 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 `used` is never read [INFO] [stdout] --> src/session.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct pdn_info { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 124 | pub used: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `pdn_info` 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: fields `teid`, `status`, and `seqnum` are never read [INFO] [stdout] --> src/session.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct Session { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 166 | pub teid: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub status: u8, //Session Status [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 176 | pub seqnum: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Session` 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: function `check_pdn` is never used [INFO] [stdout] --> src/session.rs:237:8 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn check_pdn(session: &Session, lbi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bearer_by_lbi` is never used [INFO] [stdout] --> src/session.rs:243:8 [INFO] [stdout] | [INFO] [stdout] 243 | pub fn check_bearer_by_lbi(session: &Session, lbi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bearer_by_ebi` is never used [INFO] [stdout] --> src/session.rs:249:8 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn check_bearer_by_ebi(session: &Session, ebi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_empty_pdn` is never used [INFO] [stdout] --> src/session.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn find_empty_pdn(session: &mut Session) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/msg_static.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl MessageStats { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 32 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MessageStatsData` is never used [INFO] [stdout] --> src/msg_static.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | pub type MessageStatsData = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/msg_static.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 91 | impl CpuStats { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 92 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_send.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | update_message_stats(msg_type, true, 0); [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 implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | gtp_send_delete_session_response(session.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:463:9 [INFO] [stdout] | [INFO] [stdout] 463 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:472:9 [INFO] [stdout] | [INFO] [stdout] 472 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:521:25 [INFO] [stdout] | [INFO] [stdout] 521 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:544:5 [INFO] [stdout] | [INFO] [stdout] 544 | gtp_send_modify_bearer_response (session.clone(), pdn.lbi); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:616:25 [INFO] [stdout] | [INFO] [stdout] 616 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:673:13 [INFO] [stdout] | [INFO] [stdout] 673 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:707:13 [INFO] [stdout] | [INFO] [stdout] 707 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:736:21 [INFO] [stdout] | [INFO] [stdout] 736 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:764:25 [INFO] [stdout] | [INFO] [stdout] 764 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_MISSING_OR_UNKNOWN_APN); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:822:25 [INFO] [stdout] | [INFO] [stdout] 822 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_DENIED_IN_RAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:844:13 [INFO] [stdout] | [INFO] [stdout] 844 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_TEMPORARILY_REJECTED); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:861:17 [INFO] [stdout] | [INFO] [stdout] 861 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:870:21 [INFO] [stdout] | [INFO] [stdout] 870 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:882:13 [INFO] [stdout] | [INFO] [stdout] 882 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:893:17 [INFO] [stdout] | [INFO] [stdout] 893 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:901:17 [INFO] [stdout] | [INFO] [stdout] 901 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:913:2 [INFO] [stdout] | [INFO] [stdout] 913 | gtp_send_create_session_response(session).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 913 | let _ = gtp_send_create_session_response(session).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:928:9 [INFO] [stdout] | [INFO] [stdout] 928 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:931:5 [INFO] [stdout] | [INFO] [stdout] 931 | update_message_stats(pkt_info.header.t, true, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:947:5 [INFO] [stdout] | [INFO] [stdout] 947 | gtp_send_echo_response(peer , restart_counter).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 947 | let _ = gtp_send_echo_response(peer , restart_counter).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | update_message_stats(pkt_info.header.t, true, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:980:13 [INFO] [stdout] | [INFO] [stdout] 980 | recv_echo_req(pkt_info).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 980 | let _ = recv_echo_req(pkt_info).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:983:13 [INFO] [stdout] | [INFO] [stdout] 983 | find_pkt_in_queue(peer.ip, pkt_info.header.s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:984:13 [INFO] [stdout] | [INFO] [stdout] 984 | recv_echo_rsp(pkt_info).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 984 | let _ = recv_echo_rsp(pkt_info).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:989:13 [INFO] [stdout] | [INFO] [stdout] 989 | recv_crte_sess_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 989 | let _ = recv_crte_sess_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:994:13 [INFO] [stdout] | [INFO] [stdout] 994 | recv_modify_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 994 | let _ = recv_modify_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:998:13 [INFO] [stdout] | [INFO] [stdout] 998 | recv_create_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 998 | let _ = recv_create_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:1003:13 [INFO] [stdout] | [INFO] [stdout] 1003 | recv_delete_session_req( pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1003 | let _ = recv_delete_session_req( pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:1052:9 [INFO] [stdout] | [INFO] [stdout] 1052 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_LENGTH); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/gtp_msg.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn encode<'a> (p:&'a mut [u8], p_flag: bool, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] ... [INFO] [stdout] 37 | -> (&[u8], usize) [INFO] [stdout] | ^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 37 | -> (&'a [u8], usize) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/gtp_msg.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 95 | let _ = &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] ); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:260:5 [INFO] [stdout] | [INFO] [stdout] 260 | send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 260 | let _ = send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:300:5 [INFO] [stdout] | [INFO] [stdout] 300 | send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 300 | let _ = send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:345:5 [INFO] [stdout] | [INFO] [stdout] 345 | send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 345 | let _ = send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:391:5 [INFO] [stdout] | [INFO] [stdout] 391 | send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 391 | let _ = send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 411 | send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 411 | let _ = send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `QoS` should have a snake case name [INFO] [stdout] --> src/session.rs:106:6 [INFO] [stdout] | [INFO] [stdout] 106 | pub QoS: BearerQos, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `qo_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pflag` [INFO] [stdout] --> src/validate_gtpv2.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let pflag = (data[p] & GTPV2_P_FLAG) > 0; [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_pflag` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dictionary` [INFO] [stdout] --> src/validate_gtpv2.rs:177:40 [INFO] [stdout] | [INFO] [stdout] 177 | fn extract_nested_ies(raw_data: &[u8], dictionary: &GtpMessage) -> Vec<(u8, usize) > { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dictionary` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `echo_period` [INFO] [stdout] --> src/peers.rs:197:6 [INFO] [stdout] | [INFO] [stdout] 197 | let echo_period = config.get("ECHO_PERIOD").unwrap().parse::().unwrap() ; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_echo_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/peers.rs:204:8 [INFO] [stdout] | [INFO] [stdout] 204 | for (key, peer) in peers.iter_mut() { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/session.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 350 | let mut session = session.lock().unwrap(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `IeMessage` is more private than the item `get_ie_value` [INFO] [stdout] --> src/gtpv2_recv.rs:353:1 [INFO] [stdout] | [INFO] [stdout] 353 | pub fn get_ie_value(raw_data: &[u8]) -> IeMessage [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function `get_ie_value` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `IeMessage` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/gtpv2_recv.rs:326:1 [INFO] [stdout] | [INFO] [stdout] 326 | struct IeMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2Peer` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | struct Gtpv2Peer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BearerTFT` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct BearerTFT { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeDetailInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | struct Gtpv2IeDetailInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | struct Gtpv2IeInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `add_ie_parse_info` are never used [INFO] [stdout] --> src/gtpv2_recv.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 110 | impl Gtpv2IeInfo { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 111 | fn new (msg_type: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | fn add_ie_parse_info(&mut self, msg_type: u8, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IeParseDetails` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | struct IeParseDetails { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `IeParseGroupDetails` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | struct IeParseGroupDetails { //XXX [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2GroupIeParseInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:165:8 [INFO] [stdout] | [INFO] [stdout] 165 | struct Gtpv2GroupIeParseInfo {//gtpv2_group_ie_parse_info_t [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Gtpv2IeParseInfo` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:174:8 [INFO] [stdout] | [INFO] [stdout] 174 | struct Gtpv2IeParseInfo { //gtpv2_ie_parse_info_t [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_gtpv2_version_not_supported` is never used [INFO] [stdout] --> src/gtpv2_recv.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn send_gtpv2_version_not_supported( _peer: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_dictionary` is never used [INFO] [stdout] --> src/gtpv2_recv.rs:229:14 [INFO] [stdout] | [INFO] [stdout] 229 | pub async fn find_dictionary(msg_type: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `None` is never constructed [INFO] [stdout] --> src/gtpv2_recv.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 245 | enum LVValue { [INFO] [stdout] | ------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 248 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LVValue` 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: function `gtpv2_add_ie_tv2` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | pub fn gtpv2_add_ie_tv2<'a>( msg: &'a mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_add_ie_tv4` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn gtpv2_add_ie_tv4<'a>( msg: &'a mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_add_ie_mccmnc` is never used [INFO] [stdout] --> src/gtpv2_ie.rs:256:8 [INFO] [stdout] | [INFO] [stdout] 256 | pub fn gtpv2_add_ie_mccmnc( msg: &mut [u8; 1024], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie1` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct gtpv2c_ie1 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/gtp_msg.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 90 | impl gtpv2c_ie1 { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 91 | pub fn new(p: &mut [u8], t: u8, i: u8, v: u8){ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie2` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:100:8 [INFO] [stdout] | [INFO] [stdout] 100 | struct gtpv2c_ie2 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie4` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:107:8 [INFO] [stdout] | [INFO] [stdout] 107 | struct gtpv2c_ie4 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie8` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | struct gtpv2c_ie8 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `gtpv2c_ie_tlv` is never constructed [INFO] [stdout] --> src/gtp_msg.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | struct gtpv2c_ie_tlv { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_ie` is never used [INFO] [stdout] --> src/gtp_msg.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn create_ie <'a> (p:&'a mut [u8], t:u8, val:u8) -> usize [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv1` is never used [INFO] [stdout] --> src/gtp_msg.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | fn gtpv2_get_ie_tv1(data: &[u8], val: &mut u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv2` is never used [INFO] [stdout] --> src/gtp_msg.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn gtpv2_get_ie_tv2(data: &[u8], val: &mut u16) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tv4` is never used [INFO] [stdout] --> src/gtp_msg.rs:163:4 [INFO] [stdout] | [INFO] [stdout] 163 | fn gtpv2_get_ie_tv4(data: &[u8], val: &mut u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_tlv` is never used [INFO] [stdout] --> src/gtp_msg.rs:171:4 [INFO] [stdout] | [INFO] [stdout] 171 | fn gtpv2_get_ie_tlv(data: &[u8], val: &mut [u8]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_under_tv4` is never used [INFO] [stdout] --> src/gtp_msg.rs:180:8 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn gtpv2_get_ie_under_tv4( data: &[u8], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtpv2_get_ie_mbr` is never used [INFO] [stdout] --> src/gtp_msg.rs:227:8 [INFO] [stdout] | [INFO] [stdout] 227 | pub fn gtpv2_get_ie_mbr(data: &[u8], up: &mut u32, down: &mut u32) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gtp_send_delete_session_request` is never used [INFO] [stdout] --> src/gtp_msg.rs:352:8 [INFO] [stdout] | [INFO] [stdout] 352 | pub fn gtp_send_delete_session_request (peer:Peer, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_send_time`, `increment_send_count`, and `is_expired` are never used [INFO] [stdout] --> src/pkt_manage.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl EncapPkt { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn update_send_time(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn increment_send_count(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn is_expired(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `pop` and `que_print` are never used [INFO] [stdout] --> src/pkt_manage.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl MsgQue { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn pop(&mut self) -> EncapPkt { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn que_print(self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `check_peer`, `put_peer`, `change_peer_status`, and `print` are never used [INFO] [stdout] --> src/peers.rs:75:18 [INFO] [stdout] | [INFO] [stdout] 45 | impl Peer { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 75 | pub async fn check_peer(ip: Ipv4Addr) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub async fn put_peer(peer: Peer) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn change_peer_status(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub async fn print() { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `del` is never used [INFO] [stdout] --> src/session.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl TeidList { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn del(&self, teid: &u32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `del` and `get` are never used [INFO] [stdout] --> src/session.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 42 | impl SessionList { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn del(&self, imsi: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn get (&self, imsi:&str) -> Option>> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `used` is never read [INFO] [stdout] --> src/session.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct bearer_info { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 97 | pub used: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `bearer_info` 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 `used` is never read [INFO] [stdout] --> src/session.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct pdn_info { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 124 | pub used: bool, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `pdn_info` 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: fields `teid`, `status`, and `seqnum` are never read [INFO] [stdout] --> src/session.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 163 | pub struct Session { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 166 | pub teid: u32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub status: u8, //Session Status [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 176 | pub seqnum: u32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Session` 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: function `check_pdn` is never used [INFO] [stdout] --> src/session.rs:237:8 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn check_pdn(session: &Session, lbi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bearer_by_lbi` is never used [INFO] [stdout] --> src/session.rs:243:8 [INFO] [stdout] | [INFO] [stdout] 243 | pub fn check_bearer_by_lbi(session: &Session, lbi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `check_bearer_by_ebi` is never used [INFO] [stdout] --> src/session.rs:249:8 [INFO] [stdout] | [INFO] [stdout] 249 | pub fn check_bearer_by_ebi(session: &Session, ebi: u8) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_empty_pdn` is never used [INFO] [stdout] --> src/session.rs:255:8 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn find_empty_pdn(session: &mut Session) [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/msg_static.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl MessageStats { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 32 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MessageStatsData` is never used [INFO] [stdout] --> src/msg_static.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | pub type MessageStatsData = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/msg_static.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 91 | impl CpuStats { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 92 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_send.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | update_message_stats(msg_type, true, 0); [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 implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | gtp_send_delete_session_response(session.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:463:9 [INFO] [stdout] | [INFO] [stdout] 463 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:472:9 [INFO] [stdout] | [INFO] [stdout] 472 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:521:25 [INFO] [stdout] | [INFO] [stdout] 521 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:544:5 [INFO] [stdout] | [INFO] [stdout] 544 | gtp_send_modify_bearer_response (session.clone(), pdn.lbi); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:616:25 [INFO] [stdout] | [INFO] [stdout] 616 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:673:13 [INFO] [stdout] | [INFO] [stdout] 673 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:707:13 [INFO] [stdout] | [INFO] [stdout] 707 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:736:21 [INFO] [stdout] | [INFO] [stdout] 736 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:764:25 [INFO] [stdout] | [INFO] [stdout] 764 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_MISSING_OR_UNKNOWN_APN); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:822:25 [INFO] [stdout] | [INFO] [stdout] 822 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_DENIED_IN_RAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:844:13 [INFO] [stdout] | [INFO] [stdout] 844 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_TEMPORARILY_REJECTED); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:861:17 [INFO] [stdout] | [INFO] [stdout] 861 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:870:21 [INFO] [stdout] | [INFO] [stdout] 870 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:882:13 [INFO] [stdout] | [INFO] [stdout] 882 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:893:17 [INFO] [stdout] | [INFO] [stdout] 893 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:901:17 [INFO] [stdout] | [INFO] [stdout] 901 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_SYSTEM_FAILURE); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:913:2 [INFO] [stdout] | [INFO] [stdout] 913 | gtp_send_create_session_response(session).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 913 | let _ = gtp_send_create_session_response(session).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:928:9 [INFO] [stdout] | [INFO] [stdout] 928 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_MESSAGE_FORMAT); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:931:5 [INFO] [stdout] | [INFO] [stdout] 931 | update_message_stats(pkt_info.header.t, true, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:947:5 [INFO] [stdout] | [INFO] [stdout] 947 | gtp_send_echo_response(peer , restart_counter).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 947 | let _ = gtp_send_echo_response(peer , restart_counter).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:968:5 [INFO] [stdout] | [INFO] [stdout] 968 | update_message_stats(pkt_info.header.t, true, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:980:13 [INFO] [stdout] | [INFO] [stdout] 980 | recv_echo_req(pkt_info).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 980 | let _ = recv_echo_req(pkt_info).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:983:13 [INFO] [stdout] | [INFO] [stdout] 983 | find_pkt_in_queue(peer.ip, pkt_info.header.s); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:984:13 [INFO] [stdout] | [INFO] [stdout] 984 | recv_echo_rsp(pkt_info).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 984 | let _ = recv_echo_rsp(pkt_info).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:989:13 [INFO] [stdout] | [INFO] [stdout] 989 | recv_crte_sess_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 989 | let _ = recv_crte_sess_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:994:13 [INFO] [stdout] | [INFO] [stdout] 994 | recv_modify_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 994 | let _ = recv_modify_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:998:13 [INFO] [stdout] | [INFO] [stdout] 998 | recv_create_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 998 | let _ = recv_create_bearer_req(pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:1003:13 [INFO] [stdout] | [INFO] [stdout] 1003 | recv_delete_session_req( pkt_info, teid_list, sess_list).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1003 | let _ = recv_delete_session_req( pkt_info, teid_list, sess_list).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Future` that must be used [INFO] [stdout] --> src/gtpv2_recv.rs:1052:9 [INFO] [stdout] | [INFO] [stdout] 1052 | update_message_stats(pkt_info.header.t, false, GTPV2C_CAUSE_INVALID_LENGTH); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: futures do nothing unless you `.await` or poll them [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/gtp_msg.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn encode<'a> (p:&'a mut [u8], p_flag: bool, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] ... [INFO] [stdout] 37 | -> (&[u8], usize) [INFO] [stdout] | ^^^^^ the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 37 | -> (&'a [u8], usize) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/gtp_msg.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 95 | let _ = &p[..5].copy_from_slice( &[ t, l[0], l[1], i, v, ] ); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:260:5 [INFO] [stdout] | [INFO] [stdout] 260 | send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 260 | let _ = send_gtpv2_message(&buf, GTPV2C_DELETE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:300:5 [INFO] [stdout] | [INFO] [stdout] 300 | send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 300 | let _ = send_gtpv2_message(&buf, GTPV2C_CREATE_SESSION_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:345:5 [INFO] [stdout] | [INFO] [stdout] 345 | send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 345 | let _ = send_gtpv2_message(&buf, GTPV2C_MODIFY_BEARER_RSP, session.clone(), false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:391:5 [INFO] [stdout] | [INFO] [stdout] 391 | send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 391 | let _ = send_gtpv2_message_without_session( &buf, GTPV2C_ECHO_REQ, peer, false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/gtp_msg.rs:411:5 [INFO] [stdout] | [INFO] [stdout] 411 | send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 411 | let _ = send_gtpv2_message_without_session(&buf, GTPV2C_ECHO_RSP, peer, false).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: structure field `QoS` should have a snake case name [INFO] [stdout] --> src/session.rs:106:6 [INFO] [stdout] | [INFO] [stdout] 106 | pub QoS: BearerQos, [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `qo_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.79s [INFO] running `Command { std: "docker" "inspect" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b", kill_on_drop: false }` [INFO] [stdout] 2cb11ea271bb8bdf51ed7ffb559f2ef6f38df6521deb5925fd2e66df04c9913b