X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Findexopts.c;h=1e8d180e8af7bdf54d784b46876e5b843f111c62;hp=15c31d249620b8c33caa53ed0469e63cd4029262;hb=HEAD;hpb=d0da7a0a1c24b937eb754e8f73e5cf7e3857f24a diff --git a/lib/indexopts.c b/lib/indexopts.c index 15c31d24..2ffd1942 100644 --- a/lib/indexopts.c +++ b/lib/indexopts.c @@ -20,42 +20,56 @@ #include "notmuch-private.h" +struct _notmuch_indexopts { + _notmuch_crypto_t crypto; +}; + notmuch_indexopts_t * notmuch_database_get_default_indexopts (notmuch_database_t *db) { notmuch_indexopts_t *ret = talloc_zero (db, notmuch_indexopts_t); - if (!ret) + + 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); - char * try_decrypt; - notmuch_status_t err = notmuch_database_get_config (db, "index.try_decrypt", &try_decrypt); if (err) - return ret; + return NULL; - if (try_decrypt && - ((!(strcasecmp(try_decrypt, "true"))) || - (!(strcasecmp(try_decrypt, "yes"))) || - (!(strcasecmp(try_decrypt, "1"))))) - notmuch_indexopts_set_try_decrypt (ret, true); + 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 (try_decrypt); + 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) + 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) + if (! indexopts) return false; return indexopts->crypto.decrypt; }