aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJani Nikula <jani@nikula.org>2017-09-16 17:59:04 +0300
committerDavid Bremner <david@tethera.net>2017-09-17 20:01:00 -0300
commit55c047ee0b0c9081ead76925ee1adaeb858264dd (patch)
tree1c9614df13484cbed2ceff42db12525b5819056a
parent30c276146596769177e1e3c200d8bb94d4cf8531 (diff)
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!
-rw-r--r--lib/index.cc11
-rwxr-xr-xtest/T350-crypto.sh1
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/index.cc b/lib/index.cc
index 64bc92a5..0beaae62 100644
--- a/lib/index.cc
+++ b/lib/index.cc
@@ -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. */
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 2f1f9ce4..b8f86256 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -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)"