X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Findexopts.c;h=b78a57b6840996d524e1cdcc9fade0609876f5d2;hp=51b56dd7924d5aef5d7a524eabb0cf5d91411fdf;hb=b22386f353fb30a0d6ccffb32b7339d69f12b85f;hpb=20ff9de24de47e591dd45e7dde0ac10948d6cbf6 diff --git a/lib/indexopts.c b/lib/indexopts.c index 51b56dd7..b78a57b6 100644 --- a/lib/indexopts.c +++ b/lib/indexopts.c @@ -23,21 +23,45 @@ notmuch_indexopts_t * 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; + ret->crypto.decrypt = NOTMUCH_DECRYPT_AUTO; + + char * decrypt_policy; + notmuch_status_t err = notmuch_database_get_config (db, "index.decrypt", &decrypt_policy); + if (err) + return ret; + + if (decrypt_policy) { + if ((!(strcasecmp(decrypt_policy, "true"))) || + (!(strcasecmp(decrypt_policy, "yes"))) || + (!(strcasecmp(decrypt_policy, "1")))) + notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_TRUE); + else if ((!(strcasecmp(decrypt_policy, "false"))) || + (!(strcasecmp(decrypt_policy, "no"))) || + (!(strcasecmp(decrypt_policy, "0")))) + notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_FALSE); + else if (!strcasecmp(decrypt_policy, "nostash")) + notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_NOSTASH); + } + + free (decrypt_policy); + return ret; } notmuch_status_t -notmuch_indexopts_set_try_decrypt (notmuch_indexopts_t *indexopts, - notmuch_bool_t try_decrypt) +notmuch_indexopts_set_decrypt_policy (notmuch_indexopts_t *indexopts, + notmuch_decryption_policy_t decrypt_policy) { if (!indexopts) return NOTMUCH_STATUS_NULL_POINTER; - indexopts->crypto.decrypt = try_decrypt; + indexopts->crypto.decrypt = decrypt_policy; return NOTMUCH_STATUS_SUCCESS; } -notmuch_bool_t -notmuch_indexopts_get_try_decrypt (const notmuch_indexopts_t *indexopts) +notmuch_decryption_policy_t +notmuch_indexopts_get_decrypt_policy (const notmuch_indexopts_t *indexopts) { if (!indexopts) return false;