mirror of
https://github.com/chatmail/core.git
synced 2026-04-29 11:26:29 +03:00
refactor: cleanup remaining Autocrypt Setup Message processing in mimeparser
This commit is contained in:
@@ -125,7 +125,6 @@ pub enum HeaderDef {
|
|||||||
/// [Autocrypt](https://autocrypt.org/) header.
|
/// [Autocrypt](https://autocrypt.org/) header.
|
||||||
Autocrypt,
|
Autocrypt,
|
||||||
AutocryptGossip,
|
AutocryptGossip,
|
||||||
AutocryptSetupMessage,
|
|
||||||
SecureJoin,
|
SecureJoin,
|
||||||
|
|
||||||
/// Deprecated header containing Group-ID in `vg-request-with-auth` message.
|
/// Deprecated header containing Group-ID in `vg-request-with-auth` message.
|
||||||
|
|||||||
@@ -262,8 +262,6 @@ pub enum SystemMessage {
|
|||||||
GroupDescriptionChanged = 70,
|
GroupDescriptionChanged = 70,
|
||||||
}
|
}
|
||||||
|
|
||||||
const MIME_AC_SETUP_FILE: &str = "application/autocrypt-setup";
|
|
||||||
|
|
||||||
impl MimeMessage {
|
impl MimeMessage {
|
||||||
/// Parse a mime message.
|
/// Parse a mime message.
|
||||||
///
|
///
|
||||||
@@ -745,20 +743,8 @@ impl MimeMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Parses system messages.
|
/// Parses system messages.
|
||||||
fn parse_system_message_headers(&mut self, context: &Context) {
|
fn parse_system_message_headers(&mut self) {
|
||||||
if self.get_header(HeaderDef::AutocryptSetupMessage).is_some() && !self.incoming {
|
if let Some(value) = self.get_header(HeaderDef::ChatContent) {
|
||||||
self.parts.retain(|part| {
|
|
||||||
part.mimetype
|
|
||||||
.as_ref()
|
|
||||||
.is_none_or(|mimetype| mimetype.as_ref() == MIME_AC_SETUP_FILE)
|
|
||||||
});
|
|
||||||
|
|
||||||
if self.parts.len() == 1 {
|
|
||||||
self.is_system_message = SystemMessage::AutocryptSetupMessage;
|
|
||||||
} else {
|
|
||||||
warn!(context, "could not determine ASM mime-part");
|
|
||||||
}
|
|
||||||
} else if let Some(value) = self.get_header(HeaderDef::ChatContent) {
|
|
||||||
if value == "location-streaming-enabled" {
|
if value == "location-streaming-enabled" {
|
||||||
self.is_system_message = SystemMessage::LocationStreamingEnabled;
|
self.is_system_message = SystemMessage::LocationStreamingEnabled;
|
||||||
} else if value == "ephemeral-timer-changed" {
|
} else if value == "ephemeral-timer-changed" {
|
||||||
@@ -908,7 +894,7 @@ impl MimeMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn parse_headers(&mut self, context: &Context) -> Result<()> {
|
async fn parse_headers(&mut self, context: &Context) -> Result<()> {
|
||||||
self.parse_system_message_headers(context);
|
self.parse_system_message_headers();
|
||||||
self.parse_avatar_headers(context)?;
|
self.parse_avatar_headers(context)?;
|
||||||
self.parse_videochat_headers();
|
self.parse_videochat_headers();
|
||||||
if self.delivery_report.is_none() {
|
if self.delivery_report.is_none() {
|
||||||
|
|||||||
Reference in New Issue
Block a user