From 4e81309315fd71d07f8d6a926484ed53fa61d75f Mon Sep 17 00:00:00 2001 From: link2xt Date: Wed, 30 Sep 2026 19:21:36 +0000 Subject: [PATCH 1/2] refactor: stop excluding COPYUID responses from the logs We do not move the messages out of the inbox anymore, so should not get these responses anyway. --- src/imap.rs | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/src/imap.rs b/src/imap.rs index 824990f695..86daa869d8 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -1457,7 +1457,6 @@ impl Session { fn drain_unsolicited_responses(&self, context: &Context) -> bool { use UnsolicitedResponse::*; use async_imap::imap_proto::Response; - use async_imap::imap_proto::ResponseCode; let folder = self.selected_folder.as_deref().unwrap_or_default(); let mut should_refetch = false; @@ -1472,28 +1471,19 @@ impl Session { } Expunge(_) | Recent(_) => {} - Other(ref response_data) => { - match response_data.parsed() { - Response::Fetch { .. } => { - info!( - context, - "Need to refetch {folder:?}, got unsolicited FETCH {response:?}" - ); - should_refetch = true; - } - - // We are not interested in the following responses and they are are - // sent quite frequently, so, we ignore them without logging them. - Response::Done { - code: Some(ResponseCode::CopyUid(_, _, _)), - .. - } => {} + Other(ref response_data) => match response_data.parsed() { + Response::Fetch { .. } => { + info!( + context, + "Need to refetch {folder:?}, got unsolicited FETCH {response:?}" + ); + should_refetch = true; + } - _ => { - info!(context, "{folder:?}: got unsolicited response {response:?}") - } + _ => { + info!(context, "{folder:?}: got unsolicited response {response:?}") } - } + }, _ => { info!(context, "{folder:?}: got unsolicited response {response:?}") } From 38aaf52d9a42754e90559a18d3cfc479d977b5bd Mon Sep 17 00:00:00 2001 From: link2xt Date: Wed, 30 Sep 2026 18:17:43 +0000 Subject: [PATCH 2/2] chore: update async-imap to 0.12.0 Also upgraded base64 to 0.23 since new async-imap depends on it anyway. --- Cargo.lock | 44 +++++++++++++++++++++++++------------------- Cargo.toml | 4 ++-- deny.toml | 1 + 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 93def568ff..7cc8275e2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -271,19 +271,19 @@ dependencies = [ [[package]] name = "async-imap" -version = "0.11.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a6728e0f7931b36d725ac234fcb02539e9f7888dbeaaa8a18d9ea5792181570" +checksum = "f97b87216c9f0ccc63c516263169085fa34bba25633f6d96c6a9b9ca1fd5f70a" dependencies = [ "async-channel 2.5.0", "async-compression", - "base64", + "base64 0.23.1", "bytes", "chrono", - "futures", + "futures-util", "imap-proto", "log", - "nom 7.1.3", + "nom 8.0.0", "pin-project", "pin-utils", "self_cell", @@ -322,7 +322,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55219982f938e74491ba85dc4e49cefe8096b1e8f49348c67180a7d244988dca" dependencies = [ "anyhow", - "base64", + "base64 0.22.1", "futures", "log", "nom 8.0.0", @@ -435,6 +435,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "base64ct" version = "1.6.0" @@ -832,7 +838,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1f927b07c74ba84c7e5fe4db2baeb3e996ab2688992e39ac68ce3220a677c7e" dependencies = [ - "base64", + "base64 0.22.1", "encoding_rs", ] @@ -1337,7 +1343,7 @@ dependencies = [ "async-native-tls", "async-smtp", "async_zip", - "base64", + "base64 0.23.1", "blake3", "brotli", "bytes", @@ -1439,7 +1445,7 @@ version = "2.63.0-dev" dependencies = [ "anyhow", "async-channel 2.5.0", - "base64", + "base64 0.23.1", "deltachat", "deltachat-contact-tools", "futures", @@ -2940,11 +2946,11 @@ dependencies = [ [[package]] name = "imap-proto" -version = "0.16.5" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de555d9526462b6f9ece826a26fb7c67eca9a0245bd9ff84fa91972a5d5d8856" +checksum = "5ccf963d57074747b455398a1763d174da80bcaba6f51e3671a82252b531a68b" dependencies = [ - "nom 7.1.3", + "nom 8.0.0", ] [[package]] @@ -4180,7 +4186,7 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64", + "base64 0.22.1", "serde", ] @@ -4255,7 +4261,7 @@ dependencies = [ "aes-gcm", "aes-kw", "argon2", - "base64", + "base64 0.22.1", "bitfields", "block-padding", "blowfish", @@ -4534,7 +4540,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d6db66007eac4a0ec8331d0d20c734bd64f6445d64bbaf0d0a27fea7a054e36" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "derive_more 1.0.0", "futures-lite", @@ -5090,7 +5096,7 @@ version = "0.12.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-core", "futures-util", @@ -5696,7 +5702,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78db9c9912c90ea7487f49bc149b329b535806bfa12b740fbade73f573a3d9f" dependencies = [ "aes", - "base64", + "base64 0.22.1", "blake3", "byte_string", "bytes", @@ -5996,7 +6002,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb921f10397d5669e1af6455e9e2d367bf1f9cebcd6b1dd1dc50e19f6a9ac2ac" dependencies = [ - "base64", + "base64 0.22.1", "bounded-integer", "byteorder", "crc", @@ -6420,7 +6426,7 @@ version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fcaf159b4e7a376b05b5bfd77bfd38f3324f5fce751b4213bfc7eaa47affb4e" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-core", "futures-sink", diff --git a/Cargo.toml b/Cargo.toml index 1dc818da68..881de97c02 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,7 @@ ratelimit = { path = "./deltachat-ratelimit" } anyhow = { workspace = true } async-broadcast = "0.7.2" async-channel = { workspace = true } -async-imap = { version = "0.11.3", default-features = false, features = ["runtime-tokio", "compress"] } +async-imap = { version = "0.12.0", default-features = false, features = ["runtime-tokio", "compress"] } async-native-tls = { version = "0.6", default-features = false, features = ["runtime-tokio"] } async-smtp = { version = "0.10.2", default-features = false, features = ["runtime-tokio"] } async_zip = { version = "0.0.18", default-features = false, features = ["deflate", "tokio-fs"] } @@ -180,7 +180,7 @@ harness = false [workspace.dependencies] anyhow = "1" async-channel = "2.5.0" -base64 = "0.22" +base64 = "0.23" chrono = { version = "0.4.44", default-features = false } deltachat-contact-tools = { path = "deltachat-contact-tools" } deltachat-jsonrpc = { path = "deltachat-jsonrpc", default-features = false } diff --git a/deny.toml b/deny.toml index 86333728f6..5aae8fedcf 100644 --- a/deny.toml +++ b/deny.toml @@ -63,6 +63,7 @@ ignore = [ # Please keep this list alphabetically sorted. skip = [ { name = "async-channel", version = "1.9.0" }, + { name = "base64", version = "0.22.1" }, { name = "bitflags", version = "1.3.2" }, { name = "constant_time_eq", version = "0.3.1" }, { name = "cpufeatures", version = "0.2.17" },