lib: index the content type of signature parts

It's useful (*) to be able to easily find messages with certain types
of signatures. Having the mimetype: prefix searches fail for some
content types is also genuinely surprising (*). Index the content type
of signature parts.

While at it, switch to the gmime convenience constants for content and
signature part indexes.

*) At least for developers of email software!
This commit is contained in:
Jani Nikula 2017-09-16 17:59:04 +03:00 committed by David Bremner
parent 30c2761465
commit 55c047ee0b
2 changed files with 7 additions and 5 deletions

View file

@ -398,12 +398,15 @@ _index_mime_part (notmuch_message_t *message,
for (i = 0; i < g_mime_multipart_get_count (multipart); i++) {
if (GMIME_IS_MULTIPART_SIGNED (multipart)) {
/* Don't index the signature. */
if (i == 1)
/* Don't index the signature, but index its content type. */
if (i == GMIME_MULTIPART_SIGNED_SIGNATURE) {
_index_content_type (message,
g_mime_multipart_get_part (multipart, i));
continue;
if (i > 1)
} else if (i != GMIME_MULTIPART_SIGNED_CONTENT) {
_notmuch_database_log (_notmuch_message_database (message),
"Warning: Unexpected extra parts of multipart/signed. Indexing anyway.\n");
"Warning: Unexpected extra parts of multipart/signed. Indexing anyway.\n");
}
}
if (GMIME_IS_MULTIPART_ENCRYPTED (multipart)) {
/* Don't index encrypted parts. */

View file

@ -38,7 +38,6 @@ test_expect_success \
"(mml-secure-message-sign)"'
test_begin_subtest "signed part content-type indexing"
test_subtest_known_broken
output=$(notmuch search mimetype:multipart/signed and mimetype:application/pgp-signature | notmuch_search_sanitize)
test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; test signed message 001 (inbox signed)"