mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 17:36:29 +03:00
refactor: less mut variables in MimeFactory::render()
This commit is contained in:
@@ -483,7 +483,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
encode_words(&subject_str)
|
encode_words(&subject_str)
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut message = match self.loaded {
|
let message = match self.loaded {
|
||||||
Loaded::Message { .. } => {
|
Loaded::Message { .. } => {
|
||||||
self.render_message(&mut protected_headers, &mut unprotected_headers, &grpimage)
|
self.render_message(&mut protected_headers, &mut unprotected_headers, &grpimage)
|
||||||
.await?
|
.await?
|
||||||
@@ -533,6 +533,11 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
|
|
||||||
let mut is_gossiped = false;
|
let mut is_gossiped = false;
|
||||||
|
|
||||||
|
// Store protected headers in the inner message.
|
||||||
|
let mut message = protected_headers
|
||||||
|
.into_iter()
|
||||||
|
.fold(message, |message, header| message.header(header));
|
||||||
|
|
||||||
let outer_message = if is_encrypted {
|
let outer_message = if is_encrypted {
|
||||||
// Add gossip headers in chats with multiple recipients
|
// Add gossip headers in chats with multiple recipients
|
||||||
if peerstates.len() > 1 && self.should_do_gossip().await {
|
if peerstates.len() > 1 && self.should_do_gossip().await {
|
||||||
@@ -547,11 +552,6 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store protected headers in the inner message.
|
|
||||||
for header in protected_headers.into_iter() {
|
|
||||||
message = message.header(header);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set the appropriate Content-Type for the inner message.
|
// Set the appropriate Content-Type for the inner message.
|
||||||
let mut existing_ct = message
|
let mut existing_ct = message
|
||||||
.get_header("Content-Type".to_string())
|
.get_header("Content-Type".to_string())
|
||||||
@@ -561,21 +561,21 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
if !existing_ct.ends_with(';') {
|
if !existing_ct.ends_with(';') {
|
||||||
existing_ct += ";";
|
existing_ct += ";";
|
||||||
}
|
}
|
||||||
message = message.replace_header(Header::new(
|
let message = message.replace_header(Header::new(
|
||||||
"Content-Type".to_string(),
|
"Content-Type".to_string(),
|
||||||
format!("{} protected-headers=\"v1\";", existing_ct),
|
format!("{} protected-headers=\"v1\";", existing_ct),
|
||||||
));
|
));
|
||||||
|
|
||||||
// Set the appropriate Content-Type for the outer message
|
// Set the appropriate Content-Type for the outer message
|
||||||
let mut outer_message = PartBuilder::new().header((
|
let outer_message = PartBuilder::new().header((
|
||||||
"Content-Type".to_string(),
|
"Content-Type".to_string(),
|
||||||
"multipart/encrypted; protocol=\"application/pgp-encrypted\"".to_string(),
|
"multipart/encrypted; protocol=\"application/pgp-encrypted\"".to_string(),
|
||||||
));
|
));
|
||||||
|
|
||||||
// Store the unprotected headers on the outer message.
|
// Store the unprotected headers on the outer message.
|
||||||
for header in unprotected_headers.into_iter() {
|
let outer_message = unprotected_headers
|
||||||
outer_message = outer_message.header(header);
|
.into_iter()
|
||||||
}
|
.fold(outer_message, |message, header| message.header(header));
|
||||||
|
|
||||||
if std::env::var(crate::DCC_MIME_DEBUG).is_ok() {
|
if std::env::var(crate::DCC_MIME_DEBUG).is_ok() {
|
||||||
info!(self.context, "mimefactory: outgoing message mime:");
|
info!(self.context, "mimefactory: outgoing message mime:");
|
||||||
@@ -587,7 +587,7 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
.encrypt(self.context, min_verified, message, peerstates)
|
.encrypt(self.context, min_verified, message, peerstates)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
outer_message = outer_message
|
outer_message
|
||||||
.child(
|
.child(
|
||||||
// Autocrypt part 1
|
// Autocrypt part 1
|
||||||
PartBuilder::new()
|
PartBuilder::new()
|
||||||
@@ -609,18 +609,11 @@ impl<'a, 'b> MimeFactory<'a, 'b> {
|
|||||||
.body(encrypted)
|
.body(encrypted)
|
||||||
.build(),
|
.build(),
|
||||||
)
|
)
|
||||||
.header(("Subject".to_string(), "...".to_string()));
|
.header(("Subject".to_string(), "...".to_string()))
|
||||||
|
|
||||||
outer_message
|
|
||||||
} else {
|
} else {
|
||||||
// In the unencrypted case, we add all headers to the outer message.
|
unprotected_headers
|
||||||
for header in protected_headers.into_iter() {
|
.into_iter()
|
||||||
message = message.header(header);
|
.fold(message, |message, header| message.header(header))
|
||||||
}
|
|
||||||
for header in unprotected_headers.into_iter() {
|
|
||||||
message = message.header(header);
|
|
||||||
}
|
|
||||||
message
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let MimeFactory {
|
let MimeFactory {
|
||||||
|
|||||||
Reference in New Issue
Block a user