From f5f8b8e018023919bb406938d0ffaa7b53cf5086 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Mon, 18 Sep 2023 17:24:58 +0200 Subject: [PATCH] attach to child --- src/part/composite.rs | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/src/part/composite.rs b/src/part/composite.rs index 402ecc9..02d1180 100644 --- a/src/part/composite.rs +++ b/src/part/composite.rs @@ -162,7 +162,6 @@ pub fn message<'a>( m: mime::MIME<'a, mime::r#type::DeductibleMessage>, ) -> impl Fn(&'a [u8]) -> IResult<&'a [u8], Message<'a>> { move |input: &[u8]| { - let mut parent_mime = m.clone(); let orig = input; // parse header fields @@ -176,8 +175,8 @@ pub fn message<'a>( // aggregate header fields let (naive_mime, imf) = part::field::split_and_build(&headers); - // Bind headers to parent mime object - parent_mime.fields = parent_mime.fields.with_kv(headers); + // Bind headers to mime + let naive_mime = naive_mime.with_kv(headers); // interpret headers to choose the child mime type let in_mime = naive_mime @@ -196,7 +195,7 @@ pub fn message<'a>( Ok(( input, Message { - mime: parent_mime, + mime: m.clone(), imf, raw_part, raw_headers, @@ -440,25 +439,7 @@ OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO
Ok(( &[][..], Message { - mime: mime::MIME { - interpreted_type: base_mime.interpreted_type, - fields: mime::NaiveMIME { - kv: vec![ - header::Field::Good(header::Kv2(&b"Date"[..], &b"Sat, 8 Jul 2023 07:14:29 +0200"[..])), - header::Field::Good(header::Kv2(&b"From"[..], &b"Grrrnd Zero "[..])), - header::Field::Good(header::Kv2(&b"To"[..], &b"John Doe "[..])), - header::Field::Good(header::Kv2(&b"CC"[..], &b"=?ISO-8859-1?Q?Andr=E9?= Pirard "[..])), - header::Field::Good(header::Kv2(&b"Subject"[..], &b"=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\n =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="[..])), - header::Field::Good(header::Kv2(&b"X-Unknown"[..], &b"something something"[..])), - header::Field::Bad(&b"Bad entry\n on multiple lines\n"[..]), - header::Field::Good(header::Kv2(&b"Message-ID"[..], &b""[..])), - header::Field::Good(header::Kv2(&b"MIME-Version"[..], &b"1.0"[..])), - header::Field::Good(header::Kv2(&b"Content-Type"[..], &b"multipart/alternative;\n boundary=\"b1_e376dc71bafc953c0b0fdeb9983a9956\""[..])), - header::Field::Good(header::Kv2(&b"Content-Transfer-Encoding"[..], &b"7bit"[..])), - ], - ..base_mime.fields - }, - }, + mime: base_mime, raw_part: fullmail, raw_headers: hdrs, raw_body: body, @@ -545,6 +526,19 @@ OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO
] }), raw: hdrs, + kv: vec![ + header::Field::Good(header::Kv2(&b"Date"[..], &b"Sat, 8 Jul 2023 07:14:29 +0200"[..])), + header::Field::Good(header::Kv2(&b"From"[..], &b"Grrrnd Zero "[..])), + header::Field::Good(header::Kv2(&b"To"[..], &b"John Doe "[..])), + header::Field::Good(header::Kv2(&b"CC"[..], &b"=?ISO-8859-1?Q?Andr=E9?= Pirard "[..])), + header::Field::Good(header::Kv2(&b"Subject"[..], &b"=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\n =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?="[..])), + header::Field::Good(header::Kv2(&b"X-Unknown"[..], &b"something something"[..])), + header::Field::Bad(&b"Bad entry\n on multiple lines\n"[..]), + header::Field::Good(header::Kv2(&b"Message-ID"[..], &b""[..])), + header::Field::Good(header::Kv2(&b"MIME-Version"[..], &b"1.0"[..])), + header::Field::Good(header::Kv2(&b"Content-Type"[..], &b"multipart/alternative;\n boundary=\"b1_e376dc71bafc953c0b0fdeb9983a9956\""[..])), + header::Field::Good(header::Kv2(&b"Content-Transfer-Encoding"[..], &b"7bit"[..])), + ], ..mime::NaiveMIME::default() }, },