mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
index: avoid indexing legacy-display parts
When we notice a legacy-display part during indexing, it makes more sense to avoid indexing it as part of the message body. Given that the protected subject will already be indexed, there is no need to index this part at all, so we skip over it. If this happens during indexing, we set a property on the message: index.repaired=skip-protected-headers-legacy-display Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
This commit is contained in:
parent
c61e22d5cb
commit
9829533e92
3 changed files with 22 additions and 6 deletions
|
@ -121,6 +121,12 @@ of its normal activity.
|
|||
``index.repaired`` property to note the type of repair(s) it
|
||||
performed.
|
||||
|
||||
``index.repaired=skip-protected-headers-legacy-display`` indicates
|
||||
that when indexing the cleartext of an encrypted message, notmuch
|
||||
skipped over a "legacy-display" text/rfc822-headers part that it
|
||||
found in that message, since it was able to index the built-in
|
||||
protected headers directly.
|
||||
|
||||
SEE ALSO
|
||||
========
|
||||
|
||||
|
|
20
lib/index.cc
20
lib/index.cc
|
@ -435,8 +435,14 @@ _index_mime_part (notmuch_message_t *message,
|
|||
continue;
|
||||
}
|
||||
child = g_mime_multipart_get_part (multipart, i);
|
||||
(void) _notmuch_message_crypto_potential_payload (msg_crypto, child, part, i);
|
||||
_index_mime_part (message, indexopts, child, msg_crypto);
|
||||
GMimeObject *toindex = child;
|
||||
if (_notmuch_message_crypto_potential_payload (msg_crypto, child, part, i) &&
|
||||
msg_crypto->decryption_status == NOTMUCH_MESSAGE_DECRYPTED_FULL) {
|
||||
toindex = _notmuch_repair_crypto_payload_skip_legacy_display (child);
|
||||
if (toindex != child)
|
||||
notmuch_message_add_property (message, "index.repaired", "skip-protected-headers-legacy-display");
|
||||
}
|
||||
_index_mime_part (message, indexopts, toindex, msg_crypto);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -573,8 +579,14 @@ _index_encrypted_mime_part (notmuch_message_t *message,
|
|||
}
|
||||
g_object_unref (decrypt_result);
|
||||
}
|
||||
_notmuch_message_crypto_potential_payload (msg_crypto, clear, GMIME_OBJECT (encrypted_data), GMIME_MULTIPART_ENCRYPTED_CONTENT);
|
||||
_index_mime_part (message, indexopts, clear, msg_crypto);
|
||||
GMimeObject *toindex = clear;
|
||||
if (_notmuch_message_crypto_potential_payload (msg_crypto, clear, GMIME_OBJECT (encrypted_data), GMIME_MULTIPART_ENCRYPTED_CONTENT) &&
|
||||
msg_crypto->decryption_status == NOTMUCH_MESSAGE_DECRYPTED_FULL) {
|
||||
toindex = _notmuch_repair_crypto_payload_skip_legacy_display (clear);
|
||||
if (toindex != clear)
|
||||
notmuch_message_add_property (message, "index.repaired", "skip-protected-headers-legacy-display");
|
||||
}
|
||||
_index_mime_part (message, indexopts, toindex, msg_crypto);
|
||||
g_object_unref (clear);
|
||||
|
||||
status = notmuch_message_add_property (message, "index.decryption", "success");
|
||||
|
|
|
@ -148,12 +148,10 @@ test_json_nodes <<<"$output" \
|
|||
'no_legacy_display:["original"]["body"][0]["content"][1]["content-type"]="text/plain"'
|
||||
|
||||
test_begin_subtest "do not treat legacy-display part as body when indexing"
|
||||
test_subtest_known_broken
|
||||
output=$(notmuch search --output=messages body:interrupting)
|
||||
test_expect_equal "$output" ''
|
||||
|
||||
test_begin_subtest "identify message that had a legacy display part skipped during indexing"
|
||||
test_subtest_known_broken
|
||||
output=$(notmuch search --output=messages property:index.repaired=skip-protected-headers-legacy-display)
|
||||
test_expect_equal "$output" id:protected-with-legacy-display@crypto.notmuchmail.org
|
||||
|
||||
|
|
Loading…
Reference in a new issue