[INFO] cloning repository https://github.com/vitdevelop/kidns [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vitdevelop/kidns" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitdevelop%2Fkidns", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitdevelop%2Fkidns'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fe14be9938b01d51af80e7f81bfc187f1c11c8c3 [INFO] linting vitdevelop/kidns/fe14be9938b01d51af80e7f81bfc187f1c11c8c3 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitdevelop%2Fkidns" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vitdevelop/kidns [INFO] finished tweaking git repo https://github.com/vitdevelop/kidns [INFO] tweaked toml for git repo https://github.com/vitdevelop/kidns written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vitdevelop/kidns on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 315 packages to latest compatible versions [INFO] [stderr] Adding generic-array v0.14.7 (available: v0.14.9) [INFO] [stderr] Adding k8s-openapi v0.21.1 (available: v0.27.1) [INFO] [stderr] Adding kube v0.89.0 (available: v3.1.0) [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [INFO] [stderr] Adding rcgen v0.13.2 (available: v0.14.7) [INFO] [stderr] Adding rustls v0.22.4 (available: v0.23.37) [INFO] [stderr] Adding rustls-webpki v0.102.8 (available: v0.103.9) [INFO] [stderr] Adding tokio-rustls v0.25.0 (available: v0.26.4) [INFO] [stderr] Adding webpki-roots v0.26.11 (available: v1.0.6) [INFO] [stderr] Adding x509-parser v0.16.0 (available: v0.18.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded oid-registry v0.7.1 [INFO] [stderr] Downloaded asn1-rs-derive v0.5.1 [INFO] [stderr] Downloaded asn1-rs-impl v0.2.0 [INFO] [stderr] Downloaded rusticata-macros v4.1.0 [INFO] [stderr] Downloaded der-parser v9.0.0 [INFO] [stderr] Downloaded doc-comment v0.3.4 [INFO] [stderr] Downloaded predicates-core v1.0.10 [INFO] [stderr] Downloaded yasna v0.5.2 [INFO] [stderr] Downloaded globwalk v0.9.1 [INFO] [stderr] Downloaded kube v0.89.0 [INFO] [stderr] Downloaded difflib v0.4.0 [INFO] [stderr] Downloaded x509-parser v0.16.0 [INFO] [stderr] Downloaded predicates v3.1.4 [INFO] [stderr] Downloaded assert_fs v1.1.3 [INFO] [stderr] Downloaded ignore v0.4.25 [INFO] [stderr] Downloaded jiff-static v0.2.23 [INFO] [stderr] Downloaded kube-client v0.89.0 [INFO] [stderr] Downloaded tower-http v0.5.2 [INFO] [stderr] Downloaded asn1-rs v0.6.2 [INFO] [stderr] Downloaded portable-atomic-util v0.2.6 [INFO] [stderr] Downloaded portable-atomic v1.13.1 [INFO] [stderr] Downloaded kube-core v0.89.0 [INFO] [stderr] Downloaded kube-runtime v0.89.0 [INFO] [stderr] Downloaded jsonpath-rust v0.5.1 [INFO] [stderr] Downloaded json-patch v1.4.0 [INFO] [stderr] Downloaded pem v3.0.6 [INFO] [stderr] Downloaded rcgen v0.13.2 [INFO] [stderr] Downloaded env_logger v0.11.9 [INFO] [stderr] Downloaded kube-derive v0.89.0 [INFO] [stderr] Downloaded rustls-native-certs v0.7.3 [INFO] [stderr] Downloaded hyper-rustls v0.26.0 [INFO] [stderr] Downloaded hyper-timeout v0.5.2 [INFO] [stderr] Downloaded ordered-float v2.10.1 [INFO] [stderr] Downloaded termtree v0.5.1 [INFO] [stderr] Downloaded predicates-tree v1.0.13 [INFO] [stderr] Downloaded env_filter v1.0.0 [INFO] [stderr] Downloaded serde-value v0.7.0 [INFO] [stderr] Downloaded jiff v0.2.23 [INFO] [stderr] Downloaded k8s-openapi v0.21.1 [INFO] [stderr] Downloaded openssl-src v300.5.5+3.5.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f3a85893f7b8dc2bceafe35e9fba9e58b32e7266fdde9512574961f65e76ba94 [INFO] running `Command { std: "docker" "start" "-a" "f3a85893f7b8dc2bceafe35e9fba9e58b32e7266fdde9512574961f65e76ba94", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f3a85893f7b8dc2bceafe35e9fba9e58b32e7266fdde9512574961f65e76ba94", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f3a85893f7b8dc2bceafe35e9fba9e58b32e7266fdde9512574961f65e76ba94", kill_on_drop: false }` [INFO] [stdout] f3a85893f7b8dc2bceafe35e9fba9e58b32e7266fdde9512574961f65e76ba94 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 58a3f0675a7460d246660d84373e5058f4ac88ef16c77c38e8088e3aad31c43d [INFO] running `Command { std: "docker" "start" "-a" "58a3f0675a7460d246660d84373e5058f4ac88ef16c77c38e8088e3aad31c43d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking const-oid v0.9.6 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling k8s-openapi v0.21.1 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling openssl-src v300.5.5+3.5.5 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking dyn-clone v1.0.20 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Checking pem v3.0.6 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking rustls-native-certs v0.7.3 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Compiling oid-registry v0.7.1 [INFO] [stderr] Checking rusticata-macros v4.1.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking socket2 v0.6.3 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking anstyle v1.0.14 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking bstr v1.12.1 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Checking home v0.5.12 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking crossbeam-deque v0.8.6 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Checking predicates-core v1.0.10 [INFO] [stderr] Checking colorchoice v1.0.5 [INFO] [stderr] Compiling doc-comment v0.3.4 [INFO] [stderr] Checking linux-raw-sys v0.12.1 [INFO] [stderr] Checking pkcs1 v0.7.5 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking webpki-roots v1.0.6 [INFO] [stderr] Checking jiff v0.2.23 [INFO] [stderr] Checking termtree v0.5.1 [INFO] [stderr] Checking difflib v0.4.0 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking predicates v3.1.4 [INFO] [stderr] Checking predicates-tree v1.0.13 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking globset v0.4.18 [INFO] [stderr] Checking ignore v0.4.25 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking yasna v0.5.2 [INFO] [stderr] Checking globwalk v0.9.1 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking tempfile v3.27.0 [INFO] [stderr] Checking backoff v0.4.0 [INFO] [stderr] Checking assert_fs v1.1.3 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Checking rsa v0.9.10 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling asn1-rs-impl v0.2.0 [INFO] [stderr] Compiling asn1-rs-derive v0.5.1 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Checking pin-project v1.1.11 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking asn1-rs v0.6.2 [INFO] [stderr] Checking jsonpath-rust v0.5.1 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking tower-http v0.5.2 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling kube-derive v0.89.0 [INFO] [stderr] Checking der-parser v9.0.0 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking x509-parser v0.16.0 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking json-patch v1.4.0 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking rcgen v0.13.2 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking tokio-rustls v0.25.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking hyper-rustls v0.26.0 [INFO] [stderr] Checking hyper-timeout v0.5.2 [INFO] [stderr] Checking kube-core v0.89.0 [INFO] [stderr] Checking kube-client v0.89.0 [INFO] [stderr] Checking kube-runtime v0.89.0 [INFO] [stderr] Checking kube v0.89.0 [INFO] [stderr] Checking kidns v0.5.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/config/logs.rs:5:29 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn init_logs(log_level: &String) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 5 ~ pub fn init_logs(log_level: &str) { [INFO] [stdout] 6 | let mut builder = Builder::new(); [INFO] [stdout] 7 | builder.filter_level( [INFO] [stdout] 8 ~ Level::from_str(log_level) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/config/properties.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | return Ok(config); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 115 - return Ok(config); [INFO] [stdout] 115 + Ok(config) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NOERROR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | NOERROR = 0, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Noerror` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FORMERR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FORMERR = 1, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Formerr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SERVFAIL` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | SERVFAIL = 2, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Servfail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NXDOMAIN` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | NXDOMAIN = 3, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Nxdomain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NOTIMP` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | NOTIMP = 4, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Notimp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `REFUSED` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | REFUSED = 5, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Refused` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | / return match num { [INFO] [stdout] 16 | | 1 => ResultCode::FORMERR, [INFO] [stdout] 17 | | 2 => ResultCode::SERVFAIL, [INFO] [stdout] 18 | | 3 => ResultCode::NXDOMAIN, [INFO] [stdout] ... | [INFO] [stdout] 21 | | 0 | _ => ResultCode::NOERROR, [INFO] [stdout] 22 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 ~ match num { [INFO] [stdout] 16 + 1 => ResultCode::FORMERR, [INFO] [stdout] 17 + 2 => ResultCode::SERVFAIL, [INFO] [stdout] 18 + 3 => ResultCode::NXDOMAIN, [INFO] [stdout] 19 + 4 => ResultCode::NOTIMP, [INFO] [stdout] 20 + 5 => ResultCode::REFUSED, [INFO] [stdout] 21 + 0 | _ => ResultCode::NOERROR, [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/dns/header.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | 0 | _ => ResultCode::NOERROR, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UNKNOWN` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | UNKNOWN(u16), [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Unknown` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNAME` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | CNAME, // 5 [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cname` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOA` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | SOA, // 6 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Soa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PTR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | PTR, // 12 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ptr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TXT` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | TXT, // 16 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Txt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AAAA` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | AAAA, // 28 [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aaaa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SRV` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | SRV, // 33 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Srv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OPT` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | OPT, // 41 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Opt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/dns/header.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn to_num(&self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return match *self { [INFO] [stdout] 44 | | QueryType::UNKNOWN(x) => x, [INFO] [stdout] 45 | | QueryType::A => 1, [INFO] [stdout] 46 | | QueryType::NS => 2, [INFO] [stdout] ... | [INFO] [stdout] 54 | | QueryType::OPT => 41, [INFO] [stdout] 55 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ match *self { [INFO] [stdout] 44 + QueryType::UNKNOWN(x) => x, [INFO] [stdout] 45 + QueryType::A => 1, [INFO] [stdout] 46 + QueryType::NS => 2, [INFO] [stdout] 47 + QueryType::CNAME => 5, [INFO] [stdout] 48 + QueryType::SOA => 6, [INFO] [stdout] 49 + QueryType::PTR => 12, [INFO] [stdout] 50 + QueryType::MX => 15, [INFO] [stdout] 51 + QueryType::TXT => 16, [INFO] [stdout] 52 + QueryType::AAAA => 28, [INFO] [stdout] 53 + QueryType::SRV => 33, [INFO] [stdout] 54 + QueryType::OPT => 41, [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / return match num { [INFO] [stdout] 60 | | 1 => QueryType::A, [INFO] [stdout] 61 | | 2 => QueryType::NS, [INFO] [stdout] 62 | | 5 => QueryType::CNAME, [INFO] [stdout] ... | [INFO] [stdout] 70 | | _ => QueryType::UNKNOWN(num), [INFO] [stdout] 71 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 ~ match num { [INFO] [stdout] 60 + 1 => QueryType::A, [INFO] [stdout] 61 + 2 => QueryType::NS, [INFO] [stdout] 62 + 5 => QueryType::CNAME, [INFO] [stdout] 63 + 6 => QueryType::SOA, [INFO] [stdout] 64 + 12 => QueryType::PTR, [INFO] [stdout] 65 + 15 => QueryType::MX, [INFO] [stdout] 66 + 16 => QueryType::TXT, [INFO] [stdout] 67 + 28 => QueryType::AAAA, [INFO] [stdout] 68 + 33 => QueryType::SRV, [INFO] [stdout] 69 + 41 => QueryType::OPT, [INFO] [stdout] 70 + _ => QueryType::UNKNOWN(num), [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / return DnsHeader { [INFO] [stdout] 100 | | id: 0, [INFO] [stdout] 101 | | [INFO] [stdout] 102 | | recursion_desired: false, [INFO] [stdout] ... | [INFO] [stdout] 117 | | resource_entries: 0, [INFO] [stdout] 118 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 ~ DnsHeader { [INFO] [stdout] 100 + id: 0, [INFO] [stdout] 101 + [INFO] [stdout] 102 + recursion_desired: false, [INFO] [stdout] 103 + truncated_message: false, [INFO] [stdout] 104 + authoritative_answer: false, [INFO] [stdout] 105 + op_code: 0, [INFO] [stdout] 106 + response: false, [INFO] [stdout] 107 + [INFO] [stdout] 108 + rescode: ResultCode::NOERROR, [INFO] [stdout] 109 + checking_disabled: false, [INFO] [stdout] 110 + authed_data: false, [INFO] [stdout] 111 + z: false, [INFO] [stdout] 112 + recursion_available: false, [INFO] [stdout] 113 + [INFO] [stdout] 114 + questions: 0, [INFO] [stdout] 115 + answers: 0, [INFO] [stdout] 116 + authoritative_entries: 0, [INFO] [stdout] 117 + resource_entries: 0, [INFO] [stdout] 118 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return size; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - return size; [INFO] [stdout] 178 + size [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | / return DnsPacket { [INFO] [stdout] 19 | | header: DnsHeader::new(), [INFO] [stdout] 20 | | questions: Vec::new(), [INFO] [stdout] 21 | | answers: Vec::new(), [INFO] [stdout] 22 | | authorities: Vec::new(), [INFO] [stdout] 23 | | resources: Vec::new(), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 18 ~ DnsPacket { [INFO] [stdout] 19 + header: DnsHeader::new(), [INFO] [stdout] 20 + questions: Vec::new(), [INFO] [stdout] 21 + answers: Vec::new(), [INFO] [stdout] 22 + authorities: Vec::new(), [INFO] [stdout] 23 + resources: Vec::new(), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 - return Ok(result); [INFO] [stdout] 52 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 - return Ok(()); [INFO] [stdout] 124 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/dns/packet.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | for ref question in &self.questions { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 - for ref question in &self.questions { [INFO] [stdout] 65 + for question in &self.questions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UNKNOWN` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | UNKNOWN { [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Unknown` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNAME` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | CNAME { [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cname` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOA` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | SOA { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Soa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PTR` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | PTR { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ptr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TXT` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | TXT { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Txt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AAAA` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | AAAA { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aaaa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SRV` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | SRV { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Srv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OPT` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | OPT { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Opt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/config/logs.rs:5:29 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn init_logs(log_level: &String) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 5 ~ pub fn init_logs(log_level: &str) { [INFO] [stdout] 6 | let mut builder = Builder::new(); [INFO] [stdout] 7 | builder.filter_level( [INFO] [stdout] 8 ~ Level::from_str(log_level) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/record.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | / return match qtype { [INFO] [stdout] 99 | | QueryType::UNKNOWN(_) => { [INFO] [stdout] 100 | | buffer.step(data_len as usize); [INFO] [stdout] ... | [INFO] [stdout] 243 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 98 ~ match qtype { [INFO] [stdout] 99 + QueryType::UNKNOWN(_) => { [INFO] [stdout] 100 + buffer.step(data_len as usize); [INFO] [stdout] 101 + [INFO] [stdout] 102 + Ok(DnsRecord::UNKNOWN { [INFO] [stdout] 103 + domain, [INFO] [stdout] 104 + qtype: qtype_num, [INFO] [stdout] 105 + data_len, [INFO] [stdout] 106 + ttl, [INFO] [stdout] 107 + }) [INFO] [stdout] 108 + } [INFO] [stdout] 109 + QueryType::A => { [INFO] [stdout] 110 + let raw_addr = buffer.read_u32(); [INFO] [stdout] 111 + let addr = Ipv4Addr::new( [INFO] [stdout] 112 + ((raw_addr >> 24) & 0xFF) as u8, [INFO] [stdout] 113 + ((raw_addr >> 16) & 0xFF) as u8, [INFO] [stdout] 114 + ((raw_addr >> 8) & 0xFF) as u8, [INFO] [stdout] 115 + ((raw_addr) & 0xFF) as u8, [INFO] [stdout] 116 + ); [INFO] [stdout] 117 + Ok(DnsRecord::A { domain, addr, ttl }) [INFO] [stdout] 118 + } [INFO] [stdout] 119 + QueryType::NS => { [INFO] [stdout] 120 + let mut ns = String::new(); [INFO] [stdout] 121 + buffer.read_qname(&mut ns)?; [INFO] [stdout] 122 + [INFO] [stdout] 123 + Ok(DnsRecord::NS { [INFO] [stdout] 124 + domain, [INFO] [stdout] 125 + host: ns, [INFO] [stdout] 126 + ttl, [INFO] [stdout] 127 + }) [INFO] [stdout] 128 + } [INFO] [stdout] 129 + QueryType::PTR | QueryType::CNAME => { [INFO] [stdout] 130 + let mut cname = String::new(); [INFO] [stdout] 131 + buffer.read_qname(&mut cname)?; [INFO] [stdout] 132 + [INFO] [stdout] 133 + Ok(DnsRecord::CNAME { [INFO] [stdout] 134 + domain, [INFO] [stdout] 135 + host: cname, [INFO] [stdout] 136 + ttl, [INFO] [stdout] 137 + }) [INFO] [stdout] 138 + } [INFO] [stdout] 139 + QueryType::MX => { [INFO] [stdout] 140 + let priority = buffer.read_u16(); [INFO] [stdout] 141 + let mut mx = String::new(); [INFO] [stdout] 142 + buffer.read_qname(&mut mx)?; [INFO] [stdout] 143 + [INFO] [stdout] 144 + Ok(DnsRecord::MX { [INFO] [stdout] 145 + domain, [INFO] [stdout] 146 + priority, [INFO] [stdout] 147 + host: mx, [INFO] [stdout] 148 + ttl, [INFO] [stdout] 149 + }) [INFO] [stdout] 150 + } [INFO] [stdout] 151 + QueryType::AAAA => { [INFO] [stdout] 152 + let raw_addr1 = buffer.read_u32(); [INFO] [stdout] 153 + let raw_addr2 = buffer.read_u32(); [INFO] [stdout] 154 + let raw_addr3 = buffer.read_u32(); [INFO] [stdout] 155 + let raw_addr4 = buffer.read_u32(); [INFO] [stdout] 156 + [INFO] [stdout] 157 + let addr = Ipv6Addr::new( [INFO] [stdout] 158 + ((raw_addr1 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 159 + (raw_addr1 & 0xFFFF) as u16, [INFO] [stdout] 160 + ((raw_addr2 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 161 + (raw_addr2 & 0xFFFF) as u16, [INFO] [stdout] 162 + ((raw_addr3 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 163 + (raw_addr3 & 0xFFFF) as u16, [INFO] [stdout] 164 + ((raw_addr4 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 165 + (raw_addr4 & 0xFFFF) as u16, [INFO] [stdout] 166 + ); [INFO] [stdout] 167 + [INFO] [stdout] 168 + Ok(DnsRecord::AAAA { domain, addr, ttl }) [INFO] [stdout] 169 + } [INFO] [stdout] 170 + QueryType::SOA => { [INFO] [stdout] 171 + let mut m_name = String::new(); [INFO] [stdout] 172 + buffer.read_qname(&mut m_name)?; [INFO] [stdout] 173 + [INFO] [stdout] 174 + let mut r_name = String::new(); [INFO] [stdout] 175 + buffer.read_qname(&mut r_name)?; [INFO] [stdout] 176 + [INFO] [stdout] 177 + let serial = buffer.read_u32(); [INFO] [stdout] 178 + let refresh = buffer.read_u32(); [INFO] [stdout] 179 + let retry = buffer.read_u32(); [INFO] [stdout] 180 + let expire = buffer.read_u32(); [INFO] [stdout] 181 + let minimum = buffer.read_u32(); [INFO] [stdout] 182 + [INFO] [stdout] 183 + Ok(DnsRecord::SOA { [INFO] [stdout] 184 + domain, [INFO] [stdout] 185 + m_name, [INFO] [stdout] 186 + r_name, [INFO] [stdout] 187 + serial, [INFO] [stdout] 188 + refresh, [INFO] [stdout] 189 + retry, [INFO] [stdout] 190 + expire, [INFO] [stdout] 191 + minimum, [INFO] [stdout] 192 + ttl, [INFO] [stdout] 193 + }) [INFO] [stdout] 194 + } [INFO] [stdout] 195 + QueryType::TXT => { [INFO] [stdout] 196 + let mut txt = String::new(); [INFO] [stdout] 197 + [INFO] [stdout] 198 + let cur_pos = buffer.pos(); [INFO] [stdout] 199 + txt.push_str(&String::from_utf8_lossy( [INFO] [stdout] 200 + buffer.get_range(cur_pos, data_len as usize), [INFO] [stdout] 201 + )); [INFO] [stdout] 202 + [INFO] [stdout] 203 + buffer.step(data_len as usize); [INFO] [stdout] 204 + [INFO] [stdout] 205 + Ok(DnsRecord::TXT { [INFO] [stdout] 206 + domain, [INFO] [stdout] 207 + data: txt, [INFO] [stdout] 208 + ttl, [INFO] [stdout] 209 + }) [INFO] [stdout] 210 + } [INFO] [stdout] 211 + QueryType::SRV => { [INFO] [stdout] 212 + let priority = buffer.read_u16(); [INFO] [stdout] 213 + let weight = buffer.read_u16(); [INFO] [stdout] 214 + let port = buffer.read_u16(); [INFO] [stdout] 215 + [INFO] [stdout] 216 + let mut srv = String::new(); [INFO] [stdout] 217 + buffer.read_qname(&mut srv)?; [INFO] [stdout] 218 + [INFO] [stdout] 219 + Ok(DnsRecord::SRV { [INFO] [stdout] 220 + domain, [INFO] [stdout] 221 + priority, [INFO] [stdout] 222 + weight, [INFO] [stdout] 223 + port, [INFO] [stdout] 224 + host: srv, [INFO] [stdout] 225 + ttl, [INFO] [stdout] 226 + }) [INFO] [stdout] 227 + } [INFO] [stdout] 228 + QueryType::OPT => { [INFO] [stdout] 229 + let mut data = String::new(); [INFO] [stdout] 230 + [INFO] [stdout] 231 + let cur_pos = buffer.pos(); [INFO] [stdout] 232 + data.push_str(&String::from_utf8_lossy( [INFO] [stdout] 233 + buffer.get_range(cur_pos, data_len as usize), [INFO] [stdout] 234 + )); [INFO] [stdout] 235 + buffer.step(data_len as usize); [INFO] [stdout] 236 + [INFO] [stdout] 237 + Ok(DnsRecord::OPT { [INFO] [stdout] 238 + packet_len: class, [INFO] [stdout] 239 + flags: ttl, [INFO] [stdout] 240 + data, [INFO] [stdout] 241 + }) [INFO] [stdout] 242 + } [INFO] [stdout] 243 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/record.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | return Ok(buffer.pos() - start_pos); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 418 - return Ok(buffer.pos() - start_pos); [INFO] [stdout] 418 + Ok(buffer.pos() - start_pos) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return DnsQuestion { [INFO] [stdout] 14 | | name, [INFO] [stdout] 15 | | qtype, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ DnsQuestion { [INFO] [stdout] 14 + name, [INFO] [stdout] 15 + qtype, [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return Ok(()); [INFO] [stdout] 24 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return Ok(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return Ok(size); [INFO] [stdout] 37 + Ok(size) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / return BytePacketBuffer { [INFO] [stdout] 15 | | buf: [0; PACKET_SIZE], [INFO] [stdout] 16 | | pos: 0, [INFO] [stdout] 17 | | max_size: PACKET_SIZE, [INFO] [stdout] 18 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ BytePacketBuffer { [INFO] [stdout] 15 + buf: [0; PACKET_SIZE], [INFO] [stdout] 16 + pos: 0, [INFO] [stdout] 17 + max_size: PACKET_SIZE, [INFO] [stdout] 18 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return self.pos; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return self.pos; [INFO] [stdout] 22 + self.pos [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return response; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return response; [INFO] [stdout] 37 + response [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return self.buf[pos]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return self.buf[pos]; [INFO] [stdout] 41 + self.buf[pos] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return &self.buf[start..start + len]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return &self.buf[start..start + len]; [INFO] [stdout] 45 + &self.buf[start..start + len] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return ((self.read() as u16) << 8) | (self.read() as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return ((self.read() as u16) << 8) | (self.read() as u16); [INFO] [stdout] 49 + ((self.read() as u16) << 8) | (self.read() as u16) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return ((self.read() as u32) << 24) [INFO] [stdout] 54 | | | ((self.read() as u32) << 16) [INFO] [stdout] 55 | | | ((self.read() as u32) << 8) [INFO] [stdout] 56 | | | (self.read() as u32); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 ~ ((self.read() as u32) << 24) [INFO] [stdout] 54 + | ((self.read() as u32) << 16) [INFO] [stdout] 55 + | ((self.read() as u32) << 8) [INFO] [stdout] 56 ~ | (self.read() as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return Ok(()); [INFO] [stdout] 109 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/dns/buffer.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | return Err(anyhow!("Limit of {} jumps exceeded", max_jumps).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `anyhow!("Limit of {} jumps exceeded", max_jumps)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | return Ok(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return Ok(size); [INFO] [stdout] 157 + Ok(size) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/handler.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Ok(()); [INFO] [stdout] 57 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/handler.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return DnsPacket::from_buffer(&mut res_buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return DnsPacket::from_buffer(&mut res_buffer); [INFO] [stdout] 78 + DnsPacket::from_buffer(&mut res_buffer) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/dns/server/dns.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / match dns_server.handle_query(req_buffer, &dns_socket, src).await { [INFO] [stdout] 41 | | Ok(_) => {} [INFO] [stdout] 42 | | // Err(e) => error!("An error occurred: {}", e), [INFO] [stdout] 43 | | Err(_) => {} //suppress temporary errors [INFO] [stdout] 44 | | } [INFO] [stdout] | |_________________^ help: try: `if let Ok(_) = dns_server.handle_query(req_buffer, &dns_socket, src).await {}` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return Ok(Cache { [INFO] [stdout] 54 | | domains: Arc::new(RwLock::new(cache)), [INFO] [stdout] 55 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 ~ Ok(Cache { [INFO] [stdout] 54 + domains: Arc::new(RwLock::new(cache)), [INFO] [stdout] 55 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dns/server/cache.rs:48:55 [INFO] [stdout] | [INFO] [stdout] 48 | let file_cache = load_local_dns_cache(&cache_type).await?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `cache_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | return Some(record); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - return Some(record); [INFO] [stdout] 68 + Some(record) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / return Ok(urls [INFO] [stdout] 81 | | .iter() [INFO] [stdout] 82 | | .map(|host| { [INFO] [stdout] 83 | | return ( [INFO] [stdout] ... | [INFO] [stdout] 95 | | .inspect(|host| info!("Ingress: {}", host.0)) [INFO] [stdout] 96 | | .collect()); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 80 ~ Ok(urls [INFO] [stdout] 81 + .iter() [INFO] [stdout] 82 + .map(|host| { [INFO] [stdout] 83 + return ( [INFO] [stdout] 84 + host.to_string(), [INFO] [stdout] 85 + CacheRecord { [INFO] [stdout] 86 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 87 + records: vec![DnsRecord::A { [INFO] [stdout] 88 + domain: host.to_owned(), [INFO] [stdout] 89 + addr: Ipv4Addr::new(127, 0, 0, 1), [INFO] [stdout] 90 + ttl: 300u32, [INFO] [stdout] 91 + }], [INFO] [stdout] 92 + }, [INFO] [stdout] 93 + ); [INFO] [stdout] 94 + }) [INFO] [stdout] 95 + .inspect(|host| info!("Ingress: {}", host.0)) [INFO] [stdout] 96 ~ .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | / return ( [INFO] [stdout] 84 | | host.to_string(), [INFO] [stdout] 85 | | CacheRecord { [INFO] [stdout] 86 | | expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] ... | [INFO] [stdout] 92 | | }, [INFO] [stdout] 93 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ ( [INFO] [stdout] 84 + host.to_string(), [INFO] [stdout] 85 + CacheRecord { [INFO] [stdout] 86 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 87 + records: vec![DnsRecord::A { [INFO] [stdout] 88 + domain: host.to_owned(), [INFO] [stdout] 89 + addr: Ipv4Addr::new(127, 0, 0, 1), [INFO] [stdout] 90 + ttl: 300u32, [INFO] [stdout] 91 + }], [INFO] [stdout] 92 + }, [INFO] [stdout] 93 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return Ok(lines); [INFO] [stdout] 126 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | / return ( [INFO] [stdout] 117 | | url.to_string(), [INFO] [stdout] 118 | | CacheRecord { [INFO] [stdout] 119 | | expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 120 | | records: vec![dns_record], [INFO] [stdout] 121 | | }, [INFO] [stdout] 122 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 116 ~ ( [INFO] [stdout] 117 + url.to_string(), [INFO] [stdout] 118 + CacheRecord { [INFO] [stdout] 119 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 120 + records: vec![dns_record], [INFO] [stdout] 121 + }, [INFO] [stdout] 122 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ipv4Addr` which implements the `Copy` trait [INFO] [stdout] --> src/dns/server/cache.rs:107:27 [INFO] [stdout] | [INFO] [stdout] 107 | addr: ip4.ip().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*ip4.ip()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ipv6Addr` which implements the `Copy` trait [INFO] [stdout] --> src/dns/server/cache.rs:112:27 [INFO] [stdout] | [INFO] [stdout] 112 | addr: ip6.ip().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*ip6.ip()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return Ok(K8sClient { [INFO] [stdout] 39 | | pod_namespace: props.pod.namespace.to_string(), [INFO] [stdout] 40 | | pod_label: props.pod.label.to_string(), [INFO] [stdout] 41 | | pod_http_port: props.pod.port.http, [INFO] [stdout] ... | [INFO] [stdout] 44 | | client: Some(client), [INFO] [stdout] 45 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 ~ Ok(K8sClient { [INFO] [stdout] 39 + pod_namespace: props.pod.namespace.to_string(), [INFO] [stdout] 40 + pod_label: props.pod.label.to_string(), [INFO] [stdout] 41 + pod_http_port: props.pod.port.http, [INFO] [stdout] 42 + pod_https_port: props.pod.port.https, [INFO] [stdout] 43 + ingress_namespace: props.ingress_namespace.to_string(), [INFO] [stdout] 44 + client: Some(client), [INFO] [stdout] 45 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return Ok(Api::namespaced(client, &self.pod_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return Ok(Api::namespaced(client, &self.pod_namespace)); [INFO] [stdout] 53 + Ok(Api::namespaced(client, &self.pod_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] 66 + Ok(Api::namespaced(client, &self.ingress_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/config/properties.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 115 | return Ok(config); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 115 - return Ok(config); [INFO] [stdout] 115 + Ok(config) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NOERROR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | NOERROR = 0, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Noerror` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FORMERR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | FORMERR = 1, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Formerr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SERVFAIL` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | SERVFAIL = 2, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Servfail` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NXDOMAIN` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | NXDOMAIN = 3, [INFO] [stdout] | ^^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Nxdomain` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NOTIMP` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | NOTIMP = 4, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Notimp` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `REFUSED` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | REFUSED = 5, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Refused` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | / return match num { [INFO] [stdout] 16 | | 1 => ResultCode::FORMERR, [INFO] [stdout] 17 | | 2 => ResultCode::SERVFAIL, [INFO] [stdout] 18 | | 3 => ResultCode::NXDOMAIN, [INFO] [stdout] ... | [INFO] [stdout] 21 | | 0 | _ => ResultCode::NOERROR, [INFO] [stdout] 22 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 ~ match num { [INFO] [stdout] 16 + 1 => ResultCode::FORMERR, [INFO] [stdout] 17 + 2 => ResultCode::SERVFAIL, [INFO] [stdout] 18 + 3 => ResultCode::NXDOMAIN, [INFO] [stdout] 19 + 4 => ResultCode::NOTIMP, [INFO] [stdout] 20 + 5 => ResultCode::REFUSED, [INFO] [stdout] 21 + 0 | _ => ResultCode::NOERROR, [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/dns/header.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | 0 | _ => ResultCode::NOERROR, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UNKNOWN` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | UNKNOWN(u16), [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Unknown` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNAME` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | CNAME, // 5 [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cname` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOA` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | SOA, // 6 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Soa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PTR` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | PTR, // 12 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ptr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TXT` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | TXT, // 16 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Txt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/k8s/client.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | .filter(|rule| rule.host.is_some()) [INFO] [stdout] | ______________^ [INFO] [stdout] 80 | | .map(|rule| rule.host.unwrap()) [INFO] [stdout] | |___________________________________________^ help: try: `filter_map(|rule| rule.host)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] = note: `#[warn(clippy::manual_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AAAA` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | AAAA, // 28 [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aaaa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SRV` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | SRV, // 33 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Srv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OPT` contains a capitalized acronym [INFO] [stdout] --> src/dns/header.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | OPT, // 41 [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Opt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] 89 + Ok(Api::namespaced(client, &self.ingress_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods with the following characteristics: (`to_*` and `self` type is `Copy`) usually take `self` by value [INFO] [stdout] --> src/dns/header.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn to_num(&self) -> u16 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | / return match *self { [INFO] [stdout] 44 | | QueryType::UNKNOWN(x) => x, [INFO] [stdout] 45 | | QueryType::A => 1, [INFO] [stdout] 46 | | QueryType::NS => 2, [INFO] [stdout] ... | [INFO] [stdout] 54 | | QueryType::OPT => 41, [INFO] [stdout] 55 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 ~ match *self { [INFO] [stdout] 44 + QueryType::UNKNOWN(x) => x, [INFO] [stdout] 45 + QueryType::A => 1, [INFO] [stdout] 46 + QueryType::NS => 2, [INFO] [stdout] 47 + QueryType::CNAME => 5, [INFO] [stdout] 48 + QueryType::SOA => 6, [INFO] [stdout] 49 + QueryType::PTR => 12, [INFO] [stdout] 50 + QueryType::MX => 15, [INFO] [stdout] 51 + QueryType::TXT => 16, [INFO] [stdout] 52 + QueryType::AAAA => 28, [INFO] [stdout] 53 + QueryType::SRV => 33, [INFO] [stdout] 54 + QueryType::OPT => 41, [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | / return match num { [INFO] [stdout] 60 | | 1 => QueryType::A, [INFO] [stdout] 61 | | 2 => QueryType::NS, [INFO] [stdout] 62 | | 5 => QueryType::CNAME, [INFO] [stdout] ... | [INFO] [stdout] 70 | | _ => QueryType::UNKNOWN(num), [INFO] [stdout] 71 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 ~ match num { [INFO] [stdout] 60 + 1 => QueryType::A, [INFO] [stdout] 61 + 2 => QueryType::NS, [INFO] [stdout] 62 + 5 => QueryType::CNAME, [INFO] [stdout] 63 + 6 => QueryType::SOA, [INFO] [stdout] 64 + 12 => QueryType::PTR, [INFO] [stdout] 65 + 15 => QueryType::MX, [INFO] [stdout] 66 + 16 => QueryType::TXT, [INFO] [stdout] 67 + 28 => QueryType::AAAA, [INFO] [stdout] 68 + 33 => QueryType::SRV, [INFO] [stdout] 69 + 41 => QueryType::OPT, [INFO] [stdout] 70 + _ => QueryType::UNKNOWN(num), [INFO] [stdout] 71 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/k8s/client.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | .flat_map(|tls| tls) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter` for `Some` followed by `unwrap` [INFO] [stdout] --> src/k8s/client.rs:102:14 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|tls| tls.is_some()) [INFO] [stdout] | ______________^ [INFO] [stdout] 103 | | .map(|tls| tls.unwrap()) [INFO] [stdout] | |____________________________________^ help: consider using `flatten` instead: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_filter_map [INFO] [stdout] = note: `#[warn(clippy::option_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | / return DnsHeader { [INFO] [stdout] 100 | | id: 0, [INFO] [stdout] 101 | | [INFO] [stdout] 102 | | recursion_desired: false, [INFO] [stdout] ... | [INFO] [stdout] 117 | | resource_entries: 0, [INFO] [stdout] 118 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 99 ~ DnsHeader { [INFO] [stdout] 100 + id: 0, [INFO] [stdout] 101 + [INFO] [stdout] 102 + recursion_desired: false, [INFO] [stdout] 103 + truncated_message: false, [INFO] [stdout] 104 + authoritative_answer: false, [INFO] [stdout] 105 + op_code: 0, [INFO] [stdout] 106 + response: false, [INFO] [stdout] 107 + [INFO] [stdout] 108 + rescode: ResultCode::NOERROR, [INFO] [stdout] 109 + checking_disabled: false, [INFO] [stdout] 110 + authed_data: false, [INFO] [stdout] 111 + z: false, [INFO] [stdout] 112 + recursion_available: false, [INFO] [stdout] 113 + [INFO] [stdout] 114 + questions: 0, [INFO] [stdout] 115 + answers: 0, [INFO] [stdout] 116 + authoritative_entries: 0, [INFO] [stdout] 117 + resource_entries: 0, [INFO] [stdout] 118 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/k8s/client.rs:107:23 [INFO] [stdout] | [INFO] [stdout] 107 | match tls [INFO] [stdout] | _______________________^ [INFO] [stdout] 108 | | .hosts [INFO] [stdout] 109 | | .unwrap() [INFO] [stdout] 110 | | .iter() [INFO] [stdout] 111 | | .filter(|host| *host == server_name) [INFO] [stdout] 112 | | .next() [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 107 ~ match tls [INFO] [stdout] 108 + .hosts [INFO] [stdout] 109 + .unwrap() [INFO] [stdout] 110 + .iter().find(|host| *host == server_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/header.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return size; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - return size; [INFO] [stdout] 178 + size [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | / return DnsPacket { [INFO] [stdout] 19 | | header: DnsHeader::new(), [INFO] [stdout] 20 | | questions: Vec::new(), [INFO] [stdout] 21 | | answers: Vec::new(), [INFO] [stdout] 22 | | authorities: Vec::new(), [INFO] [stdout] 23 | | resources: Vec::new(), [INFO] [stdout] 24 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 18 ~ DnsPacket { [INFO] [stdout] 19 + header: DnsHeader::new(), [INFO] [stdout] 20 + questions: Vec::new(), [INFO] [stdout] 21 + answers: Vec::new(), [INFO] [stdout] 22 + authorities: Vec::new(), [INFO] [stdout] 23 + resources: Vec::new(), [INFO] [stdout] 24 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | return Ok(result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 52 - return Ok(result); [INFO] [stdout] 52 + Ok(result) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/proxy/server/proxy.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | / return Ok(Proxy { [INFO] [stdout] 72 | | host: proxy_props.host.to_string(), [INFO] [stdout] 73 | | http_port: proxy_props.port.http, [INFO] [stdout] 74 | | https_port: proxy_props.port.https, [INFO] [stdout] ... | [INFO] [stdout] 79 | | root_cert: ca_certificate, [INFO] [stdout] 80 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 ~ Ok(Proxy { [INFO] [stdout] 72 + host: proxy_props.host.to_string(), [INFO] [stdout] 73 + http_port: proxy_props.port.http, [INFO] [stdout] 74 + https_port: proxy_props.port.https, [INFO] [stdout] 75 + k8s_clients, [INFO] [stdout] 76 + ingress_clients, [INFO] [stdout] 77 + local_clients, [INFO] [stdout] 78 + destinations_certs: RwLock::new(HashMap::new()), [INFO] [stdout] 79 + root_cert: ca_certificate, [INFO] [stdout] 80 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/packet.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 124 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 124 - return Ok(()); [INFO] [stdout] 124 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/proxy/server/proxy.rs:52:48 [INFO] [stdout] | [INFO] [stdout] 52 | let local_clients_paths: Vec = props [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 53 | | .dns [INFO] [stdout] 54 | | .cache [INFO] [stdout] 55 | | .iter() [INFO] [stdout] 56 | | .filter(|x| x.as_str().ne("k8s")) [INFO] [stdout] 57 | | .map(|x| x.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 52 ~ let local_clients_paths: Vec = props [INFO] [stdout] 53 + .dns [INFO] [stdout] 54 + .cache [INFO] [stdout] 55 + .iter() [INFO] [stdout] 56 + .filter(|x| x.as_str().ne("k8s")).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/dns/packet.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | for ref question in &self.questions { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 - for ref question in &self.questions { [INFO] [stdout] 65 + for question in &self.questions { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `UNKNOWN` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | UNKNOWN { [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Unknown` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `CNAME` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | CNAME { [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Cname` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOA` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | SOA { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Soa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PTR` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | PTR { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Ptr` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TXT` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | TXT { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Txt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `AAAA` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | AAAA { [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Aaaa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SRV` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | SRV { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Srv` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `OPT` contains a capitalized acronym [INFO] [stdout] --> src/dns/record.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | OPT { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Opt` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/record.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | / return match qtype { [INFO] [stdout] 99 | | QueryType::UNKNOWN(_) => { [INFO] [stdout] 100 | | buffer.step(data_len as usize); [INFO] [stdout] ... | [INFO] [stdout] 243 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 98 ~ match qtype { [INFO] [stdout] 99 + QueryType::UNKNOWN(_) => { [INFO] [stdout] 100 + buffer.step(data_len as usize); [INFO] [stdout] 101 + [INFO] [stdout] 102 + Ok(DnsRecord::UNKNOWN { [INFO] [stdout] 103 + domain, [INFO] [stdout] 104 + qtype: qtype_num, [INFO] [stdout] 105 + data_len, [INFO] [stdout] 106 + ttl, [INFO] [stdout] 107 + }) [INFO] [stdout] 108 + } [INFO] [stdout] 109 + QueryType::A => { [INFO] [stdout] 110 + let raw_addr = buffer.read_u32(); [INFO] [stdout] 111 + let addr = Ipv4Addr::new( [INFO] [stdout] 112 + ((raw_addr >> 24) & 0xFF) as u8, [INFO] [stdout] 113 + ((raw_addr >> 16) & 0xFF) as u8, [INFO] [stdout] 114 + ((raw_addr >> 8) & 0xFF) as u8, [INFO] [stdout] 115 + ((raw_addr) & 0xFF) as u8, [INFO] [stdout] 116 + ); [INFO] [stdout] 117 + Ok(DnsRecord::A { domain, addr, ttl }) [INFO] [stdout] 118 + } [INFO] [stdout] 119 + QueryType::NS => { [INFO] [stdout] 120 + let mut ns = String::new(); [INFO] [stdout] 121 + buffer.read_qname(&mut ns)?; [INFO] [stdout] 122 + [INFO] [stdout] 123 + Ok(DnsRecord::NS { [INFO] [stdout] 124 + domain, [INFO] [stdout] 125 + host: ns, [INFO] [stdout] 126 + ttl, [INFO] [stdout] 127 + }) [INFO] [stdout] 128 + } [INFO] [stdout] 129 + QueryType::PTR | QueryType::CNAME => { [INFO] [stdout] 130 + let mut cname = String::new(); [INFO] [stdout] 131 + buffer.read_qname(&mut cname)?; [INFO] [stdout] 132 + [INFO] [stdout] 133 + Ok(DnsRecord::CNAME { [INFO] [stdout] 134 + domain, [INFO] [stdout] 135 + host: cname, [INFO] [stdout] 136 + ttl, [INFO] [stdout] 137 + }) [INFO] [stdout] 138 + } [INFO] [stdout] 139 + QueryType::MX => { [INFO] [stdout] 140 + let priority = buffer.read_u16(); [INFO] [stdout] 141 + let mut mx = String::new(); [INFO] [stdout] 142 + buffer.read_qname(&mut mx)?; [INFO] [stdout] 143 + [INFO] [stdout] 144 + Ok(DnsRecord::MX { [INFO] [stdout] 145 + domain, [INFO] [stdout] 146 + priority, [INFO] [stdout] 147 + host: mx, [INFO] [stdout] 148 + ttl, [INFO] [stdout] 149 + }) [INFO] [stdout] 150 + } [INFO] [stdout] 151 + QueryType::AAAA => { [INFO] [stdout] 152 + let raw_addr1 = buffer.read_u32(); [INFO] [stdout] 153 + let raw_addr2 = buffer.read_u32(); [INFO] [stdout] 154 + let raw_addr3 = buffer.read_u32(); [INFO] [stdout] 155 + let raw_addr4 = buffer.read_u32(); [INFO] [stdout] 156 + [INFO] [stdout] 157 + let addr = Ipv6Addr::new( [INFO] [stdout] 158 + ((raw_addr1 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 159 + (raw_addr1 & 0xFFFF) as u16, [INFO] [stdout] 160 + ((raw_addr2 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 161 + (raw_addr2 & 0xFFFF) as u16, [INFO] [stdout] 162 + ((raw_addr3 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 163 + (raw_addr3 & 0xFFFF) as u16, [INFO] [stdout] 164 + ((raw_addr4 >> 16) & 0xFFFF) as u16, [INFO] [stdout] 165 + (raw_addr4 & 0xFFFF) as u16, [INFO] [stdout] 166 + ); [INFO] [stdout] 167 + [INFO] [stdout] 168 + Ok(DnsRecord::AAAA { domain, addr, ttl }) [INFO] [stdout] 169 + } [INFO] [stdout] 170 + QueryType::SOA => { [INFO] [stdout] 171 + let mut m_name = String::new(); [INFO] [stdout] 172 + buffer.read_qname(&mut m_name)?; [INFO] [stdout] 173 + [INFO] [stdout] 174 + let mut r_name = String::new(); [INFO] [stdout] 175 + buffer.read_qname(&mut r_name)?; [INFO] [stdout] 176 + [INFO] [stdout] 177 + let serial = buffer.read_u32(); [INFO] [stdout] 178 + let refresh = buffer.read_u32(); [INFO] [stdout] 179 + let retry = buffer.read_u32(); [INFO] [stdout] 180 + let expire = buffer.read_u32(); [INFO] [stdout] 181 + let minimum = buffer.read_u32(); [INFO] [stdout] 182 + [INFO] [stdout] 183 + Ok(DnsRecord::SOA { [INFO] [stdout] 184 + domain, [INFO] [stdout] 185 + m_name, [INFO] [stdout] 186 + r_name, [INFO] [stdout] 187 + serial, [INFO] [stdout] 188 + refresh, [INFO] [stdout] 189 + retry, [INFO] [stdout] 190 + expire, [INFO] [stdout] 191 + minimum, [INFO] [stdout] 192 + ttl, [INFO] [stdout] 193 + }) [INFO] [stdout] 194 + } [INFO] [stdout] 195 + QueryType::TXT => { [INFO] [stdout] 196 + let mut txt = String::new(); [INFO] [stdout] 197 + [INFO] [stdout] 198 + let cur_pos = buffer.pos(); [INFO] [stdout] 199 + txt.push_str(&String::from_utf8_lossy( [INFO] [stdout] 200 + buffer.get_range(cur_pos, data_len as usize), [INFO] [stdout] 201 + )); [INFO] [stdout] 202 + [INFO] [stdout] 203 + buffer.step(data_len as usize); [INFO] [stdout] 204 + [INFO] [stdout] 205 + Ok(DnsRecord::TXT { [INFO] [stdout] 206 + domain, [INFO] [stdout] 207 + data: txt, [INFO] [stdout] 208 + ttl, [INFO] [stdout] 209 + }) [INFO] [stdout] 210 + } [INFO] [stdout] 211 + QueryType::SRV => { [INFO] [stdout] 212 + let priority = buffer.read_u16(); [INFO] [stdout] 213 + let weight = buffer.read_u16(); [INFO] [stdout] 214 + let port = buffer.read_u16(); [INFO] [stdout] 215 + [INFO] [stdout] 216 + let mut srv = String::new(); [INFO] [stdout] 217 + buffer.read_qname(&mut srv)?; [INFO] [stdout] 218 + [INFO] [stdout] 219 + Ok(DnsRecord::SRV { [INFO] [stdout] 220 + domain, [INFO] [stdout] 221 + priority, [INFO] [stdout] 222 + weight, [INFO] [stdout] 223 + port, [INFO] [stdout] 224 + host: srv, [INFO] [stdout] 225 + ttl, [INFO] [stdout] 226 + }) [INFO] [stdout] 227 + } [INFO] [stdout] 228 + QueryType::OPT => { [INFO] [stdout] 229 + let mut data = String::new(); [INFO] [stdout] 230 + [INFO] [stdout] 231 + let cur_pos = buffer.pos(); [INFO] [stdout] 232 + data.push_str(&String::from_utf8_lossy( [INFO] [stdout] 233 + buffer.get_range(cur_pos, data_len as usize), [INFO] [stdout] 234 + )); [INFO] [stdout] 235 + buffer.step(data_len as usize); [INFO] [stdout] 236 + [INFO] [stdout] 237 + Ok(DnsRecord::OPT { [INFO] [stdout] 238 + packet_len: class, [INFO] [stdout] 239 + flags: ttl, [INFO] [stdout] 240 + data, [INFO] [stdout] 241 + }) [INFO] [stdout] 242 + } [INFO] [stdout] 243 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/record.rs:418:9 [INFO] [stdout] | [INFO] [stdout] 418 | return Ok(buffer.pos() - start_pos); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 418 - return Ok(buffer.pos() - start_pos); [INFO] [stdout] 418 + Ok(buffer.pos() - start_pos) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/proxy/server/tls.rs:55:22 [INFO] [stdout] | [INFO] [stdout] 55 | server_name: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 55 ~ server_name: &str, [INFO] [stdout] 56 | ) -> Result { [INFO] [stdout] 57 ~ let (key, cert) = self.generate_signed_cert(server_name)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / return DnsQuestion { [INFO] [stdout] 14 | | name, [INFO] [stdout] 15 | | qtype, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ DnsQuestion { [INFO] [stdout] 14 + name, [INFO] [stdout] 15 + qtype, [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/proxy/server/tls.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return Ok(SelfSignedVerifier { verifier }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return Ok(SelfSignedVerifier { verifier }); [INFO] [stdout] 90 + Ok(SelfSignedVerifier { verifier }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 24 - return Ok(()); [INFO] [stdout] 24 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/question.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return Ok(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return Ok(size); [INFO] [stdout] 37 + Ok(size) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RSA` contains a capitalized acronym [INFO] [stdout] --> src/proxy/server/cert.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | RSA, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rsa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / return BytePacketBuffer { [INFO] [stdout] 15 | | buf: [0; PACKET_SIZE], [INFO] [stdout] 16 | | pos: 0, [INFO] [stdout] 17 | | max_size: PACKET_SIZE, [INFO] [stdout] 18 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 14 ~ BytePacketBuffer { [INFO] [stdout] 15 + buf: [0; PACKET_SIZE], [INFO] [stdout] 16 + pos: 0, [INFO] [stdout] 17 + max_size: PACKET_SIZE, [INFO] [stdout] 18 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | return self.pos; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 22 - return self.pos; [INFO] [stdout] 22 + self.pos [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | return response; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 37 - return response; [INFO] [stdout] 37 + response [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | return self.buf[pos]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 41 - return self.buf[pos]; [INFO] [stdout] 41 + self.buf[pos] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | return &self.buf[start..start + len]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 45 - return &self.buf[start..start + len]; [INFO] [stdout] 45 + &self.buf[start..start + len] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 49 | return ((self.read() as u16) << 8) | (self.read() as u16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 49 - return ((self.read() as u16) << 8) | (self.read() as u16); [INFO] [stdout] 49 + ((self.read() as u16) << 8) | (self.read() as u16) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return ((self.read() as u32) << 24) [INFO] [stdout] 54 | | | ((self.read() as u32) << 16) [INFO] [stdout] 55 | | | ((self.read() as u32) << 8) [INFO] [stdout] 56 | | | (self.read() as u32); [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 ~ ((self.read() as u32) << 24) [INFO] [stdout] 54 + | ((self.read() as u32) << 16) [INFO] [stdout] 55 + | ((self.read() as u32) << 8) [INFO] [stdout] 56 ~ | (self.read() as u32) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 109 - return Ok(()); [INFO] [stdout] 109 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/proxy/http.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | match req.parse(&data.as_slice()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `data.as_slice()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return Ok(lines); [INFO] [stdout] 60 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/util.rs:38:10 [INFO] [stdout] | [INFO] [stdout] 38 | .map(|line| line.split_once("=")) [INFO] [stdout] | __________^ [INFO] [stdout] 39 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|line| line.split_once("="))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return (url.to_string(), ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return (url.to_string(), ip); [INFO] [stdout] 56 + (url.to_string(), ip) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return Ok(lines); [INFO] [stdout] 78 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | if props.dns.server.host.ne("") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!props.dns.server.host.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> src/dns/buffer.rs:69:28 [INFO] [stdout] | [INFO] [stdout] 69 | return Err(anyhow!("Limit of {} jumps exceeded", max_jumps).into()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `anyhow!("Limit of {} jumps exceeded", max_jumps)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/buffer.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 157 | return Ok(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 157 - return Ok(size); [INFO] [stdout] 157 + Ok(size) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/handler.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 57 - return Ok(()); [INFO] [stdout] 57 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/handler.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return DnsPacket::from_buffer(&mut res_buffer); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return DnsPacket::from_buffer(&mut res_buffer); [INFO] [stdout] 78 + DnsPacket::from_buffer(&mut res_buffer) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/dns/server/dns.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | / match dns_server.handle_query(req_buffer, &dns_socket, src).await { [INFO] [stdout] 41 | | Ok(_) => {} [INFO] [stdout] 42 | | // Err(e) => error!("An error occurred: {}", e), [INFO] [stdout] 43 | | Err(_) => {} //suppress temporary errors [INFO] [stdout] 44 | | } [INFO] [stdout] | |_________________^ help: try: `if let Ok(_) = dns_server.handle_query(req_buffer, &dns_socket, src).await {}` [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return Ok(Cache { [INFO] [stdout] 54 | | domains: Arc::new(RwLock::new(cache)), [INFO] [stdout] 55 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 ~ Ok(Cache { [INFO] [stdout] 54 + domains: Arc::new(RwLock::new(cache)), [INFO] [stdout] 55 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/dns/server/cache.rs:48:55 [INFO] [stdout] | [INFO] [stdout] 48 | let file_cache = load_local_dns_cache(&cache_type).await?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `cache_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | return Some(record); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 68 - return Some(record); [INFO] [stdout] 68 + Some(record) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / return Ok(urls [INFO] [stdout] 81 | | .iter() [INFO] [stdout] 82 | | .map(|host| { [INFO] [stdout] 83 | | return ( [INFO] [stdout] ... | [INFO] [stdout] 95 | | .inspect(|host| info!("Ingress: {}", host.0)) [INFO] [stdout] 96 | | .collect()); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 80 ~ Ok(urls [INFO] [stdout] 81 + .iter() [INFO] [stdout] 82 + .map(|host| { [INFO] [stdout] 83 + return ( [INFO] [stdout] 84 + host.to_string(), [INFO] [stdout] 85 + CacheRecord { [INFO] [stdout] 86 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 87 + records: vec![DnsRecord::A { [INFO] [stdout] 88 + domain: host.to_owned(), [INFO] [stdout] 89 + addr: Ipv4Addr::new(127, 0, 0, 1), [INFO] [stdout] 90 + ttl: 300u32, [INFO] [stdout] 91 + }], [INFO] [stdout] 92 + }, [INFO] [stdout] 93 + ); [INFO] [stdout] 94 + }) [INFO] [stdout] 95 + .inspect(|host| info!("Ingress: {}", host.0)) [INFO] [stdout] 96 ~ .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:83:13 [INFO] [stdout] | [INFO] [stdout] 83 | / return ( [INFO] [stdout] 84 | | host.to_string(), [INFO] [stdout] 85 | | CacheRecord { [INFO] [stdout] 86 | | expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] ... | [INFO] [stdout] 92 | | }, [INFO] [stdout] 93 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ ( [INFO] [stdout] 84 + host.to_string(), [INFO] [stdout] 85 + CacheRecord { [INFO] [stdout] 86 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 87 + records: vec![DnsRecord::A { [INFO] [stdout] 88 + domain: host.to_owned(), [INFO] [stdout] 89 + addr: Ipv4Addr::new(127, 0, 0, 1), [INFO] [stdout] 90 + ttl: 300u32, [INFO] [stdout] 91 + }], [INFO] [stdout] 92 + }, [INFO] [stdout] 93 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return Ok(lines); [INFO] [stdout] 126 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/dns/server/cache.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | / return ( [INFO] [stdout] 117 | | url.to_string(), [INFO] [stdout] 118 | | CacheRecord { [INFO] [stdout] 119 | | expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 120 | | records: vec![dns_record], [INFO] [stdout] 121 | | }, [INFO] [stdout] 122 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 116 ~ ( [INFO] [stdout] 117 + url.to_string(), [INFO] [stdout] 118 + CacheRecord { [INFO] [stdout] 119 + expires: OffsetDateTime::now_utc().add(Duration::days(365)), [INFO] [stdout] 120 + records: vec![dns_record], [INFO] [stdout] 121 + }, [INFO] [stdout] 122 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ipv4Addr` which implements the `Copy` trait [INFO] [stdout] --> src/dns/server/cache.rs:107:27 [INFO] [stdout] | [INFO] [stdout] 107 | addr: ip4.ip().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*ip4.ip()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Ipv6Addr` which implements the `Copy` trait [INFO] [stdout] --> src/dns/server/cache.rs:112:27 [INFO] [stdout] | [INFO] [stdout] 112 | addr: ip6.ip().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*ip6.ip()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / return Ok(K8sClient { [INFO] [stdout] 39 | | pod_namespace: props.pod.namespace.to_string(), [INFO] [stdout] 40 | | pod_label: props.pod.label.to_string(), [INFO] [stdout] 41 | | pod_http_port: props.pod.port.http, [INFO] [stdout] ... | [INFO] [stdout] 44 | | client: Some(client), [INFO] [stdout] 45 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 38 ~ Ok(K8sClient { [INFO] [stdout] 39 + pod_namespace: props.pod.namespace.to_string(), [INFO] [stdout] 40 + pod_label: props.pod.label.to_string(), [INFO] [stdout] 41 + pod_http_port: props.pod.port.http, [INFO] [stdout] 42 + pod_https_port: props.pod.port.https, [INFO] [stdout] 43 + ingress_namespace: props.ingress_namespace.to_string(), [INFO] [stdout] 44 + client: Some(client), [INFO] [stdout] 45 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return Ok(Api::namespaced(client, &self.pod_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 53 - return Ok(Api::namespaced(client, &self.pod_namespace)); [INFO] [stdout] 53 + Ok(Api::namespaced(client, &self.pod_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 66 - return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] 66 + Ok(Api::namespaced(client, &self.ingress_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter(..).map(..)` can be simplified as `filter_map(..)` [INFO] [stdout] --> src/k8s/client.rs:79:14 [INFO] [stdout] | [INFO] [stdout] 79 | .filter(|rule| rule.host.is_some()) [INFO] [stdout] | ______________^ [INFO] [stdout] 80 | | .map(|rule| rule.host.unwrap()) [INFO] [stdout] | |___________________________________________^ help: try: `filter_map(|rule| rule.host)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map [INFO] [stdout] = note: `#[warn(clippy::manual_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/k8s/client.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 89 - return Ok(Api::namespaced(client, &self.ingress_namespace)); [INFO] [stdout] 89 + Ok(Api::namespaced(client, &self.ingress_namespace)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `flat_map` with an identity function [INFO] [stdout] --> src/k8s/client.rs:104:14 [INFO] [stdout] | [INFO] [stdout] 104 | .flat_map(|tls| tls) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#flat_map_identity [INFO] [stdout] = note: `#[warn(clippy::flat_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `filter` for `Some` followed by `unwrap` [INFO] [stdout] --> src/k8s/client.rs:102:14 [INFO] [stdout] | [INFO] [stdout] 102 | .filter(|tls| tls.is_some()) [INFO] [stdout] | ______________^ [INFO] [stdout] 103 | | .map(|tls| tls.unwrap()) [INFO] [stdout] | |____________________________________^ help: consider using `flatten` instead: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_filter_map [INFO] [stdout] = note: `#[warn(clippy::option_filter_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `filter(..).next()` on an `Iterator`. This is more succinctly expressed by calling `.find(..)` instead [INFO] [stdout] --> src/k8s/client.rs:107:23 [INFO] [stdout] | [INFO] [stdout] 107 | match tls [INFO] [stdout] | _______________________^ [INFO] [stdout] 108 | | .hosts [INFO] [stdout] 109 | | .unwrap() [INFO] [stdout] 110 | | .iter() [INFO] [stdout] 111 | | .filter(|host| *host == server_name) [INFO] [stdout] 112 | | .next() [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_next [INFO] [stdout] = note: `#[warn(clippy::filter_next)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 107 ~ match tls [INFO] [stdout] 108 + .hosts [INFO] [stdout] 109 + .unwrap() [INFO] [stdout] 110 + .iter().find(|host| *host == server_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/proxy/server/proxy.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | / return Ok(Proxy { [INFO] [stdout] 72 | | host: proxy_props.host.to_string(), [INFO] [stdout] 73 | | http_port: proxy_props.port.http, [INFO] [stdout] 74 | | https_port: proxy_props.port.https, [INFO] [stdout] ... | [INFO] [stdout] 79 | | root_cert: ca_certificate, [INFO] [stdout] 80 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 ~ Ok(Proxy { [INFO] [stdout] 72 + host: proxy_props.host.to_string(), [INFO] [stdout] 73 + http_port: proxy_props.port.http, [INFO] [stdout] 74 + https_port: proxy_props.port.https, [INFO] [stdout] 75 + k8s_clients, [INFO] [stdout] 76 + ingress_clients, [INFO] [stdout] 77 + local_clients, [INFO] [stdout] 78 + destinations_certs: RwLock::new(HashMap::new()), [INFO] [stdout] 79 + root_cert: ca_certificate, [INFO] [stdout] 80 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/proxy/server/proxy.rs:52:48 [INFO] [stdout] | [INFO] [stdout] 52 | let local_clients_paths: Vec = props [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 53 | | .dns [INFO] [stdout] 54 | | .cache [INFO] [stdout] 55 | | .iter() [INFO] [stdout] 56 | | .filter(|x| x.as_str().ne("k8s")) [INFO] [stdout] 57 | | .map(|x| x.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 52 ~ let local_clients_paths: Vec = props [INFO] [stdout] 53 + .dns [INFO] [stdout] 54 + .cache [INFO] [stdout] 55 + .iter() [INFO] [stdout] 56 + .filter(|x| x.as_str().ne("k8s")).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/proxy/server/tls.rs:55:22 [INFO] [stdout] | [INFO] [stdout] 55 | server_name: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 55 ~ server_name: &str, [INFO] [stdout] 56 | ) -> Result { [INFO] [stdout] 57 ~ let (key, cert) = self.generate_signed_cert(server_name)?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/proxy/server/tls.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return Ok(SelfSignedVerifier { verifier }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 90 - return Ok(SelfSignedVerifier { verifier }); [INFO] [stdout] 90 + Ok(SelfSignedVerifier { verifier }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RSA` contains a capitalized acronym [INFO] [stdout] --> src/proxy/server/cert.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | RSA, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Rsa` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/proxy/http.rs:13:21 [INFO] [stdout] | [INFO] [stdout] 13 | match req.parse(&data.as_slice()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `data.as_slice()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return Ok(lines); [INFO] [stdout] 60 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/util.rs:38:10 [INFO] [stdout] | [INFO] [stdout] 38 | .map(|line| line.split_once("=")) [INFO] [stdout] | __________^ [INFO] [stdout] 39 | | .flatten() [INFO] [stdout] | |__________________^ help: try replacing `map` with `filter_map` and remove the `.flatten()`: `filter_map(|line| line.split_once("="))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | return (url.to_string(), ip); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 56 - return (url.to_string(), ip); [INFO] [stdout] 56 + (url.to_string(), ip) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/util.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return Ok(lines); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return Ok(lines); [INFO] [stdout] 78 + Ok(lines) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/main.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | if props.dns.server.host.ne("") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!props.dns.server.host.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 54s [INFO] running `Command { std: "docker" "inspect" "58a3f0675a7460d246660d84373e5058f4ac88ef16c77c38e8088e3aad31c43d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "58a3f0675a7460d246660d84373e5058f4ac88ef16c77c38e8088e3aad31c43d", kill_on_drop: false }` [INFO] [stdout] 58a3f0675a7460d246660d84373e5058f4ac88ef16c77c38e8088e3aad31c43d