mirror of
https://github.com/chatmail/core.git
synced 2026-04-28 19:06:35 +03:00
Fix: Also show the hop_info for encrypted messages (#2923)
Before, the hop_info was shown only for unencrypted messages. Credits: The bug was noticed by link2xt Follow-up for #2751
This commit is contained in:
@@ -769,13 +769,8 @@ mod tests {
|
||||
}
|
||||
|
||||
#[async_std::test]
|
||||
async fn test_parse_receive_headers_integration() -> anyhow::Result<()> {
|
||||
let t = TestContext::new_alice().await;
|
||||
t.set_config(Config::ShowEmails, Some("2")).await?;
|
||||
async fn test_parse_receive_headers_integration() {
|
||||
let raw = include_bytes!("../test-data/message/mail_with_cc.txt");
|
||||
dc_receive_imf(&t, raw, "INBOX", 1, false).await.unwrap();
|
||||
let g = t.get_last_msg().await;
|
||||
|
||||
let expected = r"State: Fresh
|
||||
|
||||
hi
|
||||
@@ -785,14 +780,39 @@ Last seen as: INBOX/1
|
||||
|
||||
Hop: From: localhost; By: hq5.merlinux.eu; Date: Sat, 14 Sep 2019 17:00:22 +0000
|
||||
Hop: From: hq5.merlinux.eu; By: hq5.merlinux.eu; Date: Sat, 14 Sep 2019 17:00:25 +0000";
|
||||
let result = get_msg_info(&t, g.id).await.unwrap();
|
||||
// little hack to ignore the first row of a parsed email because it contains a
|
||||
// send time that depends and the test runtime which makes it impossible to
|
||||
// compare with a static string
|
||||
let capped_result = &result[result.find("State").unwrap()..];
|
||||
check_parse_receive_headers_integration(raw, expected).await;
|
||||
|
||||
let raw = include_bytes!("../test-data/message/encrypted_with_received_headers.eml");
|
||||
let expected = "State: Fresh, Encrypted
|
||||
|
||||
Re: Message from alice@example.org
|
||||
|
||||
hi back\r\n\
|
||||
\r\n\
|
||||
-- \r\n\
|
||||
Sent with my Delta Chat Messenger: https://delta.chat
|
||||
|
||||
Message-ID: Mr.adQpEwndXLH.LPDdlFVJ7wG@example.net
|
||||
Last seen as: INBOX/1
|
||||
|
||||
Hop: From: [127.0.0.1]; By: mail.example.org; Date: Mon, 27 Dec 2021 11:21:21 +0000
|
||||
Hop: From: mout.example.org; By: hq5.example.org; Date: Mon, 27 Dec 2021 11:21:22 +0000
|
||||
Hop: From: hq5.example.org; By: hq5.example.org; Date: Mon, 27 Dec 2021 11:21:22 +0000";
|
||||
check_parse_receive_headers_integration(raw, expected).await;
|
||||
}
|
||||
|
||||
async fn check_parse_receive_headers_integration(raw: &[u8], expected: &str) {
|
||||
let t = TestContext::new_alice().await;
|
||||
t.set_config(Config::ShowEmails, Some("2")).await.unwrap();
|
||||
dc_receive_imf(&t, raw, "INBOX", 1, false).await.unwrap();
|
||||
let msg = t.get_last_msg().await;
|
||||
let msg_info = get_msg_info(&t, msg.id).await.unwrap();
|
||||
|
||||
// Ignore the first rows of the msg_info because they contain a
|
||||
// received time that depends on the test time which makes it impossible to
|
||||
// compare with a static string
|
||||
let capped_result = &msg_info[msg_info.find("State").unwrap()..];
|
||||
assert_eq!(expected, capped_result);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -165,6 +165,7 @@ impl MimeMessage {
|
||||
.get_header_value(HeaderDef::Date)
|
||||
.and_then(|v| mailparse::dateparse(&v).ok())
|
||||
.unwrap_or_default();
|
||||
let hop_info = parse_receive_headers(&mail.get_headers());
|
||||
|
||||
let mut headers = Default::default();
|
||||
let mut recipients = Default::default();
|
||||
@@ -296,7 +297,7 @@ impl MimeMessage {
|
||||
footer: None,
|
||||
is_mime_modified: false,
|
||||
decoded_data: Vec::new(),
|
||||
hop_info: parse_receive_headers(&mail.get_headers()),
|
||||
hop_info,
|
||||
};
|
||||
|
||||
match partial {
|
||||
|
||||
87
test-data/message/encrypted_with_received_headers.eml
Normal file
87
test-data/message/encrypted_with_received_headers.eml
Normal file
@@ -0,0 +1,87 @@
|
||||
Return-Path: <bob@example.org>
|
||||
Delivered-To: alice@example.org
|
||||
Received: from hq5.example.org
|
||||
by hq5.example.org with LMTP
|
||||
id ODfyL7KhyWEANgAAPzvFDg
|
||||
(envelope-from <bob@example.org>)
|
||||
for <bob@example.org>; Mon, 27 Dec 2021 12:21:22 +0100
|
||||
Received: from mout.example.org (mout.example.org [212.227.17.22])
|
||||
by hq5.example.org (Postfix) with ESMTPS id 45BAF27A0001
|
||||
for <bob@example.org>; Mon, 27 Dec 2021 12:21:22 +0100 (CET)
|
||||
Received: from [127.0.0.1] ([217.80.24.163]) by mail.example.org (mrgmx105
|
||||
[212.227.17.168]) with ESMTPSA (Nemesis) id 1MF3HU-1nCnTl33U0-00FXCF; Mon, 27
|
||||
Dec 2021 12:21:21 +0100
|
||||
Subject: ...
|
||||
MIME-Version: 1.0
|
||||
Date: Mon, 27 Dec 2021 13:12:03 +0000
|
||||
Chat-Version: 1.0
|
||||
Autocrypt: addr=bob@example.net; prefer-encrypt=mutual;
|
||||
keydata=xsBNBF4wx1cBCADOwLS/xCd8iKDWUsyTfVzWby+ZGKPpamPTvdj0GFgnf0B1EBaA5//PjA
|
||||
zbK5iKio6QNEmZagzJPkXPByJcAIRUm0T16tqDtCvxm+H93YEXpHi/XWOeJw9kohATSqUtsRO0pFJe
|
||||
DvPiMTmQrEmHYoWDSQBfCrowZdvnMAlbJ9JjYOngcMeTxc0jxmPs5s17yFC+1OWu4fwWCyUM3wy1Jz
|
||||
dKTcDWryrSkvmgFdUqJ7pJDk1HFTt+x9tvQlK3un9BXiRwv0u0zDSuI8eDH/dRLA4UL9Pq6vmJmBam
|
||||
e1BPsE1PA7VzeTSJR2ooJXMT6o2AmH8PPUfRkv3OiWuh7LM5FSpHABEBAAHNETxib2JAZXhhbXBsZS
|
||||
5uZXQ+wsCJBBABCAAzAhkBBQJeMMduAhsDBAsJCAcGFQgJCgsCAxYCARYhBMzLWqn24RQclDFl8dsY
|
||||
sYy89wSHAAoJENsYsYy89wSH9oIIALbpmicuVghM3CloiCgJhPEFLFMaQZRDV/KCVVtBcHAhw6d42q
|
||||
8T50mhs+W3Va5E37DN+wcenj8CgeGPQY3kPp2cnZruYtLhLkZ1+VEay5BQFUMb8kY21XrNTQQET8vc
|
||||
0L8cCLQ7RCgm1tGiFVp1nqbjmGUdoru90ksoufWfoqVPjNrW+9eHFvY/Z7PqchCdMnbKOJiwwv4E3N
|
||||
DTySZ1UVZnDztGy95Aa8OZ3cntvbq4JVi7S+N38rRPPPzpZKx+M4DUGfDAoaq7O/Xemyk1sP6C/NgQ
|
||||
vS8rri54PgkMgKSS4TyyEzdM+fzeNYFPXFGTbgj4p0pSueQV7/JUfYHRfe3OwE0EXjDHVwEIAKIHgS
|
||||
2yI2niSCN1tqcbLvkhLrEJCVcpGxmA7asl1flwWYrGOBhNJE2sCuZqkofqw6qrgsQ4GFgUU5xmcBCq
|
||||
IZ49jRu+aY38lT4WDFHSbe/mGtaIhb2ZYK6zo9W7Y3r6ud8hbUKJTDfl9qEvJpX/Y0syMjwng8SZNT
|
||||
dYMWgAE4NwcgMgdU3dMA3RT6ePJ4vKs38hmXmInLyZce+GJzmo2tpZyP8viPS7JpqojoCPB3G5h9aH
|
||||
eakp1Y4XKQaExANeWCyBJEhNwtNEOVEpQ0txFYPyDrtxV5y5e79IUP418r/PHsnH6UnxXGzB6LfVbS
|
||||
eEyDyKEl+w0PrlNklySomTZFUAEQEAAcLAdgQYAQgAIAUCXjDHbgIbDBYhBMzLWqn24RQclDFl8dsY
|
||||
sYy89wSHAAoJENsYsYy89wSHVCIIAIH694HkQLXRAJlXmi8K/xMVP96ywJovL/B5l4S/vk/iR4P1lY
|
||||
sF55A3Z2PK/iFtwAgVsppcBIPBlqSI0GPDMvEIxj7UFOQfQzVpDes29wG8grHJEJqI/4TlRjOacxTG
|
||||
aJ5fIMsLXJD6nLBuoN5Z6zm3LjqIyOx4ZGrwradPO95OMGT2Xll3YNzUqSWe33RJLqNQ5ea9I7+qvK
|
||||
nW5Z9Yt5nQwOo8yD+f5fql8904B3eAyLqxgkdLmngAWmYhc7KOaKdAsx7TXBAKsoeHk51OPk59u7Eb
|
||||
X35HWD6snl/phJdUYDXiddyYN/n2ZY9g80ycle2JfgpfrQGlh7oJqgCjZuk=
|
||||
Message-ID: <Mr.adQpEwndXLH.LPDdlFVJ7wG@example.net>
|
||||
To: <alice@example.org>
|
||||
From: <bob@example.net>
|
||||
Content-Type: multipart/encrypted; protocol="application/pgp-encrypted";
|
||||
boundary="M1Jorju4VotNmLKKE0sfOXoILeBrPT"
|
||||
|
||||
|
||||
--M1Jorju4VotNmLKKE0sfOXoILeBrPT
|
||||
Content-Type: application/pgp-encrypted
|
||||
Content-Description: PGP/MIME version identification
|
||||
|
||||
Version: 1
|
||||
|
||||
|
||||
--M1Jorju4VotNmLKKE0sfOXoILeBrPT
|
||||
Content-Type: application/octet-stream; name="encrypted.asc"
|
||||
Content-Description: OpenPGP encrypted message
|
||||
Content-Disposition: inline; filename="encrypted.asc";
|
||||
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
wU4D5tq63hTeebASAQdAvnEfGvGoq5gqUvdfaQYTaYEpOGE/PwfwDmoP0dMoAHgg
|
||||
rjw3qVEAlAkvEjr6zZ55GTUFCPL+PTbePTCLXvNeFvjBwEwD49jcm8SO4yIBCACU
|
||||
Xxzv2wWPEXcHv3IC068E1maFYJgjbL4UUqEnepyQeRw6X4hqhivR1t+Sq5jtSB90
|
||||
ywDKf/z3gNytjUYwgWL0wC7hRc9HoctXf/j6pIGMui2FqyzOxmbD1E99lFvexDbo
|
||||
9qx47bFqC47HTc3pyOBHgnCqNsfLwRoBz+BMtpLOU8TeJeA1LanrXDPLxQoExitc
|
||||
CpdmrlpVXmLbgQ7h/tT7dwidQ8xMB5J4h/gXzaSrrPI8E5HVFUEp0nt1G0sRsMFZ
|
||||
HftxsyucK+GSppaU4mPQ5KgLjztY9Hd67f/XFLsJpU0Gxq8aRrMh43WzsM9kgAUB
|
||||
Gj6WW5KH/8gTsjNqMgPC0sHSATYf3TgPs9w2R7ZawiLDfYCRugzWuKwajpMBlt76
|
||||
Sa8XFOg53QPzgK2lIm4jzRCT7bmFXQ+jNn5i8/XsgNohsGCbTxfU37ieAX/RBPtj
|
||||
S4N2RwbMmNr+8PnZaEXz8MKAG1Ptpl3oceqJ8uUXtC2DK8SuGXkTumJYVM1qTNzx
|
||||
Y3T9xFuu56b6sEPQZPrbjdK9hP7KI91vsakbLa9KiNGDFxu/YtO9fM+CT2F+9geN
|
||||
Q4DPYuq/FMLvztjMm27cYT0jPU3sBCkxtb1nsxJViEo5DsFBZA5Xo4pg/waGbCc/
|
||||
u6C7tesb+hf/DgU76UsUKFQGMX6KDNqNiyiWp4nA6c8i5rIh0IXEk97JG6tGLhSc
|
||||
yMdsj59F9vTMFLuFFNCuLGyX9y/2JE2VKfPRbOwspmrbvg9yVLhdyFkxuv+M+cWv
|
||||
tj6E2oL3HhmJXSIbWbWH80c0Q5UUH9Z0tI2cxQZTvQxegnnnJ+VZmQAs2S5nZxds
|
||||
74/Wk0Gf4HHFn2jEDkaMEP4S1W6pvdowkzv7FnQ/3bFdEKGHNrNgZoPNXHh3eM+L
|
||||
HiY8Opx4vsRK5ia/1TbVkzyJtihL5y5LupS7PRXjjLlXjxbrZxQIpMztuC29lgMD
|
||||
Da5+F2hcrQEd2oDv/67s54+IkuBdTTM3YwXy6NJ0NtEVcEfiGILGoNpeBF5ppTgU
|
||||
N4ep54h0PYO/L8xLkzNrvIbJGfquYnKhgRicBNPyrPiDlB/1CmfTIE/K9jJosigV
|
||||
/jEQ2dSlDILFElmGCGRnb/t21PhWPhmiNcSaYdQKhjTf4LgYlBXP57YsEMdo+HAl
|
||||
koaQzcdV8os3PeBeFgQi11B2nOSoq0gHmto6lWZnZC7dIsJwI8cq6A/49WLKUFNR
|
||||
sO+twA==
|
||||
=Dvgk
|
||||
-----END PGP MESSAGE-----
|
||||
|
||||
|
||||
--M1Jorju4VotNmLKKE0sfOXoILeBrPT--
|
||||
Reference in New Issue
Block a user