]> git.cworth.org Git - notmuch/blobdiff - lib/indexopts.c
lib: convert notmuch decryption policy to an enum
[notmuch] / lib / indexopts.c
index 2f9b841b3c90d210a9e8f35c5da2a26e395dc916..78f533916f2a995f0da70df25ec42812caff4ef9 100644 (file)
 #include "notmuch-private.h"
 
 notmuch_indexopts_t *
-notmuch_database_get_default_indexopts (notmuch_database_t unused (*db))
+notmuch_database_get_default_indexopts (notmuch_database_t *db)
 {
-    return NULL;
+    notmuch_indexopts_t *ret = talloc_zero (db, notmuch_indexopts_t);
+    if (!ret)
+       return ret;
+    ret->crypto.decrypt = NOTMUCH_DECRYPT_FALSE;
+
+    char * decrypt_policy;
+    notmuch_status_t err = notmuch_database_get_config (db, "index.decrypt", &decrypt_policy);
+    if (err)
+       return ret;
+
+    if (decrypt_policy &&
+       ((!(strcasecmp(decrypt_policy, "true"))) ||
+        (!(strcasecmp(decrypt_policy, "yes"))) ||
+        (!(strcasecmp(decrypt_policy, "1")))))
+       notmuch_indexopts_set_decrypt_policy (ret, NOTMUCH_DECRYPT_TRUE);
+
+    free (decrypt_policy);
+    return ret;
+}
+
+notmuch_status_t
+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 = decrypt_policy;
+    return NOTMUCH_STATUS_SUCCESS;
+}
+
+notmuch_decryption_policy_t
+notmuch_indexopts_get_decrypt_policy (const notmuch_indexopts_t *indexopts)
+{
+    if (!indexopts)
+       return false;
+    return indexopts->crypto.decrypt;
 }
 
 void