mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-28 05:34:11 +01:00
config: define new option index.try_decrypt
By default, notmuch won't try to decrypt on indexing. With this patch, we make it possible to indicate a per-database preference using the config variable "index.try_decrypt", which by default will be false. At indexing time, the database needs some way to know its internal defaults for how to index encrypted parts. It shouldn't be contingent on an external config file (since that can't be retrieved from the database object itself), so we store it in the database. This behaves similarly to the query.* configurations, which are also stored in the database itself, so we're not introducing any new dependencies by requiring that it be stored in the database.
This commit is contained in:
parent
886c0b1666
commit
d0da7a0a1c
4 changed files with 40 additions and 3 deletions
|
@ -138,6 +138,19 @@ The available configuration items are described below.
|
||||||
|
|
||||||
Default: ``gpg``.
|
Default: ``gpg``.
|
||||||
|
|
||||||
|
**index.try_decrypt**
|
||||||
|
|
||||||
|
**[STORED IN DATABASE]**
|
||||||
|
When indexing an encrypted e-mail message, if this variable is
|
||||||
|
set to true, notmuch will try to decrypt the message and index
|
||||||
|
the cleartext. Be aware that the index is likely sufficient
|
||||||
|
to reconstruct the cleartext of the message itself, so please
|
||||||
|
ensure that the notmuch message index is adequately protected.
|
||||||
|
DO NOT USE ``index.try_decrypt=true`` without considering the
|
||||||
|
security of your index.
|
||||||
|
|
||||||
|
Default: ``false``.
|
||||||
|
|
||||||
**built_with.<name>**
|
**built_with.<name>**
|
||||||
|
|
||||||
Compile time feature <name>. Current possibilities include
|
Compile time feature <name>. Current possibilities include
|
||||||
|
|
|
@ -70,13 +70,15 @@ of its normal activity.
|
||||||
properties will be set on the message as a whole.
|
properties will be set on the message as a whole.
|
||||||
|
|
||||||
If notmuch never tried to decrypt an encrypted message during
|
If notmuch never tried to decrypt an encrypted message during
|
||||||
indexing (which is the default), then this property will not be
|
indexing (which is the default, see ``index.try_decrypt`` in
|
||||||
set on that message.
|
**notmuch-config(1)**), then this property will not be set on that
|
||||||
|
message.
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
========
|
========
|
||||||
|
|
||||||
**notmuch(1)**,
|
**notmuch(1)**,
|
||||||
|
**notmuch-config(1)**,
|
||||||
**notmuch-dump(1)**,
|
**notmuch-dump(1)**,
|
||||||
**notmuch-insert(1)**,
|
**notmuch-insert(1)**,
|
||||||
**notmuch-new(1)**,
|
**notmuch-new(1)**,
|
||||||
|
|
|
@ -23,7 +23,23 @@
|
||||||
notmuch_indexopts_t *
|
notmuch_indexopts_t *
|
||||||
notmuch_database_get_default_indexopts (notmuch_database_t *db)
|
notmuch_database_get_default_indexopts (notmuch_database_t *db)
|
||||||
{
|
{
|
||||||
return talloc_zero (db, notmuch_indexopts_t);
|
notmuch_indexopts_t *ret = talloc_zero (db, notmuch_indexopts_t);
|
||||||
|
if (!ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
char * try_decrypt;
|
||||||
|
notmuch_status_t err = notmuch_database_get_config (db, "index.try_decrypt", &try_decrypt);
|
||||||
|
if (err)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
if (try_decrypt &&
|
||||||
|
((!(strcasecmp(try_decrypt, "true"))) ||
|
||||||
|
(!(strcasecmp(try_decrypt, "yes"))) ||
|
||||||
|
(!(strcasecmp(try_decrypt, "1")))))
|
||||||
|
notmuch_indexopts_set_try_decrypt (ret, true);
|
||||||
|
|
||||||
|
free (try_decrypt);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
notmuch_status_t
|
notmuch_status_t
|
||||||
|
|
|
@ -812,8 +812,14 @@ _item_split (char *item, char **group, char **key)
|
||||||
static bool
|
static bool
|
||||||
_stored_in_db (const char *item)
|
_stored_in_db (const char *item)
|
||||||
{
|
{
|
||||||
|
const char * db_configs[] = {
|
||||||
|
"index.try_decrypt",
|
||||||
|
};
|
||||||
if (STRNCMP_LITERAL (item, "query.") == 0)
|
if (STRNCMP_LITERAL (item, "query.") == 0)
|
||||||
return true;
|
return true;
|
||||||
|
for (size_t i = 0; i < ARRAY_SIZE (db_configs); i++)
|
||||||
|
if (strcmp (item, db_configs[i]) == 0)
|
||||||
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue