Assuming that we're using GMime 3.0 or later, and the user has asked for decryption of some sort, we should go ahead and index the cleartext. --- lib/index.cc | 7 +++++++ test/T359-inline-pgp-decryption.sh | 7 +++++++ 2 files changed, 14 insertions(+)
diff --git a/lib/index.cc b/lib/index.cc index 29ede685..49f7cfbf 100644 --- a/lib/index.cc +++ b/lib/index.cc @@ -473,6 +473,13 @@ _index_mime_part (notmuch_message_t *message, #if (GMIME_MAJOR_VERSION >= 3) if (GMIME_IS_TEXT_PART (part) && g_mime_part_get_openpgp_data (GMIME_PART (part)) == GMIME_OPENPGP_DATA_ENCRYPTED) { _notmuch_message_add_term (message, "tag", "encrypted"); + if (_index_encrypted_mime_part(message, indexopts, + content_type, + part)) + return; + /* if decryption on inline PGP encrypted message fails, we + * should still fall through and try indexing the MIME part + * anyway (this is what we did before inline PGP decryption) */ } #endif diff --git a/test/T359-inline-pgp-decryption.sh b/test/T359-inline-pgp-decryption.sh index 314ca786..66b85d5b 100755 --- a/test/T359-inline-pgp-decryption.sh +++ b/test/T359-inline-pgp-decryption.sh @@ -94,4 +94,11 @@ output=$(notmuch search 'sekrit') expected='' test_expect_equal "$output" "$expected" +test_begin_subtest "reindexing cleartext of inline PGP encrypted message should succeed" +test_subtest_broken_gmime_2 +notmuch reindex --decrypt=true id:inline-pgp-encryp...@testsuite.notmuchmail.org +output=$(notmuch search 'sekrit') +expected='thread:0000000000000001 2000-01-01 [1/1] test_su...@notmuchmail.org; inline PGP encrypted message (encrypted inbox unread)' +test_expect_equal "$output" "$expected" + test_done -- 2.15.1 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch