[INFO] cloning repository https://github.com/Zedonboy/dmailfi_gateway [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Zedonboy/dmailfi_gateway" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZedonboy%2Fdmailfi_gateway", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZedonboy%2Fdmailfi_gateway'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bfff01db2cfba2020cb0eaead63567eb7a8223ae [INFO] testing Zedonboy/dmailfi_gateway against 1.79.0 for beta-1.80-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZedonboy%2Fdmailfi_gateway" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Zedonboy/dmailfi_gateway on toolchain 1.79.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.79.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Zedonboy/dmailfi_gateway [INFO] finished tweaking git repo https://github.com/Zedonboy/dmailfi_gateway [INFO] tweaked toml for git repo https://github.com/Zedonboy/dmailfi_gateway written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/Zedonboy/dmailfi_gateway already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.79.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/Zedonboy/dmailfi_protocol.git` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded quoted_printable v0.5.0 [INFO] [stderr] Downloaded rustls-pki-types v1.3.0 [INFO] [stderr] Downloaded enum-as-inner v0.6.0 [INFO] [stderr] Downloaded group v0.13.0 [INFO] [stderr] Downloaded primeorder v0.13.6 [INFO] [stderr] Downloaded ic-transport-types v0.33.0 [INFO] [stderr] Downloaded ic0 v0.21.1 [INFO] [stderr] Downloaded ic-cdk v0.12.1 [INFO] [stderr] Downloaded anstream v0.6.12 [INFO] [stderr] Downloaded clap_builder v4.5.1 [INFO] [stderr] Downloaded trust-dns-proto v0.23.2 [INFO] [stderr] Downloaded curve25519-dalek-ng v4.1.1 [INFO] [stderr] Downloaded bls12_381 v0.7.1 [INFO] [stderr] Downloaded clap v4.5.1 [INFO] [stderr] Downloaded slotmap v1.0.7 [INFO] [stderr] Downloaded cached v0.46.1 [INFO] [stderr] Downloaded binread v2.2.0 [INFO] [stderr] Downloaded ic-certification v2.4.0 [INFO] [stderr] Downloaded k256 v0.13.3 [INFO] [stderr] Downloaded crypto-bigint v0.5.5 [INFO] [stderr] Downloaded elliptic-curve v0.13.8 [INFO] [stderr] Downloaded p256 v0.13.2 [INFO] [stderr] Downloaded rangemap v1.5.0 [INFO] [stderr] Downloaded half v1.8.2 [INFO] [stderr] Downloaded ahash v0.8.9 [INFO] [stderr] Downloaded chumsky v0.9.3 [INFO] [stderr] Downloaded lettre v0.11.4 [INFO] [stderr] Downloaded trust-dns-resolver v0.23.2 [INFO] [stderr] Downloaded serde_tokenstream v0.1.7 [INFO] [stderr] Downloaded ic-cdk-macros v0.8.4 [INFO] [stderr] Downloaded ic-cdk-timers v0.6.0 [INFO] [stderr] Downloaded subtle-ng v2.5.0 [INFO] [stderr] Downloaded ed25519-consensus v2.1.0 [INFO] [stderr] Downloaded candid_derive v0.6.5 [INFO] [stderr] Downloaded ic_principal v0.1.1 [INFO] [stderr] Downloaded typed-arena v2.0.2 [INFO] [stderr] Downloaded pretty v0.12.3 [INFO] [stderr] Downloaded candid v0.10.3 [INFO] [stderr] Downloaded group v0.12.1 [INFO] [stderr] Downloaded leb128 v0.2.5 [INFO] [stderr] Downloaded ecdsa v0.16.9 [INFO] [stderr] Downloaded ff v0.13.0 [INFO] [stderr] Downloaded wasm-streams v0.4.0 [INFO] [stderr] Downloaded base16ct v0.2.0 [INFO] [stderr] Downloaded serde_cbor v0.11.2 [INFO] [stderr] Downloaded ic-agent v0.33.0 [INFO] [stderr] Downloaded stacker v0.1.15 [INFO] [stderr] Downloaded email-encoding v0.2.0 [INFO] [stderr] Downloaded cc v1.0.86 [INFO] [stderr] Downloaded arrayvec v0.5.2 [INFO] [stderr] Downloaded psm v0.1.21 [INFO] [stderr] Downloaded tokio-rustls v0.25.0 [INFO] [stderr] Downloaded binread_derive v2.1.0 [INFO] [stderr] Downloaded ff v0.12.1 [INFO] [stderr] Downloaded pairing v0.22.0 [INFO] [stderr] Downloaded ic-verify-bls-signature v0.1.0 [INFO] [stderr] Downloaded sec1 v0.7.3 [INFO] [stderr] Downloaded email_address v0.2.4 [INFO] [stderr] Downloaded rfc6979 v0.4.0 [INFO] [stderr] Downloaded pem v2.0.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+1.79.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f7d7901baa0875a13d149a89ee3f3298ae738bc13e8024dca18524092b206224 [INFO] running `Command { std: "docker" "start" "-a" "f7d7901baa0875a13d149a89ee3f3298ae738bc13e8024dca18524092b206224", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f7d7901baa0875a13d149a89ee3f3298ae738bc13e8024dca18524092b206224", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7d7901baa0875a13d149a89ee3f3298ae738bc13e8024dca18524092b206224", kill_on_drop: false }` [INFO] [stdout] f7d7901baa0875a13d149a89ee3f3298ae738bc13e8024dca18524092b206224 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+1.79.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f7ab8ed9ce577e9493eb9fb9048665c0b1ca7acc6b42d2c56c5c9477ea79f7e0 [INFO] running `Command { std: "docker" "start" "-a" "f7ab8ed9ce577e9493eb9fb9048665c0b1ca7acc6b42d2c56c5c9477ea79f7e0", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling cc v1.0.86 [INFO] [stderr] Compiling zeroize v1.7.0 [INFO] [stderr] Compiling subtle v2.5.0 [INFO] [stderr] Compiling serde v1.0.197 [INFO] [stderr] Compiling const-oid v0.9.6 [INFO] [stderr] Compiling thiserror v1.0.57 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling socket2 v0.5.5 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling mio v0.8.10 [INFO] [stderr] Compiling ahash v0.8.9 [INFO] [stderr] Compiling crc32fast v1.4.0 [INFO] [stderr] Compiling num-bigint v0.4.4 [INFO] [stderr] Compiling base64ct v1.6.0 [INFO] [stderr] Compiling either v1.10.0 [INFO] [stderr] Compiling anyhow v1.0.80 [INFO] [stderr] Compiling tracing-core v0.1.32 [INFO] [stderr] Compiling unicode-width v0.1.11 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling typed-arena v2.0.2 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling leb128 v0.2.5 [INFO] [stderr] Compiling pretty v0.12.3 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling der v0.7.8 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling ff v0.13.0 [INFO] [stderr] Compiling base16ct v0.2.0 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling group v0.13.0 [INFO] [stderr] Compiling sha2 v0.10.8 [INFO] [stderr] Compiling digest v0.9.0 [INFO] [stderr] Compiling crypto-bigint v0.5.5 [INFO] [stderr] Compiling http v0.2.11 [INFO] [stderr] Compiling ff v0.12.1 [INFO] [stderr] Compiling block-buffer v0.9.0 [INFO] [stderr] Compiling syn v2.0.50 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling group v0.12.1 [INFO] [stderr] Compiling indexmap v2.2.3 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Compiling serde_json v1.0.114 [INFO] [stderr] Compiling rfc6979 v0.4.0 [INFO] [stderr] Compiling openssl v0.10.64 [INFO] [stderr] Compiling opaque-debug v0.3.0 [INFO] [stderr] Compiling hostname v0.3.1 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling psm v0.1.21 [INFO] [stderr] Compiling stacker v0.1.15 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Compiling sha2 v0.9.9 [INFO] [stderr] Compiling pairing v0.22.0 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling anstyle-parse v0.2.3 [INFO] [stderr] Compiling instant v0.1.12 [INFO] [stderr] Compiling openssl-sys v0.9.101 [INFO] [stderr] Compiling anstyle-query v1.0.2 [INFO] [stderr] Compiling subtle-ng v2.5.0 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling rustls v0.22.2 [INFO] [stderr] Compiling ic0 v0.21.1 [INFO] [stderr] Compiling rustls-pki-types v1.3.0 [INFO] [stderr] Compiling anstyle v1.0.6 [INFO] [stderr] Compiling curve25519-dalek-ng v4.1.1 [INFO] [stderr] Compiling pkcs8 v0.10.2 [INFO] [stderr] Compiling anstream v0.6.12 [INFO] [stderr] Compiling sec1 v0.7.3 [INFO] [stderr] Compiling bls12_381 v0.7.1 [INFO] [stderr] Compiling half v1.8.2 [INFO] [stderr] Compiling strsim v0.11.0 [INFO] [stderr] Compiling resolv-conf v0.7.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling chumsky v0.9.3 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling clap_builder v4.5.1 [INFO] [stderr] Compiling backoff v0.4.0 [INFO] [stderr] Compiling pem v2.0.1 [INFO] [stderr] Compiling elliptic-curve v0.13.8 [INFO] [stderr] Compiling email-encoding v0.2.0 [INFO] [stderr] Compiling quoted_printable v0.5.0 [INFO] [stderr] Compiling ecdsa v0.16.9 [INFO] [stderr] Compiling primeorder v0.13.6 [INFO] [stderr] Compiling rangemap v1.5.0 [INFO] [stderr] Compiling fastrand v2.0.1 [INFO] [stderr] Compiling p256 v0.13.2 [INFO] [stderr] Compiling k256 v0.13.3 [INFO] [stderr] Compiling ic-verify-bls-signature v0.1.0 [INFO] [stderr] Compiling rustls v0.21.10 [INFO] [stderr] Compiling binread_derive v2.1.0 [INFO] [stderr] Compiling serde_derive v1.0.197 [INFO] [stderr] Compiling thiserror-impl v1.0.57 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling candid_derive v0.6.5 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling enum-as-inner v0.6.0 [INFO] [stderr] Compiling serde_repr v0.1.18 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling rustls-webpki v0.102.2 [INFO] [stderr] Compiling async-trait v0.1.77 [INFO] [stderr] Compiling clap_derive v4.5.0 [INFO] [stderr] Compiling tokio v1.36.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling binread v2.2.0 [INFO] [stderr] Compiling cached v0.46.1 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling clap v4.5.1 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling tokio-util v0.7.10 [INFO] [stderr] Compiling tokio-rustls v0.24.1 [INFO] [stderr] Compiling trust-dns-proto v0.23.2 [INFO] [stderr] Compiling tokio-rustls v0.25.0 [INFO] [stderr] Compiling tokio-stream v0.1.14 [INFO] [stderr] Compiling h2 v0.3.24 [INFO] [stderr] Compiling serde_bytes v0.11.14 [INFO] [stderr] Compiling ic_principal v0.1.1 [INFO] [stderr] Compiling serde_tokenstream v0.1.7 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling email_address v0.2.4 [INFO] [stderr] Compiling serde_cbor v0.11.2 [INFO] [stderr] Compiling ed25519-consensus v2.1.0 [INFO] [stderr] Compiling lettre v0.11.4 [INFO] [stderr] Compiling ic-certification v2.4.0 [INFO] [stderr] Compiling candid v0.10.3 [INFO] [stderr] Compiling simple_asn1 v0.6.2 [INFO] [stderr] Compiling trust-dns-resolver v0.23.2 [INFO] [stderr] Compiling hyper v0.14.28 [INFO] [stderr] Compiling ic-transport-types v0.33.0 [INFO] [stderr] Compiling ic-cdk-macros v0.8.4 [INFO] [stderr] Compiling hyper-rustls v0.24.2 [INFO] [stderr] Compiling reqwest v0.11.24 [INFO] [stderr] Compiling ic-cdk v0.12.1 [INFO] [stderr] Compiling ic-agent v0.33.0 [INFO] [stderr] Compiling ic-cdk-timers v0.6.0 [INFO] [stderr] Compiling dmailfi_types v0.2.0 (https://github.com/Zedonboy/dmailfi_protocol.git?branch=main#6b8336db) [INFO] [stderr] Compiling dmailfi_smtp_gateway v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `borrow::Cow` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Cow, collections::HashMap, str::{from_utf8, FromStr}, sync::Arc, time::{SystemTime, UNIX_EPOCH}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smtpd::SmtpMail` [INFO] [stdout] --> src/main.rs:9:39 [INFO] [stdout] | [INFO] [stdout] 9 | use services::{mailer::MailerService, smtpd::SmtpMail}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::Cow` [INFO] [stdout] --> src/services/mailer/mod.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Cow, str::FromStr, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `message::Mailbox` [INFO] [stdout] --> src/services/mailer/mod.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | use lettre::{address::Envelope, message::Mailbox, Address, Message, SmtpTransport, Transport}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Receiver` [INFO] [stdout] --> src/services/mailer/mod.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::sync::mpsc::{self, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/services/smtpd/mod.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{prelude::*, Error}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set`, `get`, and `remove` are never used [INFO] [stdout] --> src/main.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 47 | impl Cache { [INFO] [stdout] | ----------------------------------------------------------------------------------------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | async fn set(&self, key: K, value: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | async fn get(&self, key: &K) -> Option [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | async fn remove(&self, key: &K) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SMTPError` is never used [INFO] [stdout] --> src/services/smtpd/mod.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum SMTPError {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_smtp_connection` is never used [INFO] [stdout] --> src/services/smtpd/mod.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SmtpServer { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn to_smtp_connection(&mut self, stream: TcpStream) -> SmtpConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:131:29 [INFO] [stdout] | [INFO] [stdout] 131 | ... agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 131 | let _ = agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 89 | let _ = self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/services/smtpd/mod.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | for line in reader.lines().next_line().await? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 92 | while let Some(line) = reader.lines().next_line().await? { [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(line) = reader.lines().next_line().await? { [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:119:29 [INFO] [stdout] | [INFO] [stdout] 119 | / ... self.stream [INFO] [stdout] 120 | | ... .write_all(format!("250 Hello {}\r\n", arg).as_bytes()) [INFO] [stdout] 121 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | / ... self.stream [INFO] [stdout] 124 | | ... .write_all(b"501 Syntax: HELO hostname\r\n") [INFO] [stdout] 125 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 123 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:141:29 [INFO] [stdout] | [INFO] [stdout] 141 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 141 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | / ... self.stream [INFO] [stdout] 144 | | ... .write_all(b"501 Syntax: MAIL From:
\r\n") [INFO] [stdout] 145 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 143 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:168:37 [INFO] [stdout] | [INFO] [stdout] 168 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 168 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:170:37 [INFO] [stdout] | [INFO] [stdout] 170 | / ... self.stream [INFO] [stdout] 171 | | ... .write_all(b"501 Syntax: RCPT To:
\r\n") [INFO] [stdout] 172 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 170 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:176:33 [INFO] [stdout] | [INFO] [stdout] 176 | / ... self.stream [INFO] [stdout] 177 | | ... .write_all(b"503 Error: Send MAIL first\r\n") [INFO] [stdout] 178 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:184:29 [INFO] [stdout] | [INFO] [stdout] 184 | / ... self.stream [INFO] [stdout] 185 | | ... .write_all(b"503 Error: Send HELO/EHLO first\r\n") [INFO] [stdout] 186 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:191:29 [INFO] [stdout] | [INFO] [stdout] 191 | / ... self.stream [INFO] [stdout] 192 | | ... .write_all(b"503 Error: Send RCPT first\r\n") [INFO] [stdout] 193 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 191 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:198:25 [INFO] [stdout] | [INFO] [stdout] 198 | / self.stream [INFO] [stdout] 199 | | .write_all(b"354 End data with .\r\n") [INFO] [stdout] 200 | | .await; [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 198 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:204:29 [INFO] [stdout] | [INFO] [stdout] 204 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 204 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | ... self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 206 | let _ = self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:214:25 [INFO] [stdout] | [INFO] [stdout] 214 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 214 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:217:25 [INFO] [stdout] | [INFO] [stdout] 217 | self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 217 | let _ = self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:221:25 [INFO] [stdout] | [INFO] [stdout] 221 | / self.stream [INFO] [stdout] 222 | | .write_all(format!("500 Error: Unknown command '{}'\r\n", x).as_bytes()) [INFO] [stdout] 223 | | .await; [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 221 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:230:21 [INFO] [stdout] | [INFO] [stdout] 230 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 230 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s [INFO] running `Command { std: "docker" "inspect" "f7ab8ed9ce577e9493eb9fb9048665c0b1ca7acc6b42d2c56c5c9477ea79f7e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f7ab8ed9ce577e9493eb9fb9048665c0b1ca7acc6b42d2c56c5c9477ea79f7e0", kill_on_drop: false }` [INFO] [stdout] f7ab8ed9ce577e9493eb9fb9048665c0b1ca7acc6b42d2c56c5c9477ea79f7e0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+1.79.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] da5d964bf9134d22edb84bbcc5c592ee0f5342910866f5a4378fd7d60e6ea712 [INFO] running `Command { std: "docker" "start" "-a" "da5d964bf9134d22edb84bbcc5c592ee0f5342910866f5a4378fd7d60e6ea712", kill_on_drop: false }` [INFO] [stderr] Compiling dmailfi_smtp_gateway v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `borrow::Cow` [INFO] [stdout] --> src/main.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Cow, collections::HashMap, str::{from_utf8, FromStr}, sync::Arc, time::{SystemTime, UNIX_EPOCH}}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smtpd::SmtpMail` [INFO] [stdout] --> src/main.rs:9:39 [INFO] [stdout] | [INFO] [stdout] 9 | use services::{mailer::MailerService, smtpd::SmtpMail}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `borrow::Cow` [INFO] [stdout] --> src/services/mailer/mod.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{borrow::Cow, str::FromStr, sync::Arc}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `message::Mailbox` [INFO] [stdout] --> src/services/mailer/mod.rs:4:33 [INFO] [stdout] | [INFO] [stdout] 4 | use lettre::{address::Envelope, message::Mailbox, Address, Message, SmtpTransport, Transport}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Receiver` [INFO] [stdout] --> src/services/mailer/mod.rs:5:31 [INFO] [stdout] | [INFO] [stdout] 5 | use tokio::sync::mpsc::{self, Receiver, Sender}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude` [INFO] [stdout] --> src/services/smtpd/mod.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{prelude::*, Error}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set`, `get`, and `remove` are never used [INFO] [stdout] --> src/main.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 47 | impl Cache { [INFO] [stdout] | ----------------------------------------------------------------------------------------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 54 | async fn set(&self, key: K, value: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | async fn get(&self, key: &K) -> Option [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | async fn remove(&self, key: &K) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SMTPError` is never used [INFO] [stdout] --> src/services/smtpd/mod.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | enum SMTPError {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_smtp_connection` is never used [INFO] [stdout] --> src/services/smtpd/mod.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl SmtpServer { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn to_smtp_connection(&mut self, stream: TcpStream) -> SmtpConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/main.rs:131:29 [INFO] [stdout] | [INFO] [stdout] 131 | ... agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 131 | let _ = agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:89:9 [INFO] [stdout] | [INFO] [stdout] 89 | self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 89 | let _ = self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> src/services/smtpd/mod.rs:92:21 [INFO] [stdout] | [INFO] [stdout] 92 | for line in reader.lines().next_line().await? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 92 | while let Some(line) = reader.lines().next_line().await? { [INFO] [stdout] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(line) = reader.lines().next_line().await? { [INFO] [stdout] | ~~~~~~~~~~~~ ~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:119:29 [INFO] [stdout] | [INFO] [stdout] 119 | / ... self.stream [INFO] [stdout] 120 | | ... .write_all(format!("250 Hello {}\r\n", arg).as_bytes()) [INFO] [stdout] 121 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:123:29 [INFO] [stdout] | [INFO] [stdout] 123 | / ... self.stream [INFO] [stdout] 124 | | ... .write_all(b"501 Syntax: HELO hostname\r\n") [INFO] [stdout] 125 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 123 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:141:29 [INFO] [stdout] | [INFO] [stdout] 141 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 141 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:143:29 [INFO] [stdout] | [INFO] [stdout] 143 | / ... self.stream [INFO] [stdout] 144 | | ... .write_all(b"501 Syntax: MAIL From:
\r\n") [INFO] [stdout] 145 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 143 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:168:37 [INFO] [stdout] | [INFO] [stdout] 168 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 168 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:170:37 [INFO] [stdout] | [INFO] [stdout] 170 | / ... self.stream [INFO] [stdout] 171 | | ... .write_all(b"501 Syntax: RCPT To:
\r\n") [INFO] [stdout] 172 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 170 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:176:33 [INFO] [stdout] | [INFO] [stdout] 176 | / ... self.stream [INFO] [stdout] 177 | | ... .write_all(b"503 Error: Send MAIL first\r\n") [INFO] [stdout] 178 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 176 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:184:29 [INFO] [stdout] | [INFO] [stdout] 184 | / ... self.stream [INFO] [stdout] 185 | | ... .write_all(b"503 Error: Send HELO/EHLO first\r\n") [INFO] [stdout] 186 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:191:29 [INFO] [stdout] | [INFO] [stdout] 191 | / ... self.stream [INFO] [stdout] 192 | | ... .write_all(b"503 Error: Send RCPT first\r\n") [INFO] [stdout] 193 | | ... .await; [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 191 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:198:25 [INFO] [stdout] | [INFO] [stdout] 198 | / self.stream [INFO] [stdout] 199 | | .write_all(b"354 End data with .\r\n") [INFO] [stdout] 200 | | .await; [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 198 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:204:29 [INFO] [stdout] | [INFO] [stdout] 204 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 204 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:206:29 [INFO] [stdout] | [INFO] [stdout] 206 | ... self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 206 | let _ = self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:214:25 [INFO] [stdout] | [INFO] [stdout] 214 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 214 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:217:25 [INFO] [stdout] | [INFO] [stdout] 217 | self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 217 | let _ = self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:221:25 [INFO] [stdout] | [INFO] [stdout] 221 | / self.stream [INFO] [stdout] 222 | | .write_all(format!("500 Error: Unknown command '{}'\r\n", x).as_bytes()) [INFO] [stdout] 223 | | .await; [INFO] [stdout] | |__________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 221 | let _ = self.stream [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/services/smtpd/mod.rs:230:21 [INFO] [stdout] | [INFO] [stdout] 230 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 230 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 28 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.47s [INFO] running `Command { std: "docker" "inspect" "da5d964bf9134d22edb84bbcc5c592ee0f5342910866f5a4378fd7d60e6ea712", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da5d964bf9134d22edb84bbcc5c592ee0f5342910866f5a4378fd7d60e6ea712", kill_on_drop: false }` [INFO] [stdout] da5d964bf9134d22edb84bbcc5c592ee0f5342910866f5a4378fd7d60e6ea712 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:dff56e7819e73ed36160586b3445e93eb0be776c16704aeeded9c3fb668b2384" "/opt/rustwide/cargo-home/bin/cargo" "+1.79.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 981bdf96a2b3782ff1e9356b95526ae5881b52c741482bd85058cf765e3778ae [INFO] running `Command { std: "docker" "start" "-a" "981bdf96a2b3782ff1e9356b95526ae5881b52c741482bd85058cf765e3778ae", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `borrow::Cow` [INFO] [stderr] --> src/main.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{borrow::Cow, collections::HashMap, str::{from_utf8, FromStr}, sync::Arc, time::{SystemTime, UNIX_EPOCH}}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `smtpd::SmtpMail` [INFO] [stderr] --> src/main.rs:9:39 [INFO] [stderr] | [INFO] [stderr] 9 | use services::{mailer::MailerService, smtpd::SmtpMail}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `borrow::Cow` [INFO] [stderr] --> src/services/mailer/mod.rs:1:11 [INFO] [stderr] | [INFO] [stderr] 1 | use std::{borrow::Cow, str::FromStr, sync::Arc}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Message`, `message::Mailbox` [INFO] [stderr] --> src/services/mailer/mod.rs:4:33 [INFO] [stderr] | [INFO] [stderr] 4 | use lettre::{address::Envelope, message::Mailbox, Address, Message, SmtpTransport, Transport}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Receiver` [INFO] [stderr] --> src/services/mailer/mod.rs:5:31 [INFO] [stderr] | [INFO] [stderr] 5 | use tokio::sync::mpsc::{self, Receiver, Sender}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `prelude` [INFO] [stderr] --> src/services/smtpd/mod.rs:2:15 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::{prelude::*, Error}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `set`, `get`, and `remove` are never used [INFO] [stderr] --> src/main.rs:54:14 [INFO] [stderr] | [INFO] [stderr] 47 | impl Cache { [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 54 | async fn set(&self, key: K, value: V) { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 59 | async fn get(&self, key: &K) -> Option [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 67 | async fn remove(&self, key: &K) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: enum `SMTPError` is never used [INFO] [stderr] --> src/services/smtpd/mod.rs:14:6 [INFO] [stderr] | [INFO] [stderr] 14 | enum SMTPError {} [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_smtp_connection` is never used [INFO] [stderr] --> src/services/smtpd/mod.rs:25:12 [INFO] [stderr] | [INFO] [stderr] 16 | impl SmtpServer { [INFO] [stderr] | --------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 25 | pub fn to_smtp_connection(&mut self, stream: TcpStream) -> SmtpConnection { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/main.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | ... agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 131 | let _ = agent.update(&r_principal_id, "submit_mail").with_arg(Encode!(&canister_mail).unwrap()).call_and_wait().await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 89 | let _ = self.stream.write_all(b"220 Rust smtpd v0.1.0\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stderr] --> src/services/smtpd/mod.rs:92:21 [INFO] [stderr] | [INFO] [stderr] 92 | for line in reader.lines().next_line().await? { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stderr] help: to check pattern in a loop use `while let` [INFO] [stderr] | [INFO] [stderr] 92 | while let Some(line) = reader.lines().next_line().await? { [INFO] [stderr] | ~~~~~~~~~~~~~~~ ~~~ [INFO] [stderr] help: consider using `if let` to clear intent [INFO] [stderr] | [INFO] [stderr] 92 | if let Some(line) = reader.lines().next_line().await? { [INFO] [stderr] | ~~~~~~~~~~~~ ~~~ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:119:29 [INFO] [stderr] | [INFO] [stderr] 119 | / ... self.stream [INFO] [stderr] 120 | | ... .write_all(format!("250 Hello {}\r\n", arg).as_bytes()) [INFO] [stderr] 121 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 119 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:123:29 [INFO] [stderr] | [INFO] [stderr] 123 | / ... self.stream [INFO] [stderr] 124 | | ... .write_all(b"501 Syntax: HELO hostname\r\n") [INFO] [stderr] 125 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 123 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:141:29 [INFO] [stderr] | [INFO] [stderr] 141 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 141 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:143:29 [INFO] [stderr] | [INFO] [stderr] 143 | / ... self.stream [INFO] [stderr] 144 | | ... .write_all(b"501 Syntax: MAIL From:
\r\n") [INFO] [stderr] 145 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 143 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:168:37 [INFO] [stderr] | [INFO] [stderr] 168 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 168 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:170:37 [INFO] [stderr] | [INFO] [stderr] 170 | / ... self.stream [INFO] [stderr] 171 | | ... .write_all(b"501 Syntax: RCPT To:
\r\n") [INFO] [stderr] 172 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 170 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:176:33 [INFO] [stderr] | [INFO] [stderr] 176 | / ... self.stream [INFO] [stderr] 177 | | ... .write_all(b"503 Error: Send MAIL first\r\n") [INFO] [stderr] 178 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 176 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:184:29 [INFO] [stderr] | [INFO] [stderr] 184 | / ... self.stream [INFO] [stderr] 185 | | ... .write_all(b"503 Error: Send HELO/EHLO first\r\n") [INFO] [stderr] 186 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 184 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:191:29 [INFO] [stderr] | [INFO] [stderr] 191 | / ... self.stream [INFO] [stderr] 192 | | ... .write_all(b"503 Error: Send RCPT first\r\n") [INFO] [stderr] 193 | | ... .await; [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 191 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:198:25 [INFO] [stderr] | [INFO] [stderr] 198 | / self.stream [INFO] [stderr] 199 | | .write_all(b"354 End data with .\r\n") [INFO] [stderr] 200 | | .await; [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 198 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:204:29 [INFO] [stderr] | [INFO] [stderr] 204 | ... self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 204 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:206:29 [INFO] [stderr] | [INFO] [stderr] 206 | ... self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 206 | let _ = self.stream.write_all(b"501 Syntax: NOOP\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:214:25 [INFO] [stderr] | [INFO] [stderr] 214 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 214 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:217:25 [INFO] [stderr] | [INFO] [stderr] 217 | self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 217 | let _ = self.stream.write_all(b"221 Have a nice day!\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:221:25 [INFO] [stderr] | [INFO] [stderr] 221 | / self.stream [INFO] [stderr] 222 | | .write_all(format!("500 Error: Unknown command '{}'\r\n", x).as_bytes()) [INFO] [stderr] 223 | | .await; [INFO] [stderr] | |__________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 221 | let _ = self.stream [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/services/smtpd/mod.rs:230:21 [INFO] [stderr] | [INFO] [stderr] 230 | self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 230 | let _ = self.stream.write_all(b"250 OK\r\n").await; [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `dmailfi_smtp_gateway` (bin "dmailfi_smtp_gateway" test) generated 28 warnings (run `cargo fix --bin "dmailfi_smtp_gateway" --tests` to apply 5 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dmailfi_smtp_gateway-2b3ba91dfc505238) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "981bdf96a2b3782ff1e9356b95526ae5881b52c741482bd85058cf765e3778ae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "981bdf96a2b3782ff1e9356b95526ae5881b52c741482bd85058cf765e3778ae", kill_on_drop: false }` [INFO] [stdout] 981bdf96a2b3782ff1e9356b95526ae5881b52c741482bd85058cf765e3778ae