[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] checking hahastrongshi/rdtls against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhahastrongshi%2Frdtls" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/hahastrongshi/rdtls on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-3-tc1/source/Cargo.toml [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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded nom-derive-impl v0.10.1 [INFO] [stderr] Downloaded nom-derive v0.10.1 [INFO] [stderr] Downloaded pktparse v0.7.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8ba947d16d4ba08502f1961eb66ede2bece4da07936bc89360f87693b0d5a9a3 [INFO] running `Command { std: "docker" "start" "-a" "8ba947d16d4ba08502f1961eb66ede2bece4da07936bc89360f87693b0d5a9a3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8ba947d16d4ba08502f1961eb66ede2bece4da07936bc89360f87693b0d5a9a3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ba947d16d4ba08502f1961eb66ede2bece4da07936bc89360f87693b0d5a9a3", kill_on_drop: false }` [INFO] [stdout] 8ba947d16d4ba08502f1961eb66ede2bece4da07936bc89360f87693b0d5a9a3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a949a0593de3f97bc649356c1ebd8934fcd9d67cd778ae1b35c6fc285c7cef41 [INFO] running `Command { std: "docker" "start" "-a" "a949a0593de3f97bc649356c1ebd8934fcd9d67cd778ae1b35c6fc285c7cef41", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.79 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling serde v1.0.197 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling cc v1.0.90 [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking no-std-net v0.6.0 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Checking pnet_base v0.33.0 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Compiling toml_datetime v0.6.5 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Compiling winnow v0.5.40 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling rustversion v1.0.14 [INFO] [stderr] Compiling unicode-segmentation v1.11.0 [INFO] [stderr] Checking pnet_macros_support v0.33.0 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling indexmap v2.2.6 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking zerocopy v0.7.32 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Compiling pcap-sys v0.1.3 [INFO] [stderr] Compiling serde_json v1.0.114 [INFO] [stderr] Checking allocator-api2 v0.2.16 [INFO] [stderr] Compiling anyhow v1.0.81 [INFO] [stderr] Compiling getrandom v0.2.12 [INFO] [stderr] Compiling syn v2.0.55 [INFO] [stderr] Checking pnet_sys v0.33.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Compiling thiserror v1.0.58 [INFO] [stderr] Compiling openssl-sys v0.9.101 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling pnet v0.33.0 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Checking ansi_term v0.12.1 [INFO] [stderr] Checking phf v0.10.1 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking either v1.10.0 [INFO] [stderr] Checking ryu v1.0.17 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Compiling toml_edit v0.19.15 [INFO] [stderr] Checking strum v0.21.0 [INFO] [stderr] Compiling regex-automata v0.4.6 [INFO] [stderr] Checking md5 v0.7.0 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Checking crossbeam-channel v0.5.12 [INFO] [stderr] Checking hashlink v0.8.4 [INFO] [stderr] Checking rusticata-macros v4.1.0 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling phf_codegen v0.10.0 [INFO] [stderr] Compiling tls-parser v0.12.0 (https://github.com/thegwan/tls-parser.git#2c76bd13) [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 regex v1.10.4 [INFO] [stderr] Compiling pnet_macros v0.33.0 [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] Checking num_enum v0.5.11 [INFO] [stderr] Checking pnet_packet v0.33.0 [INFO] [stderr] Checking nom-derive v0.10.1 [INFO] [stderr] Checking structopt v0.3.26 [INFO] [stderr] Checking tls-decrypt v0.1.4 (https://github.com/hahastrongshi/tls-decrypt.git#8de8897d) [INFO] [stderr] Checking pnet_transport v0.33.0 [INFO] [stderr] Checking ipnetwork v0.20.0 [INFO] [stderr] Checking pktparse v0.7.1 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking pnet_datalink v0.33.0 [INFO] [stderr] Checking 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)]` 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)]` 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] = 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 [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] = note: `#[warn(ambiguous_glob_imports)]` 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)]` 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: 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)]` 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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)]` 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] = 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 [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] = note: `#[warn(ambiguous_glob_imports)]` 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)]` 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)]` 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:25 [INFO] [stdout] | [INFO] [stdout] 437 | let mut decrypt_data = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `block_size` is never read [INFO] [stdout] --> src/protocols/stream/tls/parser.rs:617:33 [INFO] [stdout] | [INFO] [stdout] 617 | let mut block_size: usize = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [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: 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: 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)]` 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: `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)]` 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:25 [INFO] [stdout] | [INFO] [stdout] 437 | let mut decrypt_data = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [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: value assigned to `block_size` is never read [INFO] [stdout] --> src/protocols/stream/tls/parser.rs:617:33 [INFO] [stdout] | [INFO] [stdout] 617 | let mut block_size: usize = 0; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [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: 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: 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)]` 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: 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)]` 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: `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)]` 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: unused variable: `conn` [INFO] [stdout] --> src/conntrack/mod.rs:133:21 [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: 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: `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: 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: value assigned to `hash` is never read [INFO] [stdout] --> src/main.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | hash = hash.wrapping_add(packet.data[37]); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [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)]` 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; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn drain_sessions(&mut self) -> Vec; [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 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub(crate) fn drain_sessions(&mut self) -> Vec { [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, [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: unused variable: `conn` [INFO] [stdout] --> src/conntrack/mod.rs:133:21 [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: 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: 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: 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, [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) { [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: 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: fields `ts` and `time_to_second_packet` are never read [INFO] [stdout] --> src/conntrack/conn/trackedconnection.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 170 | pub struct Connection { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 179 | pub ts: Instant, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub time_to_second_packet: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Connection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Packet`, `Connection`, and `Session` are never constructed [INFO] [stdout] --> src/conntrack/conn/trackedconnection.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 214 | pub enum Level { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 217 | Packet, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 218 | /// Suitable for analyzing entire connections, whether as a single record or a stream. [INFO] [stdout] 219 | Connection, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | Session, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Level` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `client`, `server`, `total_pkts`, `total_bytes`, 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] 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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn median_pkts_to_fill(&self) -> Option { [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, [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 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn raw_mut(&mut self) -> &mut Vec { [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)]` 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.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] = 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 | ... (key_material_length, Vec::from(client_write_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_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: 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: value assigned to `hash` is never read [INFO] [stdout] --> src/main.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | hash = hash.wrapping_add(packet.data[37]); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [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 | ..._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:166 [INFO] [stdout] | [INFO] [stdout] 730 | ...t_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: 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] [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)]` 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; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | fn drain_sessions(&mut self) -> Vec; [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 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 302 | pub(crate) fn drain_sessions(&mut self) -> Vec { [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, [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, [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) { [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: fields `ts` and `time_to_second_packet` are never read [INFO] [stdout] --> src/conntrack/conn/trackedconnection.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 170 | pub struct Connection { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 179 | pub ts: Instant, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub time_to_second_packet: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Connection` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Packet`, `Connection`, and `Session` are never constructed [INFO] [stdout] --> src/conntrack/conn/trackedconnection.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 214 | pub enum Level { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 217 | Packet, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 218 | /// Suitable for analyzing entire connections, whether as a single record or a stream. [INFO] [stdout] 219 | Connection, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | Session, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Level` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `client`, `server`, `total_pkts`, `total_bytes`, 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] 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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn median_pkts_to_fill(&self) -> Option { [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, [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 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn raw_mut(&mut self) -> &mut Vec { [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)]` 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.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] = 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 | ... (key_material_length, Vec::from(client_write_key.clone()), Vec::from(server_write_key.clone()), Vec::from(client_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 | ..._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:166 [INFO] [stdout] | [INFO] [stdout] 730 | ...t_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: 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] [stdout] warning: 98 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 98 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.76s [INFO] running `Command { std: "docker" "inspect" "a949a0593de3f97bc649356c1ebd8934fcd9d67cd778ae1b35c6fc285c7cef41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a949a0593de3f97bc649356c1ebd8934fcd9d67cd778ae1b35c6fc285c7cef41", kill_on_drop: false }` [INFO] [stdout] a949a0593de3f97bc649356c1ebd8934fcd9d67cd778ae1b35c6fc285c7cef41