[INFO] cloning repository https://github.com/fankh/mxwatch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fankh/mxwatch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffankh%2Fmxwatch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffankh%2Fmxwatch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dd45ba0cb1fecbd59423161eea25b0cf9fbb9ea7
[INFO] testing fankh/mxwatch/dd45ba0cb1fecbd59423161eea25b0cf9fbb9ea7 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffankh%2Fmxwatch" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fankh/mxwatch
[INFO] finished tweaking git repo https://github.com/fankh/mxwatch
[INFO] tweaked toml for git repo https://github.com/fankh/mxwatch written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fankh/mxwatch on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fankh/mxwatch 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" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded assert-json-diff v2.0.2
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.108
[INFO] [stderr]   Downloaded tracing-serde v0.2.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.108
[INFO] [stderr]   Downloaded pnet_macros_support v0.35.0
[INFO] [stderr]   Downloaded pnet_transport v0.35.0
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded pnet_sys v0.35.0
[INFO] [stderr]   Downloaded ipnetwork v0.20.0
[INFO] [stderr]   Downloaded no-std-net v0.6.0
[INFO] [stderr]   Downloaded pnet_datalink v0.35.0
[INFO] [stderr]   Downloaded anyhow v1.0.101
[INFO] [stderr]   Downloaded pcap v2.4.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.9
[INFO] [stderr]   Downloaded bumpalo v3.20.1
[INFO] [stderr]   Downloaded pnet_macros v0.35.0
[INFO] [stderr]   Downloaded reqwest v0.12.28
[INFO] [stderr]   Downloaded js-sys v0.3.85
[INFO] [stderr]   Downloaded clap_builder v4.5.59
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.108
[INFO] [stderr]   Downloaded clap v4.5.59
[INFO] [stderr]   Downloaded pnet_packet v0.35.0
[INFO] [stderr]   Downloaded chrono v0.4.43
[INFO] [stderr]   Downloaded webpki-roots v1.0.6
[INFO] [stderr]   Downloaded syn v2.0.116
[INFO] [stderr]   Downloaded rustls-pki-types v1.14.0
[INFO] [stderr]   Downloaded pnet v0.35.0
[INFO] [stderr]   Downloaded pnet_base v0.35.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.58
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.108
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded rustix v1.1.3
[INFO] [stderr]   Downloaded web-sys v0.3.85
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 29a3ef07ae1a57845890ab068729f87b79842256de3057e502f009e3ad229bf0
[INFO] running `Command { std: "docker" "start" "-a" "29a3ef07ae1a57845890ab068729f87b79842256de3057e502f009e3ad229bf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "29a3ef07ae1a57845890ab068729f87b79842256de3057e502f009e3ad229bf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29a3ef07ae1a57845890ab068729f87b79842256de3057e502f009e3ad229bf0", kill_on_drop: false }`
[INFO] [stdout] 29a3ef07ae1a57845890ab068729f87b79842256de3057e502f009e3ad229bf0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 47d1c991dc999fcb9f617860cc654d50b15c4bb3adfb95047318b5e7001e2c43
[INFO] running `Command { std: "docker" "start" "-a" "47d1c991dc999fcb9f617860cc654d50b15c4bb3adfb95047318b5e7001e2c43", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling no-std-net v0.6.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling pnet_base v0.35.0
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling pnet_macros_support v0.35.0
[INFO] [stderr]    Compiling pnet_sys v0.35.0
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling pnet v0.35.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling clap_builder v4.5.59
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling errno v0.2.8
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pnet_macros v0.35.0
[INFO] [stderr]    Compiling pcap v2.4.0
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling pnet_packet v0.35.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.5.59
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling ipnetwork v0.20.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling pnet_datalink v0.35.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling pnet_transport v0.35.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling mxwatch v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tcp`, `udp`, `dns`, and `tls` are never read
[INFO] [stdout]    --> src/config.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct ParsersConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 228 |     #[serde(default)]
[INFO] [stdout] 229 |     pub tcp: TcpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 230 |     #[serde(default)]
[INFO] [stdout] 231 |     pub udp: UdpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 232 |     #[serde(default)]
[INFO] [stdout] 233 |     pub dns: DnsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub tls: TlsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsersConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct TcpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 248 |     #[serde(default = "default_true")]
[INFO] [stdout] 249 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TcpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct UdpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 259 |     #[serde(default = "default_true")]
[INFO] [stdout] 260 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpParserConfig` 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 `enabled` and `entropy_threshold` are never read
[INFO] [stdout]    --> src/config.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub struct DnsParserConfig {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 270 |     #[serde(default = "default_true")]
[INFO] [stdout] 271 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 272 |     #[serde(default = "default_entropy_threshold")]
[INFO] [stdout] 273 |     pub entropy_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct HttpParserConfig {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 290 |     #[serde(default = "default_true")]
[INFO] [stdout] 291 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct TlsParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 306 |     #[serde(default = "default_true")]
[INFO] [stdout] 307 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TlsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:381:9
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub struct DnsTunnelDetectorConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] 380 |     #[serde(default = "default_true")]
[INFO] [stdout] 381 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsTunnelDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub struct PortScanDetectorConfig {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] 403 |     #[serde(default = "default_true")]
[INFO] [stdout] 404 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortScanDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct ProtoAnomalyDetectorConfig {
[INFO] [stdout]     |            -------------------------- field in this struct
[INFO] [stdout] 429 |     #[serde(default = "default_true")]
[INFO] [stdout] 430 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProtoAnomalyDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_flow_age_secs` is never read
[INFO] [stdout]    --> src/config.rs:462:9
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub struct C2BeaconDetectorConfig {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub max_flow_age_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `C2BeaconDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_flow_age_secs` is never read
[INFO] [stdout]    --> src/config.rs:556:9
[INFO] [stdout]     |
[INFO] [stdout] 534 | pub struct DataExfilDetectorConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 556 |     pub max_flow_age_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataExfilDetectorConfig` 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: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/beacon.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl BeaconDetector {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/c2_beacon.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl C2BeaconDetector {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/data_exfil.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl DataExfilDetector {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_counters` is never used
[INFO] [stdout]    --> src/detectors/dns_tunnel.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl DnsTunnelDetector {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn reset_counters(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]   --> src/detectors/port_scan.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl PortScanDetector {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn cleanup(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TcpConnectionPhase` is never used
[INFO] [stdout]   --> src/parsers/tcp.rs:59:10
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum TcpConnectionPhase {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_fin_scan` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn is_fin_scan(info: &TcpInfo) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_connection_phase` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn classify_connection_phase(info: &TcpInfo) -> TcpConnectionPhase {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `service_name_for_port` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dhcp_port` is never used
[INFO] [stdout]   --> src/parsers/udp.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn is_dhcp_port(info: &UdpInfo) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `service_name_for_port` is never used
[INFO] [stdout]   --> src/parsers/udp.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_SRV` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const DNS_TYPE_SRV: u16 = 33;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_DS` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const DNS_TYPE_DS: u16 = 43;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_RRSIG` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const DNS_TYPE_RRSIG: u16 = 46;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_NSEC` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const DNS_TYPE_NSEC: u16 = 47;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_DNSKEY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const DNS_TYPE_DNSKEY: u16 = 48;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_ANY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const DNS_TYPE_ANY: u16 = 255;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_IN` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const DNS_CLASS_IN: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_ANY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const DNS_CLASS_ANY: u16 = 255;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rtype_name` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn rtype_name(rtype: u16) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rcode_name` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn rcode_name(rcode: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_http_request` is never used
[INFO] [stdout]    --> src/parsers/http.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn parse_http_request(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_http_response` is never used
[INFO] [stdout]    --> src/parsers/http.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn parse_http_response(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_http_port` is never used
[INFO] [stdout]    --> src/parsers/http.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn is_http_port(port: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_is_redirect` is never used
[INFO] [stdout]    --> src/parsers/http.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn status_is_redirect(code: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_is_error` is never used
[INFO] [stdout]    --> src/parsers/http.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub fn status_is_error(code: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_CHANGE_CIPHER_SPEC` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const TLS_CONTENT_CHANGE_CIPHER_SPEC: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_ALERT` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const TLS_CONTENT_ALERT: u8 = 21;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_APPLICATION_DATA` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const TLS_CONTENT_APPLICATION_DATA: u8 = 23;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_HEARTBEAT` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const TLS_CONTENT_HEARTBEAT: u8 = 24;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_SERVER_HELLO` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const TLS_HANDSHAKE_SERVER_HELLO: u8 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_CERTIFICATE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const TLS_HANDSHAKE_CERTIFICATE: u8 = 11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_SERVER_HELLO_DONE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const TLS_HANDSHAKE_SERVER_HELLO_DONE: u8 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_FINISHED` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const TLS_HANDSHAKE_FINISHED: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_version_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn tls_version_name(major: u8, minor: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_tls_port` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn is_tls_port(port: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_service_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn tls_service_name(port: u16) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_content_type_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn tls_content_type_name(content_type: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_suspicious_sni` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn is_suspicious_sni(sni: &str, blocklist: &[String]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_ip_address` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn is_ip_address(s: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMB2_FLAGS_RELATED` is never used
[INFO] [stdout]   --> src/parsers/smb.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub const SMB2_FLAGS_RELATED: u32 = 0x0000_0004;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PROTO_V2` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const SSH_PROTO_V2: &str = "2.0";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_KEXINIT` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const SSH_MSG_KEXINIT: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_NEWKEYS` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const SSH_MSG_NEWKEYS: u8 = 21;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_SERVICE_REQUEST` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const SSH_MSG_SERVICE_REQUEST: u8 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_REQUEST` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const SSH_MSG_USERAUTH_REQUEST: u8 = 50;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_FAILURE` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const SSH_MSG_USERAUTH_FAILURE: u8 = 51;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_SUCCESS` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const SSH_MSG_USERAUTH_SUCCESS: u8 = 52;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_DISCONNECT` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const SSH_MSG_DISCONNECT: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ssh_message_type_name` is never used
[INFO] [stdout]    --> src/parsers/ssh.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn ssh_message_type_name(msg_type: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDP_NEG_FAILURE` is never used
[INFO] [stdout]   --> src/parsers/rdp.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const RDP_NEG_FAILURE: u8 = 0x03;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTOCOL_RDSTLS` is never used
[INFO] [stdout]   --> src/parsers/rdp.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const PROTOCOL_RDSTLS: u32 = 0x0000_0004;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdp_protocol_names` is never used
[INFO] [stdout]    --> src/parsers/rdp.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn rdp_protocol_names(protocols: u32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "47d1c991dc999fcb9f617860cc654d50b15c4bb3adfb95047318b5e7001e2c43", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "47d1c991dc999fcb9f617860cc654d50b15c4bb3adfb95047318b5e7001e2c43", kill_on_drop: false }`
[INFO] [stdout] 47d1c991dc999fcb9f617860cc654d50b15c4bb3adfb95047318b5e7001e2c43
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cec7a87452e633bb8b92c95b6b0a4c8babe0c786e3c5a2affc6b4dc66f04f7f8
[INFO] running `Command { std: "docker" "start" "-a" "cec7a87452e633bb8b92c95b6b0a4c8babe0c786e3c5a2affc6b4dc66f04f7f8", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling ipnetwork v0.20.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling pnet_datalink v0.35.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling pnet_macros v0.35.0
[INFO] [stderr]    Compiling pcap v2.4.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling pnet_packet v0.35.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling pnet_transport v0.35.0
[INFO] [stderr]    Compiling pnet v0.35.0
[INFO] [stderr]    Compiling mxwatch v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 |     fn header(tx_id: u16, flags: u16, qdcount: u16, ancount: u16, nscount: u16, arcount: u16) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `question` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 |     fn question(name: &str, qtype: u16, qclass: u16) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tcp`, `udp`, `dns`, and `tls` are never read
[INFO] [stdout]    --> src/config.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct ParsersConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 228 |     #[serde(default)]
[INFO] [stdout] 229 |     pub tcp: TcpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 230 |     #[serde(default)]
[INFO] [stdout] 231 |     pub udp: UdpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 232 |     #[serde(default)]
[INFO] [stdout] 233 |     pub dns: DnsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub tls: TlsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsersConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct TcpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 248 |     #[serde(default = "default_true")]
[INFO] [stdout] 249 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TcpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct UdpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 259 |     #[serde(default = "default_true")]
[INFO] [stdout] 260 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpParserConfig` 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 `enabled` and `entropy_threshold` are never read
[INFO] [stdout]    --> src/config.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub struct DnsParserConfig {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 270 |     #[serde(default = "default_true")]
[INFO] [stdout] 271 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 272 |     #[serde(default = "default_entropy_threshold")]
[INFO] [stdout] 273 |     pub entropy_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct HttpParserConfig {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 290 |     #[serde(default = "default_true")]
[INFO] [stdout] 291 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct TlsParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 306 |     #[serde(default = "default_true")]
[INFO] [stdout] 307 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TlsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:381:9
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub struct DnsTunnelDetectorConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] 380 |     #[serde(default = "default_true")]
[INFO] [stdout] 381 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsTunnelDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:404:9
[INFO] [stdout]     |
[INFO] [stdout] 402 | pub struct PortScanDetectorConfig {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] 403 |     #[serde(default = "default_true")]
[INFO] [stdout] 404 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PortScanDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct ProtoAnomalyDetectorConfig {
[INFO] [stdout]     |            -------------------------- field in this struct
[INFO] [stdout] 429 |     #[serde(default = "default_true")]
[INFO] [stdout] 430 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProtoAnomalyDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_flow_age_secs` is never read
[INFO] [stdout]    --> src/config.rs:462:9
[INFO] [stdout]     |
[INFO] [stdout] 439 | pub struct C2BeaconDetectorConfig {
[INFO] [stdout]     |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub max_flow_age_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `C2BeaconDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_flow_age_secs` is never read
[INFO] [stdout]    --> src/config.rs:556:9
[INFO] [stdout]     |
[INFO] [stdout] 534 | pub struct DataExfilDetectorConfig {
[INFO] [stdout]     |            ----------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 556 |     pub max_flow_age_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DataExfilDetectorConfig` 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: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/beacon.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl BeaconDetector {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/c2_beacon.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl C2BeaconDetector {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]    --> src/detectors/data_exfil.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl DataExfilDetector {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset_counters` is never used
[INFO] [stdout]    --> src/detectors/dns_tunnel.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl DnsTunnelDetector {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn reset_counters(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cleanup` is never used
[INFO] [stdout]   --> src/detectors/port_scan.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl PortScanDetector {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn cleanup(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TcpConnectionPhase` is never used
[INFO] [stdout]   --> src/parsers/tcp.rs:59:10
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum TcpConnectionPhase {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_fin_scan` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn is_fin_scan(info: &TcpInfo) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify_connection_phase` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:232:8
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub fn classify_connection_phase(info: &TcpInfo) -> TcpConnectionPhase {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `service_name_for_port` is never used
[INFO] [stdout]    --> src/parsers/tcp.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dhcp_port` is never used
[INFO] [stdout]   --> src/parsers/udp.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn is_dhcp_port(info: &UdpInfo) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `service_name_for_port` is never used
[INFO] [stdout]   --> src/parsers/udp.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_SRV` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const DNS_TYPE_SRV: u16 = 33;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_DS` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const DNS_TYPE_DS: u16 = 43;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_RRSIG` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const DNS_TYPE_RRSIG: u16 = 46;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_NSEC` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const DNS_TYPE_NSEC: u16 = 47;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_DNSKEY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const DNS_TYPE_DNSKEY: u16 = 48;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_TYPE_ANY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const DNS_TYPE_ANY: u16 = 255;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_IN` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const DNS_CLASS_IN: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_ANY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const DNS_CLASS_ANY: u16 = 255;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rtype_name` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn rtype_name(rtype: u16) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rcode_name` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn rcode_name(rcode: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_http_request` is never used
[INFO] [stdout]    --> src/parsers/http.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn parse_http_request(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_http_response` is never used
[INFO] [stdout]    --> src/parsers/http.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn parse_http_response(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_http_port` is never used
[INFO] [stdout]    --> src/parsers/http.rs:288:8
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn is_http_port(port: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_is_redirect` is never used
[INFO] [stdout]    --> src/parsers/http.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn status_is_redirect(code: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `status_is_error` is never used
[INFO] [stdout]    --> src/parsers/http.rs:299:8
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub fn status_is_error(code: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_CHANGE_CIPHER_SPEC` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const TLS_CONTENT_CHANGE_CIPHER_SPEC: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_ALERT` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const TLS_CONTENT_ALERT: u8 = 21;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_APPLICATION_DATA` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const TLS_CONTENT_APPLICATION_DATA: u8 = 23;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_CONTENT_HEARTBEAT` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const TLS_CONTENT_HEARTBEAT: u8 = 24;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_SERVER_HELLO` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const TLS_HANDSHAKE_SERVER_HELLO: u8 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_CERTIFICATE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const TLS_HANDSHAKE_CERTIFICATE: u8 = 11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_SERVER_HELLO_DONE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const TLS_HANDSHAKE_SERVER_HELLO_DONE: u8 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_FINISHED` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const TLS_HANDSHAKE_FINISHED: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_version_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub fn tls_version_name(major: u8, minor: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_tls_port` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn is_tls_port(port: u16) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_service_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn tls_service_name(port: u16) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tls_content_type_name` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:179:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub fn tls_content_type_name(content_type: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_suspicious_sni` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn is_suspicious_sni(sni: &str, blocklist: &[String]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_ip_address` is never used
[INFO] [stdout]    --> src/parsers/tls.rs:240:4
[INFO] [stdout]     |
[INFO] [stdout] 240 | fn is_ip_address(s: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMB2_FLAGS_RELATED` is never used
[INFO] [stdout]   --> src/parsers/smb.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub const SMB2_FLAGS_RELATED: u32 = 0x0000_0004;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PROTO_V2` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const SSH_PROTO_V2: &str = "2.0";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_KEXINIT` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const SSH_MSG_KEXINIT: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_NEWKEYS` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const SSH_MSG_NEWKEYS: u8 = 21;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_SERVICE_REQUEST` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const SSH_MSG_SERVICE_REQUEST: u8 = 5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_REQUEST` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const SSH_MSG_USERAUTH_REQUEST: u8 = 50;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_FAILURE` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:52:11
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub const SSH_MSG_USERAUTH_FAILURE: u8 = 51;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_USERAUTH_SUCCESS` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const SSH_MSG_USERAUTH_SUCCESS: u8 = 52;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_MSG_DISCONNECT` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const SSH_MSG_DISCONNECT: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ssh_message_type_name` is never used
[INFO] [stdout]    --> src/parsers/ssh.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn ssh_message_type_name(msg_type: u8) -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDP_NEG_FAILURE` is never used
[INFO] [stdout]   --> src/parsers/rdp.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const RDP_NEG_FAILURE: u8 = 0x03;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROTOCOL_RDSTLS` is never used
[INFO] [stdout]   --> src/parsers/rdp.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const PROTOCOL_RDSTLS: u32 = 0x0000_0004;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdp_protocol_names` is never used
[INFO] [stdout]    --> src/parsers/rdp.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn rdp_protocol_names(protocols: u32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tcp`, `udp`, `dns`, and `tls` are never read
[INFO] [stdout]    --> src/config.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct ParsersConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 228 |     #[serde(default)]
[INFO] [stdout] 229 |     pub tcp: TcpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 230 |     #[serde(default)]
[INFO] [stdout] 231 |     pub udp: UdpParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 232 |     #[serde(default)]
[INFO] [stdout] 233 |     pub dns: DnsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub tls: TlsParserConfig,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsersConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct TcpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 248 |     #[serde(default = "default_true")]
[INFO] [stdout] 249 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TcpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:260:9
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct UdpParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 259 |     #[serde(default = "default_true")]
[INFO] [stdout] 260 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UdpParserConfig` 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 `enabled` and `entropy_threshold` are never read
[INFO] [stdout]    --> src/config.rs:271:9
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub struct DnsParserConfig {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 270 |     #[serde(default = "default_true")]
[INFO] [stdout] 271 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 272 |     #[serde(default = "default_entropy_threshold")]
[INFO] [stdout] 273 |     pub entropy_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DnsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:291:9
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct HttpParserConfig {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 290 |     #[serde(default = "default_true")]
[INFO] [stdout] 291 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `HttpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:307:9
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub struct TlsParserConfig {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] 306 |     #[serde(default = "default_true")]
[INFO] [stdout] 307 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TlsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]    --> src/config.rs:430:9
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct ProtoAnomalyDetectorConfig {
[INFO] [stdout]     |            -------------------------- field in this struct
[INFO] [stdout] 429 |     #[serde(default = "default_true")]
[INFO] [stdout] 430 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProtoAnomalyDetectorConfig` 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: method `cleanup` is never used
[INFO] [stdout]   --> src/detectors/port_scan.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl PortScanDetector {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn cleanup(&mut self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_IN` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const DNS_CLASS_IN: u16 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DNS_CLASS_ANY` is never used
[INFO] [stdout]   --> src/parsers/dns.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const DNS_CLASS_ANY: u16 = 255;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:509:8
[INFO] [stdout]     |
[INFO] [stdout] 509 |     fn header(tx_id: u16, flags: u16, qdcount: u16, ancount: u16, nscount: u16, arcount: u16) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `question` is never used
[INFO] [stdout]    --> src/parsers/dns.rs:532:8
[INFO] [stdout]     |
[INFO] [stdout] 532 |     fn question(name: &str, qtype: u16, qclass: u16) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_CERTIFICATE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const TLS_HANDSHAKE_CERTIFICATE: u8 = 11;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_SERVER_HELLO_DONE` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const TLS_HANDSHAKE_SERVER_HELLO_DONE: u8 = 14;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TLS_HANDSHAKE_FINISHED` is never used
[INFO] [stdout]   --> src/parsers/tls.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const TLS_HANDSHAKE_FINISHED: u8 = 20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SMB2_FLAGS_RELATED` is never used
[INFO] [stdout]   --> src/parsers/smb.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub const SMB2_FLAGS_RELATED: u32 = 0x0000_0004;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SSH_PROTO_V2` is never used
[INFO] [stdout]   --> src/parsers/ssh.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const SSH_PROTO_V2: &str = "2.0";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RDP_NEG_FAILURE` is never used
[INFO] [stdout]   --> src/parsers/rdp.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const RDP_NEG_FAILURE: u8 = 0x03;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.69s
[INFO] running `Command { std: "docker" "inspect" "cec7a87452e633bb8b92c95b6b0a4c8babe0c786e3c5a2affc6b4dc66f04f7f8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cec7a87452e633bb8b92c95b6b0a4c8babe0c786e3c5a2affc6b4dc66f04f7f8", kill_on_drop: false }`
[INFO] [stdout] cec7a87452e633bb8b92c95b6b0a4c8babe0c786e3c5a2affc6b4dc66f04f7f8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8989a481894f3d2a67c056528c0e38a5de6f24e1d8a0a3ba392caf0b9724d9ee
[INFO] running `Command { std: "docker" "start" "-a" "8989a481894f3d2a67c056528c0e38a5de6f24e1d8a0a3ba392caf0b9724d9ee", kill_on_drop: false }`
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stderr]     |
[INFO] [stderr] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stderr]     |            -------------------- field in this struct
[INFO] [stderr] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `header` is never used
[INFO] [stderr]    --> src/parsers/dns.rs:509:8
[INFO] [stderr]     |
[INFO] [stderr] 509 |     fn header(tx_id: u16, flags: u16, qdcount: u16, ancount: u16, nscount: u16, arcount: u16) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `question` is never used
[INFO] [stderr]    --> src/parsers/dns.rs:532:8
[INFO] [stderr]     |
[INFO] [stderr] 532 |     fn question(name: &str, qtype: u16, qclass: u16) -> Vec<u8> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `mxwatch` (lib) generated 1 warning
[INFO] [stderr] warning: `mxwatch` (lib test) generated 3 warnings (1 duplicate)
[INFO] [stderr] warning: fields `tcp`, `udp`, `dns`, and `tls` are never read
[INFO] [stderr]    --> src/config.rs:229:9
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub struct ParsersConfig {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] 228 |     #[serde(default)]
[INFO] [stderr] 229 |     pub tcp: TcpParserConfig,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 230 |     #[serde(default)]
[INFO] [stderr] 231 |     pub udp: UdpParserConfig,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 232 |     #[serde(default)]
[INFO] [stderr] 233 |     pub dns: DnsParserConfig,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 237 |     pub tls: TlsParserConfig,
[INFO] [stderr]     |         ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParsersConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:249:9
[INFO] [stderr]     |
[INFO] [stderr] 247 | pub struct TcpParserConfig {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] 248 |     #[serde(default = "default_true")]
[INFO] [stderr] 249 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `TcpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:260:9
[INFO] [stderr]     |
[INFO] [stderr] 258 | pub struct UdpParserConfig {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] 259 |     #[serde(default = "default_true")]
[INFO] [stderr] 260 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `UdpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `enabled` and `entropy_threshold` are never read
[INFO] [stderr]    --> src/config.rs:271:9
[INFO] [stderr]     |
[INFO] [stderr] 269 | pub struct DnsParserConfig {
[INFO] [stderr]     |            --------------- fields in this struct
[INFO] [stderr] 270 |     #[serde(default = "default_true")]
[INFO] [stderr] 271 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr] 272 |     #[serde(default = "default_entropy_threshold")]
[INFO] [stderr] 273 |     pub entropy_threshold: f64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `DnsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:291:9
[INFO] [stderr]     |
[INFO] [stderr] 289 | pub struct HttpParserConfig {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] 290 |     #[serde(default = "default_true")]
[INFO] [stderr] 291 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `HttpParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:307:9
[INFO] [stderr]     |
[INFO] [stderr] 305 | pub struct TlsParserConfig {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] 306 |     #[serde(default = "default_true")]
[INFO] [stderr] 307 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `TlsParserConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:430:9
[INFO] [stderr]     |
[INFO] [stderr] 428 | pub struct ProtoAnomalyDetectorConfig {
[INFO] [stderr]     |            -------------------------- field in this struct
[INFO] [stderr] 429 |     #[serde(default = "default_true")]
[INFO] [stderr] 430 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ProtoAnomalyDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `cleanup` is never used
[INFO] [stderr]   --> src/detectors/port_scan.rs:88:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl PortScanDetector {
[INFO] [stderr]    | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 88 |     pub fn cleanup(&mut self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `config` is never read
[INFO] [stderr]    --> src/detectors/proto_anomaly.rs:197:5
[INFO] [stderr]     |
[INFO] [stderr] 196 | pub struct ProtoAnomalyDetector {
[INFO] [stderr]     |            -------------------- field in this struct
[INFO] [stderr] 197 |     config: ProtoAnomalyDetectorConfig,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_CLASS_IN` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:40:11
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub const DNS_CLASS_IN: u16 = 1;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_CLASS_ANY` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:41:11
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub const DNS_CLASS_ANY: u16 = 255;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_HANDSHAKE_CERTIFICATE` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:39:11
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub const TLS_HANDSHAKE_CERTIFICATE: u8 = 11;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_HANDSHAKE_SERVER_HELLO_DONE` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:40:11
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub const TLS_HANDSHAKE_SERVER_HELLO_DONE: u8 = 14;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_HANDSHAKE_FINISHED` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:41:11
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub const TLS_HANDSHAKE_FINISHED: u8 = 20;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SMB2_FLAGS_RELATED` is never used
[INFO] [stderr]   --> src/parsers/smb.rs:70:11
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub const SMB2_FLAGS_RELATED: u32 = 0x0000_0004;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_PROTO_V2` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:34:11
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub const SSH_PROTO_V2: &str = "2.0";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RDP_NEG_FAILURE` is never used
[INFO] [stderr]   --> src/parsers/rdp.rs:61:11
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub const RDP_NEG_FAILURE: u8 = 0x03;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:381:9
[INFO] [stderr]     |
[INFO] [stderr] 379 | pub struct DnsTunnelDetectorConfig {
[INFO] [stderr]     |            ----------------------- field in this struct
[INFO] [stderr] 380 |     #[serde(default = "default_true")]
[INFO] [stderr] 381 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `DnsTunnelDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `enabled` is never read
[INFO] [stderr]    --> src/config.rs:404:9
[INFO] [stderr]     |
[INFO] [stderr] 402 | pub struct PortScanDetectorConfig {
[INFO] [stderr]     |            ---------------------- field in this struct
[INFO] [stderr] 403 |     #[serde(default = "default_true")]
[INFO] [stderr] 404 |     pub enabled: bool,
[INFO] [stderr]     |         ^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `PortScanDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_flow_age_secs` is never read
[INFO] [stderr]    --> src/config.rs:462:9
[INFO] [stderr]     |
[INFO] [stderr] 439 | pub struct C2BeaconDetectorConfig {
[INFO] [stderr]     |            ---------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 462 |     pub max_flow_age_secs: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `C2BeaconDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `max_flow_age_secs` is never read
[INFO] [stderr]    --> src/config.rs:556:9
[INFO] [stderr]     |
[INFO] [stderr] 534 | pub struct DataExfilDetectorConfig {
[INFO] [stderr]     |            ----------------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 556 |     pub max_flow_age_secs: u64,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `DataExfilDetectorConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `cleanup` is never used
[INFO] [stderr]    --> src/detectors/beacon.rs:264:12
[INFO] [stderr]     |
[INFO] [stderr] 100 | impl BeaconDetector {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 264 |     pub fn cleanup(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `cleanup` is never used
[INFO] [stderr]    --> src/detectors/c2_beacon.rs:204:12
[INFO] [stderr]     |
[INFO] [stderr]  79 | impl C2BeaconDetector {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn cleanup(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `cleanup` is never used
[INFO] [stderr]    --> src/detectors/data_exfil.rs:164:12
[INFO] [stderr]     |
[INFO] [stderr]  63 | impl DataExfilDetector {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 164 |     pub fn cleanup(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `reset_counters` is never used
[INFO] [stderr]    --> src/detectors/dns_tunnel.rs:207:12
[INFO] [stderr]     |
[INFO] [stderr]  39 | impl DnsTunnelDetector {
[INFO] [stderr]     | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 207 |     pub fn reset_counters(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `TcpConnectionPhase` is never used
[INFO] [stderr]   --> src/parsers/tcp.rs:59:10
[INFO] [stderr]    |
[INFO] [stderr] 59 | pub enum TcpConnectionPhase {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_fin_scan` is never used
[INFO] [stderr]    --> src/parsers/tcp.rs:226:8
[INFO] [stderr]     |
[INFO] [stderr] 226 | pub fn is_fin_scan(info: &TcpInfo) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `classify_connection_phase` is never used
[INFO] [stderr]    --> src/parsers/tcp.rs:232:8
[INFO] [stderr]     |
[INFO] [stderr] 232 | pub fn classify_connection_phase(info: &TcpInfo) -> TcpConnectionPhase {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `service_name_for_port` is never used
[INFO] [stderr]    --> src/parsers/tcp.rs:268:8
[INFO] [stderr]     |
[INFO] [stderr] 268 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_dhcp_port` is never used
[INFO] [stderr]   --> src/parsers/udp.rs:74:8
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn is_dhcp_port(info: &UdpInfo) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `service_name_for_port` is never used
[INFO] [stderr]   --> src/parsers/udp.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 84 | pub fn service_name_for_port(port: u16) -> Option<&'static str> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_SRV` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:29:11
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const DNS_TYPE_SRV: u16 = 33;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_DS` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:32:11
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub const DNS_TYPE_DS: u16 = 43;
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_RRSIG` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:33:11
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub const DNS_TYPE_RRSIG: u16 = 46;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_NSEC` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:34:11
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub const DNS_TYPE_NSEC: u16 = 47;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_DNSKEY` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:35:11
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub const DNS_TYPE_DNSKEY: u16 = 48;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DNS_TYPE_ANY` is never used
[INFO] [stderr]   --> src/parsers/dns.rs:37:11
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub const DNS_TYPE_ANY: u16 = 255;
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rtype_name` is never used
[INFO] [stderr]    --> src/parsers/dns.rs:126:8
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn rtype_name(rtype: u16) -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rcode_name` is never used
[INFO] [stderr]    --> src/parsers/dns.rs:148:8
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub fn rcode_name(rcode: u8) -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_http_request` is never used
[INFO] [stderr]    --> src/parsers/http.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn parse_http_request(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_http_response` is never used
[INFO] [stderr]    --> src/parsers/http.rs:148:8
[INFO] [stderr]     |
[INFO] [stderr] 148 | pub fn parse_http_response(data: &[u8]) -> Option<HttpInfo> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_http_port` is never used
[INFO] [stderr]    --> src/parsers/http.rs:288:8
[INFO] [stderr]     |
[INFO] [stderr] 288 | pub fn is_http_port(port: u16) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `status_is_redirect` is never used
[INFO] [stderr]    --> src/parsers/http.rs:293:8
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub fn status_is_redirect(code: u16) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `status_is_error` is never used
[INFO] [stderr]    --> src/parsers/http.rs:299:8
[INFO] [stderr]     |
[INFO] [stderr] 299 | pub fn status_is_error(code: u16) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_CONTENT_CHANGE_CIPHER_SPEC` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:27:11
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub const TLS_CONTENT_CHANGE_CIPHER_SPEC: u8 = 20;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_CONTENT_ALERT` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:28:11
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub const TLS_CONTENT_ALERT: u8 = 21;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_CONTENT_APPLICATION_DATA` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:30:11
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub const TLS_CONTENT_APPLICATION_DATA: u8 = 23;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_CONTENT_HEARTBEAT` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub const TLS_CONTENT_HEARTBEAT: u8 = 24;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TLS_HANDSHAKE_SERVER_HELLO` is never used
[INFO] [stderr]   --> src/parsers/tls.rs:38:11
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub const TLS_HANDSHAKE_SERVER_HELLO: u8 = 2;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tls_version_name` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:143:8
[INFO] [stderr]     |
[INFO] [stderr] 143 | pub fn tls_version_name(major: u8, minor: u8) -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_tls_port` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:159:8
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub fn is_tls_port(port: u16) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tls_service_name` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 164 | pub fn tls_service_name(port: u16) -> Option<&'static str> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tls_content_type_name` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:179:8
[INFO] [stderr]     |
[INFO] [stderr] 179 | pub fn tls_content_type_name(content_type: u8) -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_suspicious_sni` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:205:8
[INFO] [stderr]     |
[INFO] [stderr] 205 | pub fn is_suspicious_sni(sni: &str, blocklist: &[String]) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_ip_address` is never used
[INFO] [stderr]    --> src/parsers/tls.rs:240:4
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn is_ip_address(s: &str) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_KEXINIT` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:40:11
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub const SSH_MSG_KEXINIT: u8 = 20;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_NEWKEYS` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:43:11
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub const SSH_MSG_NEWKEYS: u8 = 21;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_SERVICE_REQUEST` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:46:11
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub const SSH_MSG_SERVICE_REQUEST: u8 = 5;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_USERAUTH_REQUEST` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:49:11
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub const SSH_MSG_USERAUTH_REQUEST: u8 = 50;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_USERAUTH_FAILURE` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:52:11
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub const SSH_MSG_USERAUTH_FAILURE: u8 = 51;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_USERAUTH_SUCCESS` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:55:11
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub const SSH_MSG_USERAUTH_SUCCESS: u8 = 52;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SSH_MSG_DISCONNECT` is never used
[INFO] [stderr]   --> src/parsers/ssh.rs:58:11
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub const SSH_MSG_DISCONNECT: u8 = 1;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ssh_message_type_name` is never used
[INFO] [stderr]    --> src/parsers/ssh.rs:312:8
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub fn ssh_message_type_name(msg_type: u8) -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PROTOCOL_RDSTLS` is never used
[INFO] [stderr]   --> src/parsers/rdp.rs:74:11
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub const PROTOCOL_RDSTLS: u32 = 0x0000_0004;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rdp_protocol_names` is never used
[INFO] [stderr]    --> src/parsers/rdp.rs:251:8
[INFO] [stderr]     |
[INFO] [stderr] 251 | pub fn rdp_protocol_names(protocols: u32) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `mxwatch` (bin "mxwatch" test) generated 19 warnings (2 duplicates)
[INFO] [stderr] warning: `mxwatch` (bin "mxwatch") generated 65 warnings (17 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mxwatch-b2f7565bd2efa710)
[INFO] [stdout] 
[INFO] [stdout] running 604 tests
[INFO] [stdout] test capture::afpacket_capture::tests::test_afpacket_capture_new ... ok
[INFO] [stdout] test capture::afpacket_capture::tests::test_kernel_struct_sizes ... ok
[INFO] [stdout] test capture::afpacket_capture::tests::test_ring_index_wraps ... ok
[INFO] [stdout] test capture::afpacket_capture::tests::test_block_desc_field_offsets ... ok
[INFO] [stdout] test capture::afpacket_capture::tests::test_tpacket3_hdr_field_offsets ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_pcap_capture_new_does_not_panic ... ok
[INFO] [stdout] test capture::afpacket_capture::tests::test_run_blocking_rejects_bad_block_size ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_pcap_capture_stores_config ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_epoch_zero ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_large_positive_seconds ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_half_second ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_max_microseconds ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_microsecond_precision ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_negative_usec_clamped_to_zero ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_one_second ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_ts_overflow_microseconds_clamped ... ok
[INFO] [stdout] test config::tests::test_default_afpacket_config ... ok
[INFO] [stdout] test config::tests::test_c2_beacon_defaults_when_section_omitted ... ok
[INFO] [stdout] test config::tests::test_default_config_agent ... ok
[INFO] [stdout] test config::tests::test_default_config_includes_health ... ok
[INFO] [stdout] test config::tests::test_afpacket_defaults_when_section_omitted ... ok
[INFO] [stdout] test config::tests::test_c2_beacon_disabled_via_toml ... ok
[INFO] [stdout] test config::tests::test_default_capture_values ... ok
[INFO] [stdout] test config::tests::test_default_health_listen_addr_uses_port_9002 ... ok
[INFO] [stdout] test config::tests::test_default_health_listen_addr_binds_all_interfaces ... ok
[INFO] [stdout] test config::tests::test_default_pcap_config ... ok
[INFO] [stdout] test config::tests::test_default_port_scan_detector ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_run_blocking_offline_nonexistent_file ... ok
[INFO] [stdout] test config::tests::test_default_c2_beacon_detector ... ok
[INFO] [stdout] test config::tests::test_default_dns_tunnel_detector ... ok
[INFO] [stdout] test config::tests::test_default_transport_values ... ok
[INFO] [stdout] test config::tests::test_from_file_nonexistent_returns_io_error ... ok
[INFO] [stdout] test config::tests::test_default_config_includes_resource_limits ... ok
[INFO] [stdout] test config::tests::test_health_defaults_when_section_omitted ... ok
[INFO] [stdout] test config::tests::test_default_resource_limits ... ok
[INFO] [stdout] test config::tests::test_parse_afpacket_section ... ok
[INFO] [stdout] test config::tests::test_parse_c2_beacon_section ... ok
[INFO] [stdout] test config::tests::test_parse_minimal_toml ... ok
[INFO] [stdout] test config::tests::test_parse_capture_section ... ok
[INFO] [stdout] test config::tests::test_parse_health_section ... ok
[INFO] [stdout] test config::tests::test_parse_invalid_toml_returns_error ... ok
[INFO] [stdout] test config::tests::test_parse_resource_limits_section ... ok
[INFO] [stdout] test config::tests::test_parse_detectors_section ... ok
[INFO] [stdout] test config::tests::test_resource_limits_custom_cpu_only ... ok
[INFO] [stdout] test config::tests::test_parse_pcap_section ... ok
[INFO] [stdout] test config::tests::test_resource_limits_section_omitted_uses_defaults ... ok
[INFO] [stdout] test config::tests::test_parse_transport_section ... ok
[INFO] [stdout] test config::tests::test_pcap_defaults_when_section_omitted ... ok
[INFO] [stdout] test config::tests::test_from_file_reads_agent_section ... ok
[INFO] [stdout] test config::tests::test_resource_limits_disabled_via_toml ... ok
[INFO] [stdout] test config::tests::test_pcap_read_file_absent_is_none ... ok
[INFO] [stdout] test detectors::beacon::tests::test_burst_packets_debounced_to_one_sample ... ok
[INFO] [stdout] test detectors::beacon::tests::test_cleanup_empty_does_not_panic ... ok
[INFO] [stdout] test detectors::beacon::tests::test_cleanup_keeps_fresh_flows ... ok
[INFO] [stdout] test detectors::beacon::tests::test_cleanup_removes_only_stale_entries ... ok
[INFO] [stdout] test detectors::beacon::tests::test_cleanup_removes_stale_flows ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_all_zeros_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_empty_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_highly_variable_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_identical_sizes ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_single_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_slightly_varying ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_two_similar_non_zero ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_zeros_excluded_from_cv ... ok
[INFO] [stdout] test detectors::beacon::tests::test_default_config_creates_detector ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_detector_name ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_evidence_required_fields ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_description_contains_flow_info ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_fires_after_min_connections_periodic ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_technique_t1071_for_port_80 ... ok
[INFO] [stdout] test detectors::beacon::tests::test_different_src_ip_is_different_flow ... ok
[INFO] [stdout] test detectors::beacon::tests::test_disabled_never_alerts ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_severity_is_high ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_technique_t1573_for_port_8443 ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_technique_t1573_for_port_443 ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_empty_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_technique_t1071_for_uncommon_port ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_high_frequency_tight_jitter ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_high_jitter_threshold_accepts_variable ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_identical_intervals_perfect ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_jitter_exactly_at_threshold_excluded ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_jitter_just_below_threshold_passes ... ok
[INFO] [stdout] test detectors::beacon::tests::test_common_port_signal_false_in_evidence ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_negative_threshold_always_fails ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_single_interval_zero_jitter ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_single_outlier_breaks_periodicity ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_tight_jitter_passes ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_wide_jitter_fails ... ok
[INFO] [stdout] test detectors::beacon::tests::test_single_call_no_alert ... ok
[INFO] [stdout] test detectors::beacon::tests::test_periodic_zero_mean_returns_false ... ok
[INFO] [stdout] test detectors::beacon::tests::test_consistent_payload_signal_with_uniform_sizes ... ok
[INFO] [stdout] test detectors::beacon::tests::test_different_dst_port_is_different_flow ... ok
[INFO] [stdout] test detectors::beacon::tests::test_no_alert_after_alerted_flag_set ... ok
[INFO] [stdout] test detectors::beacon::tests::test_min_connections_exactly_at_threshold_alerts ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_burst_packets_debounced_to_single_sample ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_cleanup_empty_detector_does_not_panic ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_cleanup_keeps_fresh_flows ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_cleanup_removes_only_stale_entries ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_cleanup_removes_stale_flows ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_default_config_creates_detector ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_detector_disabled_returns_none ... ok
[INFO] [stdout] test detectors::beacon::tests::test_alert_fires_only_once_per_flow ... ok
[INFO] [stdout] test detectors::beacon::tests::test_multiple_flows_tracked_independently ... ok
[INFO] [stdout] test detectors::beacon::tests::test_below_min_connections_no_alert ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_different_src_ip_is_different_flow ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_large_jitter_pct_clamped_to_valid_min_gap ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_alert_description_contains_flow_info ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_alert_evidence_contains_expected_fields ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_alert_fires_after_min_packets_periodic ... ok
[INFO] [stdout] test detectors::beacon::tests::test_uncommon_port_signal_in_evidence ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_all_same_returns_true ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_all_zeros_returns_false ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_beacon_with_drift ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_cv_exactly_at_threshold ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_cv_just_above_threshold_returns_false ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_empty_returns_false ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_high_frequency_beacon ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_jitter_above_threshold_returns_false ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_jitter_within_20pct ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_large_dataset_irregular ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_large_dataset_regular ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_large_jitter_accepts_moderate_variation ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_negative_jitter_treated_as_zero ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_perfect_60s_beacon ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_single_interval_returns_true ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_single_outlier_breaks_periodicity ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_strict_10pct_regular ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_strict_10pct_rejects_wide_jitter ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_two_equal_intervals_returns_true ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_zero_jitter_only_perfect ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_zero_jitter_rejects_variation ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_periodic_zero_mean_returns_false ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_zero_jitter_requires_perfect_intervals ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_single_packet_no_alert ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_alert_fires_at_threshold ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_accumulates_across_many_packets ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_cleanup_removes_aged_flows ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_different_dst_ips_are_independent ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_different_dst_ports_are_independent ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_disabled_returns_none ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_evidence_contains_expected_fields ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_no_alert_below_threshold ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_no_duplicate_alert_in_same_window ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_saturating_add_prevents_overflow ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_severity_critical_at_10x_threshold ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_severity_high_at_3x_threshold ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_severity_medium_at_threshold ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_single_large_packet_triggers_alert ... ok
[INFO] [stdout] test detectors::data_exfil::tests::test_zero_bytes_returns_none ... ok
[INFO] [stdout] test detectors::dga::tests::test_akamai_whitelisted ... ok
[INFO] [stdout] test detectors::dga::tests::test_alert_dga_score_present ... ok
[INFO] [stdout] test detectors::dga::tests::test_alert_domain_and_sld ... ok
[INFO] [stdout] test detectors::dga::tests::test_alert_technique_id ... ok
[INFO] [stdout] test detectors::dga::tests::test_all_consonants_high_confidence ... ok
[INFO] [stdout] test detectors::dga::tests::test_base32_domain_high_confidence ... ok
[INFO] [stdout] test detectors::dga::tests::test_bigram_score_common_english ... ok
[INFO] [stdout] test detectors::dga::tests::test_bigram_score_random ... ok
[INFO] [stdout] test detectors::beacon::tests::test_high_jitter_threshold_accepts_variable_timing ... ok
[INFO] [stdout] test detectors::dga::tests::test_consonant_cluster_score ... ok
[INFO] [stdout] test detectors::dga::tests::test_cloudfront_whitelisted ... ok
[INFO] [stdout] test detectors::dga::tests::test_disabled_detector_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_empty_questions_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_extract_sld_multi_label ... ok
[INFO] [stdout] test detectors::dga::tests::test_extract_sld_single_label ... ok
[INFO] [stdout] test detectors::dga::tests::test_extract_sld_trailing_dot ... ok
[INFO] [stdout] test detectors::dga::tests::test_github_whitelisted ... ok
[INFO] [stdout] test detectors::dga::tests::test_extract_sld_two_labels ... ok
[INFO] [stdout] test detectors::dga::tests::test_is_whitelisted_negative ... ok
[INFO] [stdout] test detectors::dga::tests::test_hex_domain_high_confidence ... ok
[INFO] [stdout] test detectors::dga::tests::test_high_numeric_ratio_domain ... ok
[INFO] [stdout] test detectors::dga::tests::test_is_whitelisted_positive ... ok
[INFO] [stdout] test detectors::dga::tests::test_length_score_boundaries ... ok
[INFO] [stdout] test detectors::dga::tests::test_long_pronounceable_domain_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_normal_domain_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_mail_subdomain_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_numeric_ratio_score ... ok
[INFO] [stdout] test detectors::dga::tests::test_pattern_score_base32 ... ok
[INFO] [stdout] test detectors::dga::tests::test_pattern_score_hex ... ok
[INFO] [stdout] test detectors::dga::tests::test_response_not_evaluated ... ok
[INFO] [stdout] test detectors::dga::tests::test_short_common_domain_no_alert ... ok
[INFO] [stdout] test detectors::dga::tests::test_short_sld_skipped ... ok
[INFO] [stdout] test detectors::dga::tests::test_vowel_score_all_digits ... ok
[INFO] [stdout] test detectors::dga::tests::test_vowel_score_no_vowels ... ok
[INFO] [stdout] test detectors::dga::tests::test_vowel_score_normal_english ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_alert_contains_domain_in_evidence ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_empty_questions_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_any_record_triggers_low_severity_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_excessive_label_count_triggers_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_extract_base_domain_multi_label ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_extract_base_domain_single_label ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_extract_base_domain_two_labels ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_high_combined_entropy_across_labels_triggers_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_high_entropy_subdomain_triggers_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_label_at_threshold_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_long_domain_triggers_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_long_individual_label_triggers_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_burst_triggers_alert_after_100_queries ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_low_combined_entropy_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_low_entropy_short_subdomain_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_normal_a_query_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_normal_label_count_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_normal_subdomain_no_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_null_record_triggers_medium_severity_alert ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_txt_record_triggers_low_severity_alert ... ok
[INFO] [stdout] test detectors::port_scan::tests::test_alert_fires_at_threshold ... ok
[INFO] [stdout] test detectors::port_scan::tests::test_counter_resets_after_alert ... ok
[INFO] [stdout] test detectors::port_scan::tests::test_different_sources_are_independent ... ok
[INFO] [stdout] test detectors::port_scan::tests::test_duplicate_ports_not_counted_twice ... ok
[INFO] [stdout] test detectors::port_scan::tests::test_no_alert_below_threshold ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_evidence_contains_port_and_protocols ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_http_on_22 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_http_on_443 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_http_on_993 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_ssh_on_443 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_tls_on_25 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_tls_on_80 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_unrecognized_payload_on_22 ... ok
[INFO] [stdout] test detectors::dns_tunnel::tests::test_reset_counters_clears_state ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_alert_unrecognized_payload_on_443 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_empty ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_http ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_smtp ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_ssh ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_tls ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_detect_protocol_unknown ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_dns_payload_invalid_opcode ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_dns_payload_too_short ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_dns_payload_valid_query ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_dns_payload_valid_response ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_dns_payload_zero_qdcount ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_dns ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_http_ports ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_smtp ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_ssh ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_tls_ports ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_expected_protocol_unknown_port ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_http_payload_all_methods ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_http_payload_get_request ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_http_payload_non_http ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_http_payload_post_request ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_http_payload_response ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_empty_payload ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_http_on_80 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_smtp_on_25 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_ssh_on_22 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_unknown_port ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_tls_on_443 ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_no_alert_unrecognized_payload_on_non_strict_port ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_smtp_payload_ehlo ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_smtp_payload_greeting ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_smtp_payload_helo ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_smtp_payload_mail_from ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_smtp_payload_not_smtp ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_ssh_payload_banner ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_ssh_payload_not_ssh ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_alert_record ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_application_data_record ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_change_cipher_spec ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_handshake_record ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_too_short ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_wrong_content_type ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_tls_payload_wrong_version_major ... ok
[INFO] [stdout] test detectors::proto_anomaly::tests::test_unrecognized_alert_evidence_has_null_observed ... ok
[INFO] [stdout] test events::ocsf::tests::test_alert_activity_id ... ok
[INFO] [stdout] test events::ocsf::tests::test_alert_detection_detail ... ok
[INFO] [stdout] test events::ocsf::tests::test_alert_message_from_description ... ok
[INFO] [stdout] test events::ocsf::tests::test_alert_severity_mapping ... ok
[INFO] [stdout] test events::ocsf::tests::test_connection_info_direction ... ok
[INFO] [stdout] test events::ocsf::tests::test_connection_info_protocol_uppercase ... ok
[INFO] [stdout] test events::ocsf::tests::test_endpoint_ipv6 ... ok
[INFO] [stdout] test events::ocsf::tests::test_endpoint_ipv4 ... ok
[INFO] [stdout] test events::ocsf::tests::test_json_detection_omitted_for_traffic ... ok
[INFO] [stdout] test events::ocsf::tests::test_json_detection_present_for_alert ... ok
[INFO] [stdout] test events::ocsf::tests::test_json_metadata ... ok
[INFO] [stdout] test events::ocsf::tests::test_json_time_is_integer ... ok
[INFO] [stdout] test events::ocsf::tests::test_json_traffic_structure ... ok
[INFO] [stdout] test events::ocsf::tests::test_roundtrip_alert ... ok
[INFO] [stdout] test events::ocsf::tests::test_severity_name_all ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_activity_id ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_class_uid ... ok
[INFO] [stdout] test events::ocsf::tests::test_roundtrip_traffic ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_connection_info ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_endpoints ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_no_detection ... ok
[INFO] [stdout] test events::ocsf::tests::test_traffic_severity_levels ... ok
[INFO] [stdout] test health::tests::default_health_listen_addr_binds_all_interfaces ... ok
[INFO] [stdout] test health::tests::default_health_listen_addr_uses_port_9002 ... ok
[INFO] [stdout] test health::tests::health_state_clone_shares_atomics ... ok
[INFO] [stdout] test health::tests::health_state_new_starts_with_capture_not_running ... ok
[INFO] [stdout] test health::tests::health_state_new_starts_with_no_events_sent ... ok
[INFO] [stdout] test health::tests::health_state_new_starts_with_transport_not_connected ... ok
[INFO] [stdout] test health::tests::healthz_response_has_agent_name ... ok
[INFO] [stdout] test health::tests::healthz_response_has_status_ok ... ok
[INFO] [stdout] test health::tests::healthz_response_has_version ... ok
[INFO] [stdout] test health::tests::healthz_returns_200 ... ok
[INFO] [stdout] test health::tests::healthz_returns_200_even_when_not_ready ... ok
[INFO] [stdout] test health::tests::healthz_returns_json_object ... ok
[INFO] [stdout] test health::tests::readyz_body_is_ready_when_all_conditions_met ... ok
[INFO] [stdout] test health::tests::readyz_body_is_not_ready_when_not_ready ... ok
[INFO] [stdout] test health::tests::readyz_returns_200_when_all_conditions_met ... ok
[INFO] [stdout] test health::tests::readyz_returns_503_when_capture_not_running ... ok
[INFO] [stdout] test health::tests::readyz_returns_503_when_no_conditions_met ... ok
[INFO] [stdout] test health::tests::readyz_returns_503_when_no_recent_events ... ok
[INFO] [stdout] test parsers::dns::tests::test_entropy_empty_string ... ok
[INFO] [stdout] test parsers::dns::tests::test_entropy_high_for_random_looking_string ... ok
[INFO] [stdout] test parsers::dns::tests::test_entropy_low_for_repetitive_string ... ok
[INFO] [stdout] test parsers::dns::tests::test_entropy_single_char_repeated ... ok
[INFO] [stdout] test parsers::dns::tests::test_entropy_two_equal_symbols ... ok
[INFO] [stdout] test parsers::dns::tests::test_flags_field_preserved ... ok
[INFO] [stdout] test parsers::dns::tests::test_opcode_extracted_from_flags ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_a_record_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_aaaa_record_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_authority_section ... ok
[INFO] [stdout] test health::tests::unknown_route_returns_404 ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_cname_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_empty_question_section ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_label_compression_in_answer_name ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_multiple_a_answers ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_mx_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_ns_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_nxdomain_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_rcode_nxdomain ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_ptr_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_response_flag ... ok
[INFO] [stdout] test health::tests::readyz_returns_503_when_transport_not_connected ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_standard_query_for_example_com ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_soa_response ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_too_short_returns_none ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_txt_response_multiple_strings ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_txt_response_single_string ... ok
[INFO] [stdout] test parsers::dns::tests::test_parse_dns_unknown_rtype_preserved_as_raw_bytes ... ok
[INFO] [stdout] test parsers::dns::tests::test_rcode_name_known_codes ... ok
[INFO] [stdout] test parsers::dns::tests::test_rtype_name_known_types ... ok
[INFO] [stdout] test parsers::dns::tests::test_wire_name_helper_round_trip ... ok
[INFO] [stdout] test parsers::http::tests::test_is_http_port_non_http_ports ... ok
[INFO] [stdout] test parsers::http::tests::test_is_http_port_standard_ports ... ok
[INFO] [stdout] test parsers::http::tests::test_not_suspicious_normal_get ... ok
[INFO] [stdout] test parsers::http::tests::test_not_suspicious_response_large_video ... ok
[INFO] [stdout] test parsers::http::tests::test_not_suspicious_response_normal ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_http_detects_request ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_http_detects_response ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_http_returns_none_for_unknown ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_all_standard_methods ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_authorization ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_basic_headers ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_connect_method ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_connection_header ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_content_length ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_content_type ... ok
[INFO] [stdout] test detectors::beacon::tests::test_interval_count_in_evidence ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_cookie ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_get_start_line ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_header_count ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_headers_complete_flag ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_referer ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_referrer_alternate_spelling ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_http10_fallback ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_returns_none_for_non_http ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_returns_none_for_response ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_transfer_encoding ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_x_forwarded_for ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_request_truncated_no_blank_line ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_min_packets_exactly_at_threshold_alerts ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_10_version ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_200_ok ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_301_moved_permanently_with_location ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_404_not_found ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_content_type ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_alert_evidence_interval_count_correct ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_invalid_status_code ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_multiple_set_cookie ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_returns_none_for_request ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_multi_reason_phrase ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_returns_none_for_garbage ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_transfer_encoding_chunked ... ok
[INFO] [stdout] test parsers::http::tests::test_status_is_error ... ok
[INFO] [stdout] test parsers::http::tests::test_status_is_redirect ... ok
[INFO] [stdout] test parsers::http::tests::test_parse_response_server_header ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_command_injection_backtick ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_command_injection_pipe ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_command_injection_semicolon ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_custom_pattern ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_directory_traversal_unix ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_directory_traversal_windows ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_null_byte_url_encoded ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_php_webshell_cmd ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_post_without_user_agent ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_request_returns_false_for_response ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_response_large_text_payload ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_response_old_apache ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_response_old_iis6 ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_response_returns_false_for_request ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_scanner_user_agent_nikto ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_scanner_user_agent_sqlmap ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_sql_union_select ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_sql_drop_table ... ok
[INFO] [stdout] test parsers::http::tests::test_suspicious_sql_union_select_percent_encoded ... ok
[INFO] [stdout] test parsers::rdp::tests::test_e2e_rdp_legacy_cr_suspicious ... ok
[INFO] [stdout] test parsers::rdp::tests::test_e2e_rdp_nla_cr_not_suspicious ... ok
[INFO] [stdout] test parsers::rdp::tests::test_e2e_rdp_tls_only_suspicious ... ok
[INFO] [stdout] test parsers::rdp::tests::test_e2e_rdp_cc_not_suspicious ... ok
[INFO] [stdout] test parsers::rdp::tests::test_is_rdp_port_non_rdp ... ok
[INFO] [stdout] test parsers::rdp::tests::test_is_rdp_port_standard ... ok
[INFO] [stdout] test parsers::rdp::tests::test_not_suspicious_rdp_hybrid_ex ... ok
[INFO] [stdout] test parsers::rdp::tests::test_not_suspicious_rdp_nla_requested ... ok
[INFO] [stdout] test parsers::rdp::tests::test_not_suspicious_rdp_no_neg_structure ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_cc_neg_type_is_rsp ... ok
[INFO] [stdout] test parsers::rdp::tests::test_not_suspicious_rdp_connection_confirm ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_hybrid_ex ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_cr_without_neg_structure ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_legacy_no_tls_no_nla ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_neg_type_is_req ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_nla_and_tls_requested ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_pdu_type_connection_confirm ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_pdu_type_connection_request ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_returns_none_on_empty ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_returns_none_on_garbage ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_returns_none_on_short_data ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_returns_none_wrong_tpkt_version ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_tls_only_no_nla ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_tpkt_length ... ok
[INFO] [stdout] test parsers::rdp::tests::test_parse_rdp_tpkt_version ... ok
[INFO] [stdout] test parsers::rdp::tests::test_rdp_protocol_names_all_flags ... ok
[INFO] [stdout] test parsers::rdp::tests::test_rdp_protocol_names_legacy ... ok
[INFO] [stdout] test parsers::rdp::tests::test_suspicious_rdp_legacy_protocol_only ... ok
[INFO] [stdout] test parsers::rdp::tests::test_suspicious_rdp_tls_without_nla ... ok
[INFO] [stdout] test parsers::rdp::tests::test_rdp_protocol_names_ssl_hybrid ... ok
[INFO] [stdout] test parsers::smb::tests::test_e2e_smb1_detected_suspicious ... ok
[INFO] [stdout] test parsers::smb::tests::test_e2e_smb2_signed_session_not_suspicious ... ok
[INFO] [stdout] test parsers::smb::tests::test_e2e_smb2_unsigned_create_suspicious ... ok
[INFO] [stdout] test parsers::smb::tests::test_is_smb_port_non_smb ... ok
[INFO] [stdout] test parsers::smb::tests::test_not_suspicious_normal_session ... ok
[INFO] [stdout] test parsers::smb::tests::test_not_suspicious_null_session_on_negotiate ... ok
[INFO] [stdout] test parsers::smb::tests::test_not_suspicious_signed_write ... ok
[INFO] [stdout] test parsers::smb::tests::test_not_suspicious_unsigned_read ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_bare_smb2_header ... ok
[INFO] [stdout] test parsers::smb::tests::test_is_smb_port_standard ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_garbage_returns_none ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_is_response_flag ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_nbt_wrapped_smb2 ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_partial_header_returns_some ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_signed_session_not_flagged_unsigned ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_smb1_magic_detected ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_smb1_with_nbt_wrapper ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_status_field ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_too_short_returns_none ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_unsigned_session_flagged ... ok
[INFO] [stdout] test parsers::smb::tests::test_parse_smb_tree_id_field ... ok
[INFO] [stdout] test parsers::smb::tests::test_smb2_command_name_all_known ... ok
[INFO] [stdout] test parsers::smb::tests::test_suspicious_null_session_non_negotiate ... ok
[INFO] [stdout] test parsers::smb::tests::test_suspicious_smb1_always_flagged ... ok
[INFO] [stdout] test parsers::smb::tests::test_suspicious_unsigned_create ... ok
[INFO] [stdout] test parsers::smb::tests::test_smb2_command_name_unknown ... ok
[INFO] [stdout] test parsers::smb::tests::test_suspicious_unsigned_ioctl ... ok
[INFO] [stdout] test parsers::smb::tests::test_suspicious_unsigned_write ... ok
[INFO] [stdout] test parsers::ssh::tests::test_e2e_openssh_banner_not_suspicious ... ok
[INFO] [stdout] test parsers::ssh::tests::test_e2e_paramiko_banner_suspicious ... ok
[INFO] [stdout] test parsers::ssh::tests::test_is_ssh_port_non_ssh ... ok
[INFO] [stdout] test parsers::ssh::tests::test_e2e_ssh1_banner_suspicious ... ok
[INFO] [stdout] test parsers::ssh::tests::test_is_ssh_port_standard ... ok
[INFO] [stdout] test parsers::ssh::tests::test_not_suspicious_ssh_blocklist_no_match ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_is_client_heuristic ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_lf_only_terminator ... ok
[INFO] [stdout] test parsers::ssh::tests::test_not_suspicious_ssh_no_banner_no_packet ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_libssh ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_proto_version ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_software_version ... ok
[INFO] [stdout] test parsers::ssh::tests::test_not_suspicious_ssh_normal_banner ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_ssh1_proto ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_with_comment ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_banner_no_comment ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_binary_packet_implausibly_large_rejected ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_binary_packet_newkeys ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_binary_packet_too_short ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_binary_packet_userauth ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_binary_packet_zero_length_rejected ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_detects_banner ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_detects_binary_packet ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_returns_none_on_empty ... ok
[INFO] [stdout] test parsers::ssh::tests::test_parse_ssh_returns_none_on_garbage ... ok
[INFO] [stdout] test parsers::ssh::tests::test_ssh_message_type_name_known ... ok
[INFO] [stdout] test parsers::ssh::tests::test_suspicious_ssh_blocklist_case_insensitive ... ok
[INFO] [stdout] test parsers::ssh::tests::test_ssh_message_type_name_unknown ... ok
[INFO] [stdout] test parsers::ssh::tests::test_suspicious_ssh_blocklist_partial_substring ... ok
[INFO] [stdout] test parsers::ssh::tests::test_suspicious_ssh_blocklist_match ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_closing ... ok
[INFO] [stdout] test parsers::ssh::tests::test_suspicious_ssh_proto_v1 ... ok
[INFO] [stdout] test parsers::ssh::tests::test_suspicious_ssh_empty_software_version ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_established ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_opening ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_syn_ack ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_null_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_reset ... ok
[INFO] [stdout] test parsers::tcp::tests::test_classify_phase_xmas_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_fin_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_syn_only_false_for_plain_ack ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_null_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_syn_only_false_for_syn_ack ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_syn_only_true_for_pure_syn ... ok
[INFO] [stdout] test parsers::tcp::tests::test_normal_ack_is_not_a_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_is_xmas_scan ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_basic_ports ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_fin_flag ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_header_with_mss_option ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_combined_syn_opts ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_eol_stops_parsing ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_malformed_truncated ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_mss ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_nop_padding ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_sack_permitted ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_timestamps ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_payload_empty_for_no_data ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_options_window_scale ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_payload_extracts_data ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_rst_flag ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_syn_ack_flags ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_syn_flag ... ok
[INFO] [stdout] test parsers::tcp::tests::test_parse_tcp_too_short_returns_none ... ok
[INFO] [stdout] test parsers::tcp::tests::test_service_name_for_port_known ... ok
[INFO] [stdout] test parsers::tcp::tests::test_service_name_for_port_unknown ... ok
[INFO] [stdout] test parsers::tls::tests::test_e2e_extract_and_check_blocklisted_sni ... ok
[INFO] [stdout] test parsers::tls::tests::test_e2e_extract_and_check_normal_sni ... ok
[INFO] [stdout] test parsers::tls::tests::test_is_tls_port_non_tls_ports ... ok
[INFO] [stdout] test parsers::tls::tests::test_is_tls_port_standard_ports ... ok
[INFO] [stdout] test parsers::tls::tests::test_not_suspicious_sni_empty_blocklist ... ok
[INFO] [stdout] test parsers::tls::tests::test_not_suspicious_sni_normal_hostname ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_application_data_record ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_extracts_long_sni ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_extracts_sni ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_record_version_fields ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_extracts_subdomain_sni ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_handshake_non_client_hello ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_without_sni_extension ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_non_handshake_record ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_client_hello_sni_not_first_extension ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_version_fields ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_blocklist_exact_match ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_blocklist_no_false_positive ... ok
[INFO] [stdout] test parsers::tls::tests::test_parse_tls_too_short_returns_none ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_blocklist_subdomain_match ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_empty_string ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_exactly_max_length_is_not_suspicious ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_ipv4_address ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_ipv6_address ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_content_type_name_known_types ... ok
[INFO] [stdout] test parsers::tls::tests::test_suspicious_sni_oversized_name ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_service_name_known_ports ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_version_name_from_parsed_info ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_service_name_unknown_ports ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_version_name_unknown ... ok
[INFO] [stdout] test parsers::udp::tests::test_extract_payload_empty_for_short_data ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_detector_name_in_alert ... ok
[INFO] [stdout] test parsers::udp::tests::test_extract_payload_returns_data_after_header ... ok
[INFO] [stdout] test parsers::udp::tests::test_extract_payload_empty_for_header_only ... ok
[INFO] [stdout] test parsers::tls::tests::test_tls_version_name_known_versions ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_detector_severity_is_high ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dhcp_port_client_to_server ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dhcp_port_false ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dhcp_port_server_to_client ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dns_port_dst_53 ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dns_port_false_for_other ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dns_port_mdns_5353 ... ok
[INFO] [stdout] test parsers::udp::tests::test_is_dns_port_src_53 ... ok
[INFO] [stdout] test parsers::udp::tests::test_parse_udp_basic_ports ... ok
[INFO] [stdout] test parsers::udp::tests::test_parse_udp_too_short_returns_none ... ok
[INFO] [stdout] test parsers::udp::tests::test_parse_udp_dns_port_53 ... ok
[INFO] [stdout] test parsers::udp::tests::test_parse_udp_with_payload ... ok
[INFO] [stdout] test parsers::udp::tests::test_service_name_for_port_known ... ok
[INFO] [stdout] test parsers::udp::tests::test_service_name_for_port_unknown ... ok
[INFO] [stdout] test resource::tests::test_clk_tck_is_positive ... ok
[INFO] [stdout] test resource::tests::test_monitor_new_returns_shared_snapshot ... ok
[INFO] [stdout] test resource::tests::test_disabled_monitor_runs_immediately ... ok
[INFO] [stdout] test resource::tests::test_read_cpu_ticks_returns_some ... ok
[INFO] [stdout] test resource::tests::test_snapshot_cpu_pct_conversion ... ok
[INFO] [stdout] test resource::tests::test_snapshot_cpu_pct_fractional ... ok
[INFO] [stdout] test resource::tests::test_snapshot_default_is_zero ... ok
[INFO] [stdout] test resource::tests::test_snapshot_rss_mb_120mb ... ok
[INFO] [stdout] test resource::tests::test_read_rss_kb_returns_some ... ok
[INFO] [stdout] test resource::tests::test_snapshot_rss_mb_zero ... ok
[INFO] [stdout] test resource::tests::test_rss_is_reasonable ... ok
[INFO] [stdout] test resource::tests::test_snapshot_rss_mb_conversion ... ok
[INFO] [stdout] test transport::http::tests::test_new_builds_successfully ... ok
[INFO] [stdout] test transport::http::tests::test_new_stores_config ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_empty_returns_ok_without_request ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_different_dst_port_is_different_flow ... ok
[INFO] [stdout] test resource::tests::test_cpu_ticks_increase_over_time ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_multiple_flows_tracked_independently ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_no_auth_header_when_api_key_empty ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_includes_bearer_token_when_api_key_set ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_posts_to_correct_path ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_payload_is_json_array ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_multiple_events_in_one_request ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_returns_error_on_client_error ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_returns_error_on_server_error ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_serializes_ocsf_fields ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_uses_json_content_type ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_high_jitter_pct_accepts_variable_timing ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_alert_fires_only_once_per_flow ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_below_min_packets_no_alert ... ok
[INFO] [stdout] test detectors::c2_beacon::tests::test_no_alert_after_alerted_flag ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_retries_on_failure_then_succeeds ... ok
[INFO] [stdout] test transport::http::tests::test_send_batch_exhausts_retries_and_returns_error ... ok
[INFO] [stdout] test capture::pcap_capture::tests::test_run_blocking_empty_read_file_routes_to_live has been running for over 60 seconds
[INFO] [stdout] test capture::pcap_capture::tests::test_run_blocking_none_read_file_routes_to_live has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "8989a481894f3d2a67c056528c0e38a5de6f24e1d8a0a3ba392caf0b9724d9ee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8989a481894f3d2a67c056528c0e38a5de6f24e1d8a0a3ba392caf0b9724d9ee", kill_on_drop: false }`
[INFO] [stdout] 8989a481894f3d2a67c056528c0e38a5de6f24e1d8a0a3ba392caf0b9724d9ee
