diff --git a/src/aheader.rs b/src/aheader.rs index 1fed1a3cf..a87f7be65 100644 --- a/src/aheader.rs +++ b/src/aheader.rs @@ -75,7 +75,7 @@ impl Aheader { wanted_from: &str, headers: &[mailparse::MailHeader<'_>], ) -> Option { - if let Ok(Some(value)) = headers.get_headerdef(HeaderDef::Autocrypt) { + if let Ok(Some(value)) = headers.get_header_value(HeaderDef::Autocrypt) { match Self::from_str(&value) { Ok(header) => { if addr_cmp(&header.addr, wanted_from) { diff --git a/src/e2ee.rs b/src/e2ee.rs index 6be9d9cb2..d9740d11c 100644 --- a/src/e2ee.rs +++ b/src/e2ee.rs @@ -125,7 +125,7 @@ pub fn try_decrypt( ) -> Result<(Option>, HashSet)> { let from = mail .headers - .get_headerdef(HeaderDef::From_)? + .get_header_value(HeaderDef::From_)? .and_then(|from_addr| mailparse::addrparse(&from_addr).ok()) .and_then(|from| from.extract_single_info()) .map(|from| from.addr) diff --git a/src/headerdef.rs b/src/headerdef.rs index a7b16b664..bf4f15b04 100644 --- a/src/headerdef.rs +++ b/src/headerdef.rs @@ -53,11 +53,11 @@ impl HeaderDef { } pub trait HeaderDefMap { - fn get_headerdef(&self, headerdef: HeaderDef) -> Result, MailParseError>; + fn get_header_value(&self, headerdef: HeaderDef) -> Result, MailParseError>; } impl HeaderDefMap for [MailHeader<'_>] { - fn get_headerdef(&self, headerdef: HeaderDef) -> Result, MailParseError> { + fn get_header_value(&self, headerdef: HeaderDef) -> Result, MailParseError> { self.get_first_value(headerdef.get_headername()) } } @@ -76,19 +76,22 @@ mod tests { #[test] /// Test that headers are parsed case-insensitively - fn headerdef_case() { + fn test_get_header_value_case() { let (headers, _) = mailparse::parse_headers(b"fRoM: Bob\naUtoCryPt-SeTup-MessAge: v99").unwrap(); assert_eq!( headers - .get_headerdef(HeaderDef::AutocryptSetupMessage) + .get_header_value(HeaderDef::AutocryptSetupMessage) .unwrap(), Some("v99".to_string()) ); assert_eq!( - headers.get_headerdef(HeaderDef::From_).unwrap(), + headers.get_header_value(HeaderDef::From_).unwrap(), Some("Bob".to_string()) ); - assert_eq!(headers.get_headerdef(HeaderDef::Autocrypt).unwrap(), None); + assert_eq!( + headers.get_header_value(HeaderDef::Autocrypt).unwrap(), + None + ); } } diff --git a/src/imap/mod.rs b/src/imap/mod.rs index 7094473db..8197e9735 100644 --- a/src/imap/mod.rs +++ b/src/imap/mod.rs @@ -1302,7 +1302,7 @@ fn get_fetch_headers(prefetch_msg: &Fetch) -> Result> } fn prefetch_get_message_id(headers: &[mailparse::MailHeader]) -> Result { - if let Some(message_id) = headers.get_headerdef(HeaderDef::MessageId)? { + if let Some(message_id) = headers.get_header_value(HeaderDef::MessageId)? { Ok(parse_message_id(&message_id)?) } else { Err(Error::Other("prefetch: No message ID found".to_string())) @@ -1313,13 +1313,13 @@ fn prefetch_is_reply_to_chat_message( context: &Context, headers: &[mailparse::MailHeader], ) -> Result { - if let Some(value) = headers.get_headerdef(HeaderDef::InReplyTo)? { + if let Some(value) = headers.get_header_value(HeaderDef::InReplyTo)? { if is_msgrmsg_rfc724_mid_in_list(context, &value) { return Ok(true); } } - if let Some(value) = headers.get_headerdef(HeaderDef::References)? { + if let Some(value) = headers.get_header_value(HeaderDef::References)? { if is_msgrmsg_rfc724_mid_in_list(context, &value) { return Ok(true); } @@ -1333,15 +1333,17 @@ fn prefetch_should_download( headers: &[mailparse::MailHeader], show_emails: ShowEmails, ) -> Result { - let is_chat_message = headers.get_headerdef(HeaderDef::ChatVersion)?.is_some(); + let is_chat_message = headers.get_header_value(HeaderDef::ChatVersion)?.is_some(); let is_reply_to_chat_message = prefetch_is_reply_to_chat_message(context, &headers)?; // Autocrypt Setup Message should be shown even if it is from non-chat client. let is_autocrypt_setup_message = headers - .get_headerdef(HeaderDef::AutocryptSetupMessage)? + .get_header_value(HeaderDef::AutocryptSetupMessage)? .is_some(); - let from_field = headers.get_headerdef(HeaderDef::From_)?.unwrap_or_default(); + let from_field = headers + .get_header_value(HeaderDef::From_)? + .unwrap_or_default(); let (_contact_id, blocked_contact, origin) = from_field_to_contact_id(context, &from_field)?; let accepted_contact = origin.is_known(); diff --git a/src/mimeparser.rs b/src/mimeparser.rs index b4448a47a..d09c7eaf7 100644 --- a/src/mimeparser.rs +++ b/src/mimeparser.rs @@ -96,7 +96,7 @@ impl MimeMessage { let message_time = mail .headers - .get_headerdef(HeaderDef::Date)? + .get_header_value(HeaderDef::Date)? .and_then(|v| mailparse::dateparse(&v).ok()) .unwrap_or_default(); @@ -782,18 +782,18 @@ impl MimeMessage { // must be present if let Some(_disposition) = report_fields - .get_headerdef(HeaderDef::Disposition) + .get_header_value(HeaderDef::Disposition) .ok() .flatten() { if let Some(original_message_id) = report_fields - .get_headerdef(HeaderDef::OriginalMessageId) + .get_header_value(HeaderDef::OriginalMessageId) .ok() .flatten() .and_then(|v| parse_message_id(&v)) { let additional_message_ids = report_fields - .get_headerdef(HeaderDef::AdditionalMessageIds) + .get_header_value(HeaderDef::AdditionalMessageIds) .ok() .flatten() .map_or_else(Vec::new, |v| { @@ -809,7 +809,7 @@ impl MimeMessage { warn!( context, "ignoring unknown disposition-notification, Message-Id: {:?}", - report_fields.get_headerdef(HeaderDef::MessageId).ok() + report_fields.get_header_value(HeaderDef::MessageId).ok() ); Ok(None)