Rename get_headerdef into get_header_value

This commit is contained in:
Alexander Krotov
2020-02-11 01:23:31 +03:00
parent c801775a39
commit 66fdb447f7
5 changed files with 24 additions and 19 deletions

View File

@@ -75,7 +75,7 @@ impl Aheader {
wanted_from: &str, wanted_from: &str,
headers: &[mailparse::MailHeader<'_>], headers: &[mailparse::MailHeader<'_>],
) -> Option<Self> { ) -> Option<Self> {
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) { match Self::from_str(&value) {
Ok(header) => { Ok(header) => {
if addr_cmp(&header.addr, wanted_from) { if addr_cmp(&header.addr, wanted_from) {

View File

@@ -125,7 +125,7 @@ pub fn try_decrypt(
) -> Result<(Option<Vec<u8>>, HashSet<String>)> { ) -> Result<(Option<Vec<u8>>, HashSet<String>)> {
let from = mail let from = mail
.headers .headers
.get_headerdef(HeaderDef::From_)? .get_header_value(HeaderDef::From_)?
.and_then(|from_addr| mailparse::addrparse(&from_addr).ok()) .and_then(|from_addr| mailparse::addrparse(&from_addr).ok())
.and_then(|from| from.extract_single_info()) .and_then(|from| from.extract_single_info())
.map(|from| from.addr) .map(|from| from.addr)

View File

@@ -53,11 +53,11 @@ impl HeaderDef {
} }
pub trait HeaderDefMap { pub trait HeaderDefMap {
fn get_headerdef(&self, headerdef: HeaderDef) -> Result<Option<String>, MailParseError>; fn get_header_value(&self, headerdef: HeaderDef) -> Result<Option<String>, MailParseError>;
} }
impl HeaderDefMap for [MailHeader<'_>] { impl HeaderDefMap for [MailHeader<'_>] {
fn get_headerdef(&self, headerdef: HeaderDef) -> Result<Option<String>, MailParseError> { fn get_header_value(&self, headerdef: HeaderDef) -> Result<Option<String>, MailParseError> {
self.get_first_value(headerdef.get_headername()) self.get_first_value(headerdef.get_headername())
} }
} }
@@ -76,19 +76,22 @@ mod tests {
#[test] #[test]
/// Test that headers are parsed case-insensitively /// Test that headers are parsed case-insensitively
fn headerdef_case() { fn test_get_header_value_case() {
let (headers, _) = let (headers, _) =
mailparse::parse_headers(b"fRoM: Bob\naUtoCryPt-SeTup-MessAge: v99").unwrap(); mailparse::parse_headers(b"fRoM: Bob\naUtoCryPt-SeTup-MessAge: v99").unwrap();
assert_eq!( assert_eq!(
headers headers
.get_headerdef(HeaderDef::AutocryptSetupMessage) .get_header_value(HeaderDef::AutocryptSetupMessage)
.unwrap(), .unwrap(),
Some("v99".to_string()) Some("v99".to_string())
); );
assert_eq!( assert_eq!(
headers.get_headerdef(HeaderDef::From_).unwrap(), headers.get_header_value(HeaderDef::From_).unwrap(),
Some("Bob".to_string()) Some("Bob".to_string())
); );
assert_eq!(headers.get_headerdef(HeaderDef::Autocrypt).unwrap(), None); assert_eq!(
headers.get_header_value(HeaderDef::Autocrypt).unwrap(),
None
);
} }
} }

View File

@@ -1302,7 +1302,7 @@ fn get_fetch_headers(prefetch_msg: &Fetch) -> Result<Vec<mailparse::MailHeader>>
} }
fn prefetch_get_message_id(headers: &[mailparse::MailHeader]) -> Result<String> { fn prefetch_get_message_id(headers: &[mailparse::MailHeader]) -> Result<String> {
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)?) Ok(parse_message_id(&message_id)?)
} else { } else {
Err(Error::Other("prefetch: No message ID found".to_string())) Err(Error::Other("prefetch: No message ID found".to_string()))
@@ -1313,13 +1313,13 @@ fn prefetch_is_reply_to_chat_message(
context: &Context, context: &Context,
headers: &[mailparse::MailHeader], headers: &[mailparse::MailHeader],
) -> Result<bool> { ) -> Result<bool> {
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) { if is_msgrmsg_rfc724_mid_in_list(context, &value) {
return Ok(true); 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) { if is_msgrmsg_rfc724_mid_in_list(context, &value) {
return Ok(true); return Ok(true);
} }
@@ -1333,15 +1333,17 @@ fn prefetch_should_download(
headers: &[mailparse::MailHeader], headers: &[mailparse::MailHeader],
show_emails: ShowEmails, show_emails: ShowEmails,
) -> Result<bool> { ) -> Result<bool> {
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)?; 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. // Autocrypt Setup Message should be shown even if it is from non-chat client.
let is_autocrypt_setup_message = headers let is_autocrypt_setup_message = headers
.get_headerdef(HeaderDef::AutocryptSetupMessage)? .get_header_value(HeaderDef::AutocryptSetupMessage)?
.is_some(); .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 (_contact_id, blocked_contact, origin) = from_field_to_contact_id(context, &from_field)?;
let accepted_contact = origin.is_known(); let accepted_contact = origin.is_known();

View File

@@ -96,7 +96,7 @@ impl MimeMessage {
let message_time = mail let message_time = mail
.headers .headers
.get_headerdef(HeaderDef::Date)? .get_header_value(HeaderDef::Date)?
.and_then(|v| mailparse::dateparse(&v).ok()) .and_then(|v| mailparse::dateparse(&v).ok())
.unwrap_or_default(); .unwrap_or_default();
@@ -782,18 +782,18 @@ impl MimeMessage {
// must be present // must be present
if let Some(_disposition) = report_fields if let Some(_disposition) = report_fields
.get_headerdef(HeaderDef::Disposition) .get_header_value(HeaderDef::Disposition)
.ok() .ok()
.flatten() .flatten()
{ {
if let Some(original_message_id) = report_fields if let Some(original_message_id) = report_fields
.get_headerdef(HeaderDef::OriginalMessageId) .get_header_value(HeaderDef::OriginalMessageId)
.ok() .ok()
.flatten() .flatten()
.and_then(|v| parse_message_id(&v)) .and_then(|v| parse_message_id(&v))
{ {
let additional_message_ids = report_fields let additional_message_ids = report_fields
.get_headerdef(HeaderDef::AdditionalMessageIds) .get_header_value(HeaderDef::AdditionalMessageIds)
.ok() .ok()
.flatten() .flatten()
.map_or_else(Vec::new, |v| { .map_or_else(Vec::new, |v| {
@@ -809,7 +809,7 @@ impl MimeMessage {
warn!( warn!(
context, context,
"ignoring unknown disposition-notification, Message-Id: {:?}", "ignoring unknown disposition-notification, Message-Id: {:?}",
report_fields.get_headerdef(HeaderDef::MessageId).ok() report_fields.get_header_value(HeaderDef::MessageId).ok()
); );
Ok(None) Ok(None)