From e4f723ec2350c5cb56adf7ced70ec6e851216d85 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Tue, 29 Jul 2025 17:13:05 -0300 Subject: [PATCH 1/2] refactor: Rename add_or_lookup_key_contacts_by_address_list() to add_or_lookup_key_contacts() - It's obvious that addresses are needed to add contacts, so `_by_address_list` looks excessive. - The function only looks up `SELF` by address. - The name was confusing because there's also `lookup_key_contacts_by_address_list()` that actually looks up key contacts by addresses (not only `SELF`). --- src/receive_imf.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/receive_imf.rs b/src/receive_imf.rs index e246166542..a6dc189bdf 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -297,7 +297,7 @@ async fn get_to_and_past_contact_ids( past_member_fingerprints = &[]; } - let pgp_to_ids = add_or_lookup_key_contacts_by_address_list( + let pgp_to_ids = add_or_lookup_key_contacts( context, &mime_parser.recipients, &mime_parser.gossiped_keys, @@ -319,7 +319,7 @@ async fn get_to_and_past_contact_ids( ) .await?; } else { - past_ids = add_or_lookup_key_contacts_by_address_list( + past_ids = add_or_lookup_key_contacts( context, &mime_parser.past_members, &mime_parser.gossiped_keys, @@ -429,7 +429,7 @@ async fn get_to_and_past_contact_ids( context, &mime_parser.recipients, to_member_fingerprints, - chat_id, + None, ) .await? } @@ -3727,7 +3727,7 @@ async fn add_or_lookup_contacts_by_address_list( } /// Looks up contact IDs from the database given the list of recipients. -async fn add_or_lookup_key_contacts_by_address_list( +async fn add_or_lookup_key_contacts( context: &Context, address_list: &[SingleInfo], gossiped_keys: &HashMap, From 967f67eb9cef47fdd8b2fb54cdabeba5a4170714 Mon Sep 17 00:00:00 2001 From: iequidoo Date: Wed, 30 Jul 2025 13:52:17 -0300 Subject: [PATCH 2/2] refactor: Don't call add_or_lookup_key_contacts() in advance Its result isn't needed in all the branches. --- src/receive_imf.rs | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/receive_imf.rs b/src/receive_imf.rs index a6dc189bdf..77c93555b5 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -297,18 +297,16 @@ async fn get_to_and_past_contact_ids( past_member_fingerprints = &[]; } - let pgp_to_ids = add_or_lookup_key_contacts( - context, - &mime_parser.recipients, - &mime_parser.gossiped_keys, - to_member_fingerprints, - Origin::Hidden, - ) - .await?; - match chat_assignment { ChatAssignment::GroupChat { .. } => { - to_ids = pgp_to_ids; + to_ids = add_or_lookup_key_contacts( + context, + &mime_parser.recipients, + &mime_parser.gossiped_keys, + to_member_fingerprints, + Origin::Hidden, + ) + .await?; if let Some(chat_id) = chat_id { past_ids = lookup_key_contacts_by_address_list( @@ -336,7 +334,14 @@ async fn get_to_and_past_contact_ids( ChatAssignment::ExistingChat { chat_id, .. } => { let chat = Chat::load_from_db(context, *chat_id).await?; if chat.is_encrypted(context).await? { - to_ids = pgp_to_ids; + to_ids = add_or_lookup_key_contacts( + context, + &mime_parser.recipients, + &mime_parser.gossiped_keys, + to_member_fingerprints, + Origin::Hidden, + ) + .await?; past_ids = lookup_key_contacts_by_address_list( context, &mime_parser.past_members, @@ -388,6 +393,14 @@ async fn get_to_and_past_contact_ids( .await?; } ChatAssignment::OneOneChat => { + let pgp_to_ids = add_or_lookup_key_contacts( + context, + &mime_parser.recipients, + &mime_parser.gossiped_keys, + to_member_fingerprints, + Origin::Hidden, + ) + .await?; if pgp_to_ids .first() .is_some_and(|contact_id| contact_id.is_some())