[INFO] cloning repository https://github.com/hahastrongshi/rdtls
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hahastrongshi/rdtls" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhahastrongshi%2Frdtls", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhahastrongshi%2Frdtls'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 683ca9e9ae8a39ea17ce8ccc85548074a6b3fd19
[INFO] testing hahastrongshi/rdtls against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhahastrongshi%2Frdtls" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/hahastrongshi/rdtls
[INFO] finished tweaking git repo https://github.com/hahastrongshi/rdtls
[INFO] tweaked toml for git repo https://github.com/hahastrongshi/rdtls written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hahastrongshi/rdtls on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hahastrongshi/rdtls 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" "+1.97.0-beta.6" "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]     Updating git repository `https://github.com/hahastrongshi/tls-decrypt.git`
[INFO] [stderr]     Updating git repository `https://github.com/thegwan/tls-parser.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded phf_codegen v0.10.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.79
[INFO] [stderr]   Downloaded phf_generator v0.10.0
[INFO] [stderr]   Downloaded phf_shared v0.10.0
[INFO] [stderr]   Downloaded phf v0.10.1
[INFO] [stderr]   Downloaded pnet_base v0.33.0
[INFO] [stderr]   Downloaded pnet_sys v0.33.0
[INFO] [stderr]   Downloaded pnet_macros_support v0.33.0
[INFO] [stderr]   Downloaded pnet_transport v0.33.0
[INFO] [stderr]   Downloaded thiserror-impl v1.0.58
[INFO] [stderr]   Downloaded strum v0.21.0
[INFO] [stderr]   Downloaded pktparse v0.7.1
[INFO] [stderr]   Downloaded strum_macros v0.21.1
[INFO] [stderr]   Downloaded no-std-net v0.6.0
[INFO] [stderr]   Downloaded pnet_macros v0.33.0
[INFO] [stderr]   Downloaded pnet_datalink v0.33.0
[INFO] [stderr]   Downloaded either v1.10.0
[INFO] [stderr]   Downloaded thiserror v1.0.58
[INFO] [stderr]   Downloaded ipnetwork v0.20.0
[INFO] [stderr]   Downloaded nom-derive v0.10.1
[INFO] [stderr]   Downloaded nom-derive-impl v0.10.1
[INFO] [stderr]   Downloaded pnet v0.33.0
[INFO] [stderr]   Downloaded pnet_packet v0.33.0
[INFO] [stderr]   Downloaded structopt v0.3.26
[INFO] [stderr]   Downloaded openssl-sys v0.9.101
[INFO] [stderr]   Downloaded cc v1.0.90
[INFO] [stderr]   Downloaded syn v2.0.55
[INFO] [stderr]   Downloaded serde_json v1.0.114
[INFO] [stderr]   Downloaded pcap-sys v0.1.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2
[INFO] running `Command { std: "docker" "start" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.79
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling cc v1.0.90
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling no-std-net v0.6.0
[INFO] [stderr]    Compiling regex-syntax v0.8.2
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling toml_datetime v0.6.5
[INFO] [stderr]    Compiling pnet_base v0.33.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling unicode-segmentation v1.11.0
[INFO] [stderr]    Compiling rustversion v1.0.14
[INFO] [stderr]    Compiling pnet_macros_support v0.33.0
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling unicode-width v0.1.11
[INFO] [stderr]    Compiling zerocopy v0.7.32
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling bitflags v2.5.0
[INFO] [stderr]    Compiling pnet v0.33.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.16
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling serde_json v1.0.114
[INFO] [stderr]    Compiling getrandom v0.2.12
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling strsim v0.8.0
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling thiserror v1.0.58
[INFO] [stderr]    Compiling syn v2.0.55
[INFO] [stderr]    Compiling anyhow v1.0.81
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling pcap-sys v0.1.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling either v1.10.0
[INFO] [stderr]    Compiling itoa v1.0.10
[INFO] [stderr]    Compiling openssl-sys v0.9.101
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]    Compiling pnet_sys v0.33.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling ryu v1.0.17
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling md5 v0.7.0
[INFO] [stderr]    Compiling strum v0.21.0
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.12
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.58
[INFO] [stderr]    Compiling tls-parser v0.12.0 (https://github.com/thegwan/tls-parser.git#2c76bd13)
[INFO] [stderr]    Compiling rusticata-macros v4.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.6
[INFO] [stderr]    Compiling nom-derive-impl v0.10.1
[INFO] [stderr]    Compiling num_enum_derive v0.5.11
[INFO] [stderr]    Compiling structopt-derive v0.4.18
[INFO] [stderr]    Compiling strum_macros v0.21.1
[INFO] [stderr]    Compiling num_enum v0.5.11
[INFO] [stderr]    Compiling nom-derive v0.10.1
[INFO] [stderr]    Compiling regex v1.10.4
[INFO] [stderr]    Compiling structopt v0.3.26
[INFO] [stderr]    Compiling pnet_macros v0.33.0
[INFO] [stderr]    Compiling pnet_packet v0.33.0
[INFO] [stderr]    Compiling tls-decrypt v0.1.4 (https://github.com/hahastrongshi/tls-decrypt.git#8de8897d)
[INFO] [stderr]    Compiling ipnetwork v0.20.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling pktparse v0.7.1
[INFO] [stderr]    Compiling pnet_datalink v0.33.0
[INFO] [stderr]    Compiling pnet_transport v0.33.0
[INFO] [stderr]    Compiling rdtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::protocols::tls`
[INFO] [stdout]  --> src/protocols/tcp.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocols::tls;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnInfo`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `openssl::pkey::Private`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use openssl::pkey::Private;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Padding` and `Rsa`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use openssl::rsa::{Padding, Rsa};
[INFO] [stdout]    |                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cipher`, `Crypter`, and `Mode`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 | use openssl::symm::{Cipher, Crypter, Mode};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MessageDigest` and `hash`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | use openssl::hash::{hash, MessageDigest};
[INFO] [stdout]    |                     ^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `openssl::pkey::PKey`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use openssl::pkey::PKey;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Signer` and `Verifier`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | use openssl::sign::{Signer, Verifier};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use std::io;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 | use tls_parser::nom::error::{Error, ErrorKind, make_error};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:438:20
[INFO] [stdout]     |
[INFO] [stdout] 438 |                 if (direction) {
[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] 438 -                 if (direction) {
[INFO] [stdout] 438 +                 if direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:547:12
[INFO] [stdout]     |
[INFO] [stdout] 547 |         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stdout]     |            ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 547 -         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stdout] 547 +         if hdr.record_type == TlsRecordType::ApplicationData {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnInfo`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:26:41
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `bail`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 | use anyhow::{bail, Result};
[INFO] [stdout]    |              ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string::ParseError`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::string::ParseError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::tls`
[INFO] [stdout]  --> src/structs/tcp.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::structs::tls;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the type namespace is first re-exported here
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ------------------------------- but the name `Unknown` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the value namespace is first re-exported here
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ------------------------------- but the name `Unknown` in the value namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Unknown` is ambiguous
[INFO] [stdout]   --> src/protocols/mod.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 |         Err(_)  => Unknown(data.to_vec()),
[INFO] [stdout]    |                    ^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Unknown` could refer to the tuple variant imported here
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stdout] note: `Unknown` could also refer to the tuple variant imported here
[INFO] [stdout]   --> src/structs/mod.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParseResult` and `Session`
[INFO] [stdout]  --> src/conntrack/conn/conn_info.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ConnData, ParseResult, Session,
[INFO] [stdout]   |               ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::mbuf::Mbuf`
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::memory::mbuf::Mbuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/memory/mbuf.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]  --> src/memory/mbuf.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ptr::NonNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/memory/mbuf.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `int16_t`
[INFO] [stdout]   --> src/main.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::raw::Raw`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::structs::raw::Raw;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::ether::Ether`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::structs::ether::Ether;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::ipv4::IPv4`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::structs::ipv4::IPv4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         /// Time to expire inactive UDP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         udp_inactivity_timeout: 120000,
[INFO] [stdout]    |         ------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         /// Time to expire inactive TCP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |         tcp_inactivity_timeout: 12000,
[INFO] [stdout]    |         ----------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         /// Time to expire unestablished TCP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |         tcp_establish_timeout: 2000,
[INFO] [stdout]    |         --------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         /// Frequency to check for inactive streams (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |         timeout_resolution: 10000,
[INFO] [stdout]    |         ------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::int16_t`: Use i16 instead.
[INFO] [stdout]   --> src/main.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]   --> src/main.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:113:56
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:113:104
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stdout]     |                                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:114:56
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:114:104
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stdout]     |                                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_length`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:422:26
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     let (key_length, client_write_key, server_write_key, client_write_iv, server_write_iv) = self.decode_tls();
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_length`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `decrypt_data` is never read
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:437:40
[INFO] [stdout]     |
[INFO] [stdout] 437 |                 let mut decrypt_data = Vec::new();
[INFO] [stdout]     |                                        ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 442 |                     decrypt_data = tls_info.server_cipher.as_ref().unwrap().decrypt(a.blob);
[INFO] [stdout]     |                     ------------ `decrypt_data` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:627:30
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let (i, hdr) = parse_tls_record_header(to_decrypt).unwrap();
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `block_size` is never read
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:617:53
[INFO] [stdout]     |
[INFO] [stdout] 617 |                         let mut block_size: usize = 0;
[INFO] [stdout]     |                                                     ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 621 |                             block_size = tls_info.server_cipher.as_ref().unwrap().block_size();
[INFO] [stdout]     |                             ------------------------------------------------------------------ `block_size` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:694:13
[INFO] [stdout]     |
[INFO] [stdout] 694 |         let mut client_random = self.client_hello.as_ref().unwrap().random.to_vec();
[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/protocols/stream/tls/parser.rs:695:13
[INFO] [stdout]     |
[INFO] [stdout] 695 |         let mut server_random = self.server_hello.as_ref().unwrap().random.to_vec();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:685:17
[INFO] [stdout]     |
[INFO] [stdout] 685 |             Err(e) =>  return (0, Vec::new(), Vec::new(), Vec::new(), Vec::new())
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:373:17
[INFO] [stdout]     |
[INFO] [stdout] 373 |             let packet = self.assemble_packet(dir, self.client_seq, self.server_seq, payload);
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:375:17
[INFO] [stdout]     |
[INFO] [stdout] 375 |             let packet = self.assemble_packet(dir, self.server_seq, self.client_seq, payload);
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:387:17
[INFO] [stdout]     |
[INFO] [stdout] 387 |             let packet = self.assemble_packet(!dir, self.server_seq, self.client_seq, Vec::new());
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:390:17
[INFO] [stdout]     |
[INFO] [stdout] 390 |             let packet = self.assemble_packet(!dir, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let packet = self.assemble_packet(false, self.server_seq, self.client_seq,Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/structs/tcp.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/structs/tcp.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |                 Text(_) => NoiseLevel::Two,
[INFO] [stdout]    |                 ------- matches some of the same values
[INFO] [stdout] 22 |                 Binary(_) => NoiseLevel::Two,
[INFO] [stdout]    |                 --------- matches some of the same values
[INFO] [stdout] 23 |                 Empty => NoiseLevel::Two,
[INFO] [stdout]    |                 ----- matches some of the same values
[INFO] [stdout] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             _ => {}
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ConnState::Probing => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 49 |             ConnState::Parsing => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 53 |             ConnState::Tracking => {
[INFO] [stdout]    |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 56 |             ConnState::Remove => {
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 59 |             _ => {}
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `etherHeader`
[INFO] [stdout]   --> src/conntrack/pdu.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_etherHeader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/conntrack/mod.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/conntrack/mod.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/memory/mbuf.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ipLength`
[INFO] [stdout]    --> src/main.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ipLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProbeResult` is never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum ProbeResult {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProbeRegistryResult` is never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(crate) enum ProbeRegistryResult {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub(crate) trait ConnParsable {
[INFO] [stdout]    |                  ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn probe(&self, pdu: &L4Pdu) -> ProbeResult;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn remove_session(&mut self, session_id: usize) -> Option<Session>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     fn drain_sessions(&mut self) -> Vec<Session>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     fn session_match_state(&self) -> ConnState;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn session_nomatch_state(&self) -> ConnState;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_new`, `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stdout]    --> src/protocols/stream/mod.rs:269:19
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl ConnParser {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 268 |     /// Returns a new connection protocol parser of the same type, but with state reset.
[INFO] [stdout] 269 |     pub(crate) fn reset_new(&self) -> ConnParser {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub(crate) fn probe(&self, pdu: &L4Pdu) -> ProbeResult {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn remove_session(&mut self, session_id: usize) -> Option<Session> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub(crate) fn drain_sessions(&mut self) -> Vec<Session> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub(crate) fn session_match_state(&self) -> ConnState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(crate) fn session_nomatch_state(&self) -> ConnState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_length` is never read
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TlsParser {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 44 |     sessions: Vec<Tls>,
[INFO] [stdout] 45 |     key_length: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TlsParser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CWR` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) const CWR: u8 = 0b1000_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ECE` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(crate) const ECE: u8 = 0b0100_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `URG` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const URG: u8 = 0b0010_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSH` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) const PSH: u8 = 0b0000_1000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drain` and `check_inactive` are never used
[INFO] [stdout]    --> src/conntrack/mod.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl ConnTracker {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(crate) fn drain(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub(crate) fn check_inactive(&mut self, ) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_match_state` and `get_nomatch_state` are never used
[INFO] [stdout]    --> src/conntrack/conn/conn_info.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl ConnInfo
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn get_match_state(&self, session_id: usize) -> ConnState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn get_nomatch_state(&self, session_id: usize) -> ConnState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_SYN` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const HIST_SYN: u8 = b'S';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_SYNACK` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HIST_SYNACK: u8 = b'H';
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_ACK` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HIST_ACK: u8 = b'A';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_DATA` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const HIST_DATA: u8 = b'D';
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_FIN` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HIST_FIN: u8 = b'F';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_RST` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HIST_RST: u8 = b'R';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TrackedConnection {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 36 |     five_tuple: FiveTuple,
[INFO] [stdout] 37 |     first_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     second_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     last_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     max_inactivity: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     history: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     ctos: Flow,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     stoc: Flow,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrackedConnection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update`, `update_history`, `pre_match`, `on_match`, and `on_terminate` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:50:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl TrackedConnection {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout]  49 |     #[inline]
[INFO] [stdout]  50 |     fn update(&mut self, segment: L4Pdu) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn update_history(&mut self, segment: &L4Pdu, mask: u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pre_match(&mut self, pdu: L4Pdu, _session_id: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn on_match(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn on_terminate(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connection` is never constructed
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct Connection {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Level` is never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub enum Level {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `client`, `server`, `total_pkts`, `total_bytes`, `history`, and `level` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl Connection {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn client(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn server(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn total_pkts(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn total_bytes(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn history(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn level() -> Level {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_segment`, `merge_chunk`, `content_gaps`, `missed_bytes`, `mean_pkts_to_fill`, and `median_pkts_to_fill` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:360:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl Flow {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 360 |     fn insert_segment(&mut self, segment: L4Pdu) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn merge_chunk(&mut self, chunk: Chunk) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn content_gaps(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn missed_bytes(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 451 |     pub fn mean_pkts_to_fill(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn median_pkts_to_fill(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rst` is never read
[INFO] [stdout]   --> src/conntrack/pdu.rs:77:16
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct L4Context {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub(crate) rst: bool,
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `L4Context` 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 `ticker` and `next_bucket` are never read
[INFO] [stdout]   --> src/conntrack/timerwheel.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) struct TimerWheel {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     ticker: Receiver<Instant>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 17 |     /// Index of the next bucket to expire.
[INFO] [stdout] 18 |     next_bucket: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_inactive` and `remove_inactive` are never used
[INFO] [stdout]   --> src/conntrack/timerwheel.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl TimerWheel {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub(super) fn check_inactive(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub(super) fn remove_inactive(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_bytes`, `raw_mut`, and `get_data_address` are never used
[INFO] [stdout]   --> src/memory/mbuf.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Mbuf {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn from_bytes(data: &[u8]) -> Result<Mbuf> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn raw_mut(&mut self) -> &mut Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WritePastBuffer` is never constructed
[INFO] [stdout]    --> src/memory/mbuf.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub(crate) enum MbufError {
[INFO] [stdout]     |                 --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 107 |     WritePastBuffer,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MbufError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `connTrackConfig` should have a snake case name
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let connTrackConfig = conntrack::TrackerConfig{
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `conn_track_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `connTracker` should have a snake case name
[INFO] [stdout]   --> src/main.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut connTracker = conntrack::ConnTracker::new(connTrackConfig);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `conn_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ipLength` should have a snake case name
[INFO] [stdout]    --> src/main.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stdout]     |                         ^^^^^^^^ help: convert the identifier to snake case: `ip_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:57
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...   (key_material_length, Vec::from(client_write_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clo...
[INFO] [stdout]     |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:94
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...te_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:130
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...ite_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:166
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...rite_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `etherHeader` should have a snake case name
[INFO] [stdout]   --> src/conntrack/pdu.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: convert the identifier to snake case: `ether_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tcpHeader` should have a snake case name
[INFO] [stdout]   --> src/conntrack/pdu.rs:92:43
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...                   IPv4::TCP(tcpHeader, payload) => {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: convert the identifier to snake case: `tcp_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.14s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rdtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rdtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::protocols::tls`
[INFO] [stdout]  --> src/protocols/tcp.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::protocols::tls;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnInfo`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `openssl::pkey::Private`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use openssl::pkey::Private;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Padding` and `Rsa`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use openssl::rsa::{Padding, Rsa};
[INFO] [stdout]    |                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Cipher`, `Crypter`, and `Mode`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 | use openssl::symm::{Cipher, Crypter, Mode};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MessageDigest` and `hash`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 | use openssl::hash::{hash, MessageDigest};
[INFO] [stdout]    |                     ^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `openssl::pkey::PKey`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use openssl::pkey::PKey;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Signer` and `Verifier`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 | use openssl::sign::{Signer, Verifier};
[INFO] [stdout]    |                     ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use std::io;
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:36:30
[INFO] [stdout]    |
[INFO] [stdout] 36 | use tls_parser::nom::error::{Error, ErrorKind, make_error};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:438:20
[INFO] [stdout]     |
[INFO] [stdout] 438 |                 if (direction) {
[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] 438 -                 if (direction) {
[INFO] [stdout] 438 +                 if direction {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:547:12
[INFO] [stdout]     |
[INFO] [stdout] 547 |         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stdout]     |            ^                                                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 547 -         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stdout] 547 +         if hdr.record_type == TlsRecordType::ApplicationData {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConnInfo`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:26:41
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stdout]    |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `bail`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 | use anyhow::{bail, Result};
[INFO] [stdout]    |              ^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::string::ParseError`
[INFO] [stdout]   --> src/protocols/stream/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::string::ParseError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::tls`
[INFO] [stdout]  --> src/structs/tcp.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::structs::tls;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the type namespace is first re-exported here
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ------------------------------- but the name `Unknown` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the value namespace is first re-exported here
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ------------------------------- but the name `Unknown` in the value namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `Unknown` is ambiguous
[INFO] [stdout]   --> src/protocols/mod.rs:21:20
[INFO] [stdout]    |
[INFO] [stdout] 21 |         Err(_)  => Unknown(data.to_vec()),
[INFO] [stdout]    |                    ^^^^^^^ ambiguous name
[INFO] [stdout]    |
[INFO] [stdout]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stdout] note: `Unknown` could refer to the tuple variant imported here
[INFO] [stdout]   --> src/structs/mod.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stdout] note: `Unknown` could also refer to the tuple variant imported here
[INFO] [stdout]   --> src/structs/mod.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ParseResult` and `Session`
[INFO] [stdout]  --> src/conntrack/conn/conn_info.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     ConnData, ParseResult, Session,
[INFO] [stdout]   |               ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::memory::mbuf::Mbuf`
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::memory::mbuf::Mbuf;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt`
[INFO] [stdout]  --> src/memory/mbuf.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ptr::NonNull`
[INFO] [stdout]  --> src/memory/mbuf.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::ptr::NonNull;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/memory/mbuf.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `int16_t`
[INFO] [stdout]   --> src/main.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::raw::Raw`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use crate::structs::raw::Raw;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::ether::Ether`
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::structs::ether::Ether;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::structs::ipv4::IPv4`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::structs::ipv4::IPv4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         /// Time to expire inactive UDP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         udp_inactivity_timeout: 120000,
[INFO] [stdout]    |         ------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |         /// Time to expire inactive TCP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 50 |         tcp_inactivity_timeout: 12000,
[INFO] [stdout]    |         ----------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 |         /// Time to expire unestablished TCP connections (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |         tcp_establish_timeout: 2000,
[INFO] [stdout]    |         --------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 53 |         /// Frequency to check for inactive streams (in milliseconds).
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |         timeout_resolution: 10000,
[INFO] [stdout]    |         ------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::int16_t`: Use i16 instead.
[INFO] [stdout]   --> src/main.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]   --> src/main.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use libc::{int16_t, uint16_t};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:113:56
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:113:104
[INFO] [stdout]     |
[INFO] [stdout] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stdout]     |                                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:114:56
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stdout]    --> src/main.rs:114:104
[INFO] [stdout]     |
[INFO] [stdout] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stdout]     |                                                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key_length`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:422:26
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     let (key_length, client_write_key, server_write_key, client_write_iv, server_write_iv) = self.decode_tls();
[INFO] [stdout]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_length`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `decrypt_data` is never read
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:437:40
[INFO] [stdout]     |
[INFO] [stdout] 437 |                 let mut decrypt_data = Vec::new();
[INFO] [stdout]     |                                        ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 442 |                     decrypt_data = tls_info.server_cipher.as_ref().unwrap().decrypt(a.blob);
[INFO] [stdout]     |                     ------------ `decrypt_data` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:627:30
[INFO] [stdout]     |
[INFO] [stdout] 627 |                         let (i, hdr) = parse_tls_record_header(to_decrypt).unwrap();
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `block_size` is never read
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:617:53
[INFO] [stdout]     |
[INFO] [stdout] 617 |                         let mut block_size: usize = 0;
[INFO] [stdout]     |                                                     ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 621 |                             block_size = tls_info.server_cipher.as_ref().unwrap().block_size();
[INFO] [stdout]     |                             ------------------------------------------------------------------ `block_size` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:694:13
[INFO] [stdout]     |
[INFO] [stdout] 694 |         let mut client_random = self.client_hello.as_ref().unwrap().random.to_vec();
[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/protocols/stream/tls/parser.rs:695:13
[INFO] [stdout]     |
[INFO] [stdout] 695 |         let mut server_random = self.server_hello.as_ref().unwrap().random.to_vec();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:685:17
[INFO] [stdout]     |
[INFO] [stdout] 685 |             Err(e) =>  return (0, Vec::new(), Vec::new(), Vec::new(), Vec::new())
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:373:17
[INFO] [stdout]     |
[INFO] [stdout] 373 |             let packet = self.assemble_packet(dir, self.client_seq, self.server_seq, payload);
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:375:17
[INFO] [stdout]     |
[INFO] [stdout] 375 |             let packet = self.assemble_packet(dir, self.server_seq, self.client_seq, payload);
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:387:17
[INFO] [stdout]     |
[INFO] [stdout] 387 |             let packet = self.assemble_packet(!dir, self.server_seq, self.client_seq, Vec::new());
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:390:17
[INFO] [stdout]     |
[INFO] [stdout] 390 |             let packet = self.assemble_packet(!dir, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |         let packet = self.assemble_packet(false, self.server_seq, self.client_seq,Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/protocols/stream/mod.rs:408:13
[INFO] [stdout]     |
[INFO] [stdout] 408 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/structs/tcp.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/structs/tcp.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |                 Text(_) => NoiseLevel::Two,
[INFO] [stdout]    |                 ------- matches some of the same values
[INFO] [stdout] 22 |                 Binary(_) => NoiseLevel::Two,
[INFO] [stdout]    |                 --------- matches some of the same values
[INFO] [stdout] 23 |                 Empty => NoiseLevel::Two,
[INFO] [stdout]    |                 ----- matches some of the same values
[INFO] [stdout] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stdout]    |                 ^ collectively making this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 59 |             _ => {}
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stdout]    |
[INFO] [stdout] 46 |             ConnState::Probing => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 49 |             ConnState::Parsing => {
[INFO] [stdout]    |             ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 53 |             ConnState::Tracking => {
[INFO] [stdout]    |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 56 |             ConnState::Remove => {
[INFO] [stdout]    |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 59 |             _ => {}
[INFO] [stdout]    |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `etherHeader`
[INFO] [stdout]   --> src/conntrack/pdu.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_etherHeader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/conntrack/mod.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `conn`
[INFO] [stdout]    --> src/conntrack/mod.rs:133:17
[INFO] [stdout]     |
[INFO] [stdout] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stdout]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]   --> src/memory/mbuf.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ipLength`
[INFO] [stdout]    --> src/main.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stdout]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ipLength`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProbeResult` is never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum ProbeResult {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProbeRegistryResult` is never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(crate) enum ProbeRegistryResult {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stdout]   --> src/protocols/stream/mod.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub(crate) trait ConnParsable {
[INFO] [stdout]    |                  ------------ methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 83 |     fn probe(&self, pdu: &L4Pdu) -> ProbeResult;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn remove_session(&mut self, session_id: usize) -> Option<Session>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     fn drain_sessions(&mut self) -> Vec<Session>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     fn session_match_state(&self) -> ConnState;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     fn session_nomatch_state(&self) -> ConnState;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_new`, `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stdout]    --> src/protocols/stream/mod.rs:269:19
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl ConnParser {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 268 |     /// Returns a new connection protocol parser of the same type, but with state reset.
[INFO] [stdout] 269 |     pub(crate) fn reset_new(&self) -> ConnParser {
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub(crate) fn probe(&self, pdu: &L4Pdu) -> ProbeResult {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn remove_session(&mut self, session_id: usize) -> Option<Session> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub(crate) fn drain_sessions(&mut self) -> Vec<Session> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub(crate) fn session_match_state(&self) -> ConnState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub(crate) fn session_nomatch_state(&self) -> ConnState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key_length` is never read
[INFO] [stdout]   --> src/protocols/stream/tls/parser.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct TlsParser {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 44 |     sessions: Vec<Tls>,
[INFO] [stdout] 45 |     key_length: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TlsParser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CWR` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(crate) const CWR: u8 = 0b1000_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ECE` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub(crate) const ECE: u8 = 0b0100_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `URG` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub(crate) const URG: u8 = 0b0010_0000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PSH` is never used
[INFO] [stdout]  --> src/protocols/packet/tcp.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(crate) const PSH: u8 = 0b0000_1000;
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `drain` and `check_inactive` are never used
[INFO] [stdout]    --> src/conntrack/mod.rs:131:19
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl ConnTracker {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub(crate) fn drain(&mut self) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub(crate) fn check_inactive(&mut self, ) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_match_state` and `get_nomatch_state` are never used
[INFO] [stdout]    --> src/conntrack/conn/conn_info.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl ConnInfo
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn get_match_state(&self, session_id: usize) -> ConnState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn get_nomatch_state(&self, session_id: usize) -> ConnState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_SYN` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const HIST_SYN: u8 = b'S';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_SYNACK` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HIST_SYNACK: u8 = b'H';
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_ACK` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const HIST_ACK: u8 = b'A';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_DATA` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const HIST_DATA: u8 = b'D';
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_FIN` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HIST_FIN: u8 = b'F';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HIST_RST` is never used
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const HIST_RST: u8 = b'R';
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/conntrack/conn/trackedconnection.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TrackedConnection {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 36 |     five_tuple: FiveTuple,
[INFO] [stdout] 37 |     first_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     second_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     last_seen_ts: Instant,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     max_inactivity: Duration,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     history: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 42 |     ctos: Flow,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 43 |     stoc: Flow,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrackedConnection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update`, `update_history`, `pre_match`, `on_match`, and `on_terminate` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:50:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl TrackedConnection {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout]  49 |     #[inline]
[INFO] [stdout]  50 |     fn update(&mut self, segment: L4Pdu) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn update_history(&mut self, segment: &L4Pdu, mask: u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pre_match(&mut self, pdu: L4Pdu, _session_id: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn on_match(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn on_terminate(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Connection` is never constructed
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct Connection {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Level` is never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:214:10
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub enum Level {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `client`, `server`, `total_pkts`, `total_bytes`, `history`, and `level` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl Connection {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn client(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn server(&self) -> SocketAddr {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn total_pkts(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn total_bytes(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn history(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn level() -> Level {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_segment`, `merge_chunk`, `content_gaps`, `missed_bytes`, `mean_pkts_to_fill`, and `median_pkts_to_fill` are never used
[INFO] [stdout]    --> src/conntrack/conn/trackedconnection.rs:360:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl Flow {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 360 |     fn insert_segment(&mut self, segment: L4Pdu) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     fn merge_chunk(&mut self, chunk: Chunk) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn content_gaps(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     pub fn missed_bytes(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 451 |     pub fn mean_pkts_to_fill(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn median_pkts_to_fill(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rst` is never read
[INFO] [stdout]   --> src/conntrack/pdu.rs:77:16
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct L4Context {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub(crate) rst: bool,
[INFO] [stdout]    |                ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `L4Context` 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 `ticker` and `next_bucket` are never read
[INFO] [stdout]   --> src/conntrack/timerwheel.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) struct TimerWheel {
[INFO] [stdout]    |                   ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     ticker: Receiver<Instant>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 17 |     /// Index of the next bucket to expire.
[INFO] [stdout] 18 |     next_bucket: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_inactive` and `remove_inactive` are never used
[INFO] [stdout]   --> src/conntrack/timerwheel.rs:57:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl TimerWheel {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub(super) fn check_inactive(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub(super) fn remove_inactive(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_bytes`, `raw_mut`, and `get_data_address` are never used
[INFO] [stdout]   --> src/memory/mbuf.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Mbuf {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) fn from_bytes(data: &[u8]) -> Result<Mbuf> {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn raw_mut(&mut self) -> &mut Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `WritePastBuffer` is never constructed
[INFO] [stdout]    --> src/memory/mbuf.rs:107:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub(crate) enum MbufError {
[INFO] [stdout]     |                 --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 107 |     WritePastBuffer,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MbufError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `connTrackConfig` should have a snake case name
[INFO] [stdout]   --> src/main.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let connTrackConfig = conntrack::TrackerConfig{
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `conn_track_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `connTracker` should have a snake case name
[INFO] [stdout]   --> src/main.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut connTracker = conntrack::ConnTracker::new(connTrackConfig);
[INFO] [stdout]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `conn_tracker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ipLength` should have a snake case name
[INFO] [stdout]    --> src/main.rs:104:25
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stdout]     |                         ^^^^^^^^ help: convert the identifier to snake case: `ip_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:57
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...   (key_material_length, Vec::from(client_write_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clo...
[INFO] [stdout]     |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:94
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...te_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:130
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...ite_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]    --> src/protocols/stream/tls/parser.rs:730:166
[INFO] [stdout]     |
[INFO] [stdout] 730 | ...rite_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stdout]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]     |
[INFO] [stdout]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `etherHeader` should have a snake case name
[INFO] [stdout]   --> src/conntrack/pdu.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stdout]    |                            ^^^^^^^^^^^ help: convert the identifier to snake case: `ether_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `tcpHeader` should have a snake case name
[INFO] [stdout]   --> src/conntrack/pdu.rs:92:43
[INFO] [stdout]    |
[INFO] [stdout] 92 | ...                   IPv4::TCP(tcpHeader, payload) => {
[INFO] [stdout]    |                                 ^^^^^^^^^ help: convert the identifier to snake case: `tcp_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.23s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rdtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `crate::protocols::tls`
[INFO] [stderr]  --> src/protocols/tcp.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::protocols::tls;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ConnInfo`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:18:41
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stderr]    |                                         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `openssl::pkey::Private`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | use openssl::pkey::Private;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Padding` and `Rsa`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:27:20
[INFO] [stderr]    |
[INFO] [stderr] 27 | use openssl::rsa::{Padding, Rsa};
[INFO] [stderr]    |                    ^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Cipher`, `Crypter`, and `Mode`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:28:21
[INFO] [stderr]    |
[INFO] [stderr] 28 | use openssl::symm::{Cipher, Crypter, Mode};
[INFO] [stderr]    |                     ^^^^^^  ^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MessageDigest` and `hash`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:29:21
[INFO] [stderr]    |
[INFO] [stderr] 29 | use openssl::hash::{hash, MessageDigest};
[INFO] [stderr]    |                     ^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `openssl::pkey::PKey`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 | use openssl::pkey::PKey;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Signer` and `Verifier`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:31:21
[INFO] [stderr]    |
[INFO] [stderr] 31 | use openssl::sign::{Signer, Verifier};
[INFO] [stderr]    |                     ^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | use std::io;
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:36:30
[INFO] [stderr]    |
[INFO] [stderr] 36 | use tls_parser::nom::error::{Error, ErrorKind, make_error};
[INFO] [stderr]    |                              ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:438:20
[INFO] [stderr]     |
[INFO] [stderr] 438 |                 if (direction) {
[INFO] [stderr]     |                    ^         ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 438 -                 if (direction) {
[INFO] [stderr] 438 +                 if direction {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:547:12
[INFO] [stderr]     |
[INFO] [stderr] 547 |         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stderr]     |            ^                                                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 547 -         if (hdr.record_type == TlsRecordType::ApplicationData) {
[INFO] [stderr] 547 +         if hdr.record_type == TlsRecordType::ApplicationData {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ConnInfo`
[INFO] [stderr]   --> src/protocols/stream/mod.rs:26:41
[INFO] [stderr]    |
[INFO] [stderr] 26 | use crate::conntrack::conn::conn_info::{ConnInfo, ConnState, TlsInfo};
[INFO] [stderr]    |                                         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Result` and `bail`
[INFO] [stderr]   --> src/protocols/stream/mod.rs:34:14
[INFO] [stderr]    |
[INFO] [stderr] 34 | use anyhow::{bail, Result};
[INFO] [stderr]    |              ^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::string::ParseError`
[INFO] [stderr]   --> src/protocols/stream/mod.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 | use std::string::ParseError;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::structs::tls`
[INFO] [stderr]  --> src/structs/tcp.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::structs::tls;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> src/structs/mod.rs:23:13
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the type namespace is first re-exported here
[INFO] [stderr] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stderr]    |             ------------------------------- but the name `Unknown` in the type namespace is also re-exported here
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: ambiguous glob re-exports
[INFO] [stderr]   --> src/structs/mod.rs:23:13
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the name `Unknown` in the value namespace is first re-exported here
[INFO] [stderr] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stderr]    |             ------------------------------- but the name `Unknown` in the value namespace is also re-exported here
[INFO] [stderr] 
[INFO] [stderr] warning: `Unknown` is ambiguous
[INFO] [stderr]   --> src/protocols/mod.rs:21:20
[INFO] [stderr]    |
[INFO] [stderr] 21 |         Err(_)  => Unknown(data.to_vec()),
[INFO] [stderr]    |                    ^^^^^^^ ambiguous name
[INFO] [stderr]    |
[INFO] [stderr]    = note: ambiguous because of multiple glob imports of a name in the same module
[INFO] [stderr] note: `Unknown` could refer to the tuple variant imported here
[INFO] [stderr]   --> src/structs/mod.rs:23:13
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub use crate::structs::raw::Raw::*;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stderr] note: `Unknown` could also refer to the tuple variant imported here
[INFO] [stderr]   --> src/structs/mod.rs:24:13
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub use crate::structs::ether::Ether::*;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    = help: consider adding an explicit import of `Unknown` to disambiguate
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #114095 <https://github.com/rust-lang/rust/issues/114095>
[INFO] [stderr]    = note: `#[warn(ambiguous_glob_imports)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ParseResult` and `Session`
[INFO] [stderr]  --> src/conntrack/conn/conn_info.rs:4:15
[INFO] [stderr]   |
[INFO] [stderr] 4 |     ConnData, ParseResult, Session,
[INFO] [stderr]   |               ^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::memory::mbuf::Mbuf`
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::memory::mbuf::Mbuf;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::fmt`
[INFO] [stderr]  --> src/memory/mbuf.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::fmt;
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::ptr::NonNull`
[INFO] [stderr]  --> src/memory/mbuf.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::ptr::NonNull;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::slice`
[INFO] [stderr]  --> src/memory/mbuf.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::slice;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::sync::mpsc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `int16_t`
[INFO] [stderr]   --> src/main.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | use libc::{int16_t, uint16_t};
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::structs::raw::Raw`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::structs::raw::Raw;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::structs::ether::Ether`
[INFO] [stderr]   --> src/main.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use crate::structs::ether::Ether;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::structs::ipv4::IPv4`
[INFO] [stderr]   --> src/main.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | use crate::structs::ipv4::IPv4;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:47:9
[INFO] [stderr]    |
[INFO] [stderr] 47 |         /// Time to expire inactive UDP connections (in milliseconds).
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 48 |         udp_inactivity_timeout: 120000,
[INFO] [stderr]    |         ------------------------------ rustdoc does not generate documentation for expression fields
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:49:9
[INFO] [stderr]    |
[INFO] [stderr] 49 |         /// Time to expire inactive TCP connections (in milliseconds).
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 50 |         tcp_inactivity_timeout: 12000,
[INFO] [stderr]    |         ----------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:51:9
[INFO] [stderr]    |
[INFO] [stderr] 51 |         /// Time to expire unestablished TCP connections (in milliseconds).
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 52 |         tcp_establish_timeout: 2000,
[INFO] [stderr]    |         --------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/main.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |         /// Frequency to check for inactive streams (in milliseconds).
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 54 |         timeout_resolution: 10000,
[INFO] [stderr]    |         ------------------------- rustdoc does not generate documentation for expression fields
[INFO] [stderr]    |
[INFO] [stderr]    = help: use `//` for a plain comment
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::int16_t`: Use i16 instead.
[INFO] [stderr]   --> src/main.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | use libc::{int16_t, uint16_t};
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stderr]   --> src/main.rs:17:21
[INFO] [stderr]    |
[INFO] [stderr] 17 | use libc::{int16_t, uint16_t};
[INFO] [stderr]    |                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stderr]    --> src/main.rs:113:56
[INFO] [stderr]     |
[INFO] [stderr] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stderr]     |                                                        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stderr]    --> src/main.rs:113:104
[INFO] [stderr]     |
[INFO] [stderr] 113 |                     let src_port = (packet.data[34] as uint16_t * 256).wrapping_add(packet.data[35] as uint16_t);
[INFO] [stderr]     |                                                                                                        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stderr]    --> src/main.rs:114:56
[INFO] [stderr]     |
[INFO] [stderr] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stderr]     |                                                        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated type alias `libc::uint16_t`: Use u16 instead.
[INFO] [stderr]    --> src/main.rs:114:104
[INFO] [stderr]     |
[INFO] [stderr] 114 |                     let dst_port = (packet.data[36] as uint16_t * 256).wrapping_add(packet.data[37] as uint16_t);
[INFO] [stderr]     |                                                                                                        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key_length`
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:422:26
[INFO] [stderr]     |
[INFO] [stderr] 422 |                     let (key_length, client_write_key, server_write_key, client_write_iv, server_write_iv) = self.decode_tls();
[INFO] [stderr]     |                          ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_length`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `decrypt_data` is never read
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:437:40
[INFO] [stderr]     |
[INFO] [stderr] 437 |                 let mut decrypt_data = Vec::new();
[INFO] [stderr]     |                                        ^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 442 |                     decrypt_data = tls_info.server_cipher.as_ref().unwrap().decrypt(a.blob);
[INFO] [stderr]     |                     ------------ `decrypt_data` is overwritten here before the previous value is read
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:627:30
[INFO] [stderr]     |
[INFO] [stderr] 627 |                         let (i, hdr) = parse_tls_record_header(to_decrypt).unwrap();
[INFO] [stderr]     |                              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `block_size` is never read
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:617:53
[INFO] [stderr]     |
[INFO] [stderr] 617 |                         let mut block_size: usize = 0;
[INFO] [stderr]     |                                                     ^ this value is reassigned later and never used
[INFO] [stderr] ...
[INFO] [stderr] 621 |                             block_size = tls_info.server_cipher.as_ref().unwrap().block_size();
[INFO] [stderr]     |                             ------------------------------------------------------------------ `block_size` is overwritten here before the previous value is read
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:694:13
[INFO] [stderr]     |
[INFO] [stderr] 694 |         let mut client_random = self.client_hello.as_ref().unwrap().random.to_vec();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:695:13
[INFO] [stderr]     |
[INFO] [stderr] 695 |         let mut server_random = self.server_hello.as_ref().unwrap().random.to_vec();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:685:17
[INFO] [stderr]     |
[INFO] [stderr] 685 |             Err(e) =>  return (0, Vec::new(), Vec::new(), Vec::new(), Vec::new())
[INFO] [stderr]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:373:17
[INFO] [stderr]     |
[INFO] [stderr] 373 |             let packet = self.assemble_packet(dir, self.client_seq, self.server_seq, payload);
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:375:17
[INFO] [stderr]     |
[INFO] [stderr] 375 |             let packet = self.assemble_packet(dir, self.server_seq, self.client_seq, payload);
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:387:17
[INFO] [stderr]     |
[INFO] [stderr] 387 |             let packet = self.assemble_packet(!dir, self.server_seq, self.client_seq, Vec::new());
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:390:17
[INFO] [stderr]     |
[INFO] [stderr] 390 |             let packet = self.assemble_packet(!dir, self.client_seq, self.server_seq, Vec::new());
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:399:13
[INFO] [stderr]     |
[INFO] [stderr] 399 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:404:13
[INFO] [stderr]     |
[INFO] [stderr] 404 |         let packet = self.assemble_packet(false, self.server_seq, self.client_seq,Vec::new());
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/protocols/stream/mod.rs:408:13
[INFO] [stderr]     |
[INFO] [stderr] 408 |         let packet = self.assemble_packet(true, self.client_seq, self.server_seq, Vec::new());
[INFO] [stderr]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_packet`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/structs/tcp.rs:24:17
[INFO] [stderr]    |
[INFO] [stderr] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stderr]    |                 ^ no value can reach this
[INFO] [stderr]    |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]   --> src/structs/tcp.rs:24:17
[INFO] [stderr]    |
[INFO] [stderr] 21 |                 Text(_) => NoiseLevel::Two,
[INFO] [stderr]    |                 ------- matches some of the same values
[INFO] [stderr] 22 |                 Binary(_) => NoiseLevel::Two,
[INFO] [stderr]    |                 --------- matches some of the same values
[INFO] [stderr] 23 |                 Empty => NoiseLevel::Two,
[INFO] [stderr]    |                 ----- matches some of the same values
[INFO] [stderr] 24 |                 _ => NoiseLevel::Zero,
[INFO] [stderr]    |                 ^ collectively making this unreachable
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stderr]    |
[INFO] [stderr] 59 |             _ => {}
[INFO] [stderr]    |             ^ no value can reach this
[INFO] [stderr]    |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]   --> src/conntrack/conn/conn_info.rs:59:13
[INFO] [stderr]    |
[INFO] [stderr] 46 |             ConnState::Probing => {
[INFO] [stderr]    |             ------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 49 |             ConnState::Parsing => {
[INFO] [stderr]    |             ------------------ matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 53 |             ConnState::Tracking => {
[INFO] [stderr]    |             ------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 56 |             ConnState::Remove => {
[INFO] [stderr]    |             ----------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 59 |             _ => {}
[INFO] [stderr]    |             ^ collectively making this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `etherHeader`
[INFO] [stderr]   --> src/conntrack/pdu.rs:87:28
[INFO] [stderr]    |
[INFO] [stderr] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stderr]    |                            ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_etherHeader`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/conntrack/mod.rs:133:17
[INFO] [stderr]     |
[INFO] [stderr] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `conn`
[INFO] [stderr]    --> src/conntrack/mod.rs:133:17
[INFO] [stderr]     |
[INFO] [stderr] 133 |         for (_, mut conn) in self.table.drain() {
[INFO] [stderr]     |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_conn`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]   --> src/memory/mbuf.rs:80:32
[INFO] [stderr]    |
[INFO] [stderr] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stderr]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ipLength`
[INFO] [stderr]    --> src/main.rs:104:25
[INFO] [stderr]     |
[INFO] [stderr] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stderr]     |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ipLength`
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ProbeResult` is never used
[INFO] [stderr]   --> src/protocols/stream/mod.rs:55:17
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub(crate) enum ProbeResult {
[INFO] [stderr]    |                 ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ProbeRegistryResult` is never used
[INFO] [stderr]   --> src/protocols/stream/mod.rs:68:17
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub(crate) enum ProbeRegistryResult {
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stderr]   --> src/protocols/stream/mod.rs:83:8
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub(crate) trait ConnParsable {
[INFO] [stderr]    |                  ------------ methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 83 |     fn probe(&self, pdu: &L4Pdu) -> ProbeResult;
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     fn remove_session(&mut self, session_id: usize) -> Option<Session>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 89 |     fn drain_sessions(&mut self) -> Vec<Session>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 92 |     fn session_match_state(&self) -> ConnState;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 95 |     fn session_nomatch_state(&self) -> ConnState;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `reset_new`, `probe`, `remove_session`, `drain_sessions`, `session_match_state`, and `session_nomatch_state` are never used
[INFO] [stderr]    --> src/protocols/stream/mod.rs:269:19
[INFO] [stderr]     |
[INFO] [stderr] 267 | impl ConnParser {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] 268 |     /// Returns a new connection protocol parser of the same type, but with state reset.
[INFO] [stderr] 269 |     pub(crate) fn reset_new(&self) -> ConnParser {
[INFO] [stderr]     |                   ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 285 |     pub(crate) fn probe(&self, pdu: &L4Pdu) -> ProbeResult {
[INFO] [stderr]     |                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     pub(crate) fn remove_session(&mut self, session_id: usize) -> Option<Session> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     pub(crate) fn drain_sessions(&mut self) -> Vec<Session> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 310 |     pub(crate) fn session_match_state(&self) -> ConnState {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub(crate) fn session_nomatch_state(&self) -> ConnState {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `key_length` is never read
[INFO] [stderr]   --> src/protocols/stream/tls/parser.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub struct TlsParser {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] 44 |     sessions: Vec<Tls>,
[INFO] [stderr] 45 |     key_length: usize,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TlsParser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CWR` is never used
[INFO] [stderr]  --> src/protocols/packet/tcp.rs:1:18
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub(crate) const CWR: u8 = 0b1000_0000;
[INFO] [stderr]   |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ECE` is never used
[INFO] [stderr]  --> src/protocols/packet/tcp.rs:2:18
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub(crate) const ECE: u8 = 0b0100_0000;
[INFO] [stderr]   |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `URG` is never used
[INFO] [stderr]  --> src/protocols/packet/tcp.rs:3:18
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub(crate) const URG: u8 = 0b0010_0000;
[INFO] [stderr]   |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PSH` is never used
[INFO] [stderr]  --> src/protocols/packet/tcp.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub(crate) const PSH: u8 = 0b0000_1000;
[INFO] [stderr]   |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `drain` and `check_inactive` are never used
[INFO] [stderr]    --> src/conntrack/mod.rs:131:19
[INFO] [stderr]     |
[INFO] [stderr]  48 | impl ConnTracker {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub(crate) fn drain(&mut self) {
[INFO] [stderr]     |                   ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     pub(crate) fn check_inactive(&mut self, ) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_match_state` and `get_nomatch_state` are never used
[INFO] [stderr]    --> src/conntrack/conn/conn_info.rs:110:8
[INFO] [stderr]     |
[INFO] [stderr]  27 | impl ConnInfo
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 110 |     fn get_match_state(&self, session_id: usize) -> ConnState {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     fn get_nomatch_state(&self, session_id: usize) -> ConnState {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_SYN` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:15:7
[INFO] [stderr]    |
[INFO] [stderr] 15 | const HIST_SYN: u8 = b'S';
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_SYNACK` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:17:7
[INFO] [stderr]    |
[INFO] [stderr] 17 | const HIST_SYNACK: u8 = b'H';
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_ACK` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:19:7
[INFO] [stderr]    |
[INFO] [stderr] 19 | const HIST_ACK: u8 = b'A';
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_DATA` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:21:7
[INFO] [stderr]    |
[INFO] [stderr] 21 | const HIST_DATA: u8 = b'D';
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_FIN` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const HIST_FIN: u8 = b'F';
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HIST_RST` is never used
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:25:7
[INFO] [stderr]    |
[INFO] [stderr] 25 | const HIST_RST: u8 = b'R';
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/conntrack/conn/trackedconnection.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct TrackedConnection {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] 36 |     five_tuple: FiveTuple,
[INFO] [stderr] 37 |     first_seen_ts: Instant,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 38 |     second_seen_ts: Instant,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     last_seen_ts: Instant,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 40 |     max_inactivity: Duration,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 41 |     history: Vec<u8>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 42 |     ctos: Flow,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 43 |     stoc: Flow,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TrackedConnection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `update`, `update_history`, `pre_match`, `on_match`, and `on_terminate` are never used
[INFO] [stderr]    --> src/conntrack/conn/trackedconnection.rs:50:8
[INFO] [stderr]     |
[INFO] [stderr]  48 | impl TrackedConnection {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr]  49 |     #[inline]
[INFO] [stderr]  50 |     fn update(&mut self, segment: L4Pdu) {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  77 |     fn update_history(&mut self, segment: &L4Pdu, mask: u8) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     pub fn pre_match(&mut self, pdu: L4Pdu, _session_id: Option<usize>) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     pub(crate) fn on_match(&mut self) {
[INFO] [stderr]     |                   ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn on_terminate(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Connection` is never constructed
[INFO] [stderr]    --> src/conntrack/conn/trackedconnection.rs:170:12
[INFO] [stderr]     |
[INFO] [stderr] 170 | pub struct Connection {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Level` is never used
[INFO] [stderr]    --> src/conntrack/conn/trackedconnection.rs:214:10
[INFO] [stderr]     |
[INFO] [stderr] 214 | pub enum Level {
[INFO] [stderr]     |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `client`, `server`, `total_pkts`, `total_bytes`, `history`, and `level` are never used
[INFO] [stderr]    --> src/conntrack/conn/trackedconnection.rs:228:12
[INFO] [stderr]     |
[INFO] [stderr] 225 | impl Connection {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 228 |     pub fn client(&self) -> SocketAddr {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 234 |     pub fn server(&self) -> SocketAddr {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 240 |     pub fn total_pkts(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn total_bytes(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 252 |     pub fn history(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     fn level() -> Level {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `insert_segment`, `merge_chunk`, `content_gaps`, `missed_bytes`, `mean_pkts_to_fill`, and `median_pkts_to_fill` are never used
[INFO] [stderr]    --> src/conntrack/conn/trackedconnection.rs:360:8
[INFO] [stderr]     |
[INFO] [stderr] 344 | impl Flow {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 360 |     fn insert_segment(&mut self, segment: L4Pdu) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 398 |     fn merge_chunk(&mut self, chunk: Chunk) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 435 |     pub fn content_gaps(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 444 |     pub fn missed_bytes(&self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 451 |     pub fn mean_pkts_to_fill(&self) -> Option<f64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 465 |     pub fn median_pkts_to_fill(&self) -> Option<u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `rst` is never read
[INFO] [stderr]   --> src/conntrack/pdu.rs:77:16
[INFO] [stderr]    |
[INFO] [stderr] 60 | pub struct L4Context {
[INFO] [stderr]    |            --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub(crate) rst: bool,
[INFO] [stderr]    |                ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `L4Context` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `ticker` and `next_bucket` are never read
[INFO] [stderr]   --> src/conntrack/timerwheel.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(super) struct TimerWheel {
[INFO] [stderr]    |                   ---------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 16 |     ticker: Receiver<Instant>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 17 |     /// Index of the next bucket to expire.
[INFO] [stderr] 18 |     next_bucket: usize,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `check_inactive` and `remove_inactive` are never used
[INFO] [stderr]   --> src/conntrack/timerwheel.rs:57:19
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl TimerWheel {
[INFO] [stderr]    | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub(super) fn check_inactive(
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 78 |     pub(super) fn remove_inactive(
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_bytes`, `raw_mut`, and `get_data_address` are never used
[INFO] [stderr]   --> src/memory/mbuf.rs:28:19
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl Mbuf {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub(crate) fn from_bytes(data: &[u8]) -> Result<Mbuf> {
[INFO] [stderr]    |                   ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     fn raw_mut(&mut self) -> &mut Vec<u8> {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     fn get_data_address(&self, offset: usize) -> *const u8 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `WritePastBuffer` is never constructed
[INFO] [stderr]    --> src/memory/mbuf.rs:107:5
[INFO] [stderr]     |
[INFO] [stderr]  99 | pub(crate) enum MbufError {
[INFO] [stderr]     |                 --------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 107 |     WritePastBuffer,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `MbufError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variable `connTrackConfig` should have a snake case name
[INFO] [stderr]   --> src/main.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let connTrackConfig = conntrack::TrackerConfig{
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `conn_track_config`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `connTracker` should have a snake case name
[INFO] [stderr]   --> src/main.rs:57:13
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let mut connTracker = conntrack::ConnTracker::new(connTrackConfig);
[INFO] [stderr]    |             ^^^^^^^^^^^ help: convert the identifier to snake case: `conn_tracker`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `ipLength` should have a snake case name
[INFO] [stderr]    --> src/main.rs:104:25
[INFO] [stderr]     |
[INFO] [stderr] 104 |                     let ipLength = (packet.data[14] & 0x0f) * 4;
[INFO] [stderr]     |                         ^^^^^^^^ help: convert the identifier to snake case: `ip_length`
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:730:57
[INFO] [stderr]     |
[INFO] [stderr] 730 | ...   (key_material_length, Vec::from(client_write_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clo...
[INFO] [stderr]     |                                                       ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stderr]     = note: `#[warn(noop_method_call)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:730:94
[INFO] [stderr]     |
[INFO] [stderr] 730 | ...te_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stderr]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:730:130
[INFO] [stderr]     |
[INFO] [stderr] 730 | ...ite_key.clone()), Vec::from(client_write_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stderr]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stderr]    --> src/protocols/stream/tls/parser.rs:730:166
[INFO] [stderr]     |
[INFO] [stderr] 730 | ...rite_iv.clone()), Vec::from(server_write_iv.clone()))
[INFO] [stderr]     |                                               ^^^^^^^^ help: remove this redundant call
[INFO] [stderr]     |
[INFO] [stderr]     = note: the type `[u8]` does not implement `Clone`, so calling `clone` on `&[u8]` copies the reference, which does not do anything and can be removed
[INFO] [stderr] 
[INFO] [stderr] warning: variable `etherHeader` should have a snake case name
[INFO] [stderr]   --> src/conntrack/pdu.rs:87:28
[INFO] [stderr]    |
[INFO] [stderr] 87 |                 Raw::Ether(etherHeader, ether) => {
[INFO] [stderr]    |                            ^^^^^^^^^^^ help: convert the identifier to snake case: `ether_header`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `tcpHeader` should have a snake case name
[INFO] [stderr]   --> src/conntrack/pdu.rs:92:43
[INFO] [stderr]    |
[INFO] [stderr] 92 | ...                   IPv4::TCP(tcpHeader, payload) => {
[INFO] [stderr]    |                                 ^^^^^^^^^ help: convert the identifier to snake case: `tcp_header`
[INFO] [stderr] 
[INFO] [stderr] warning: `rdtls` (bin "rdtls" test) generated 97 warnings (run `cargo fix --bin "rdtls" -p rdtls --tests` to apply 47 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: rdtls v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rdtls-823e12b1f8a6c5a7)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2", kill_on_drop: false }`
[INFO] [stdout] cedf0a56624e0d1ba5e8ff1fbbfc5e346b5857c0f31b0d39523f52ea221366e2
