Fix memory leak in bluesky_block_fetch.
[bluesky.git] / bluesky / init.c
index 4b7ec93..9fb9332 100644 (file)
 
 BlueSkyOptions bluesky_options;
 
+/* Environment variables that can be used to initialize settings. */
+static struct {
+    const char *env;
+    int *option;
+} option_table[] = {
+    {"BLUESKY_OPT_SYNC_STORES", &bluesky_options.synchronous_stores},
+    {"BLUESKY_OPT_WRITETHROUGH", &bluesky_options.writethrough_cache},
+    {"BLUESKY_OPT_SYNC_INODE_FETCH", &bluesky_options.sync_inode_fetches},
+    {"BLUESKY_OPT_SYNC_FRONTENDS", &bluesky_options.sync_frontends},
+    {NULL, NULL}
+};
+
 /* BlueSky library initialization. */
 
 void bluesky_store_init_s3(void);
+void bluesky_store_init_kv(void);
 
 /* Initialize the BlueSky library and dependent libraries. */
 void bluesky_init(void)
@@ -25,8 +38,16 @@ void bluesky_init(void)
     g_thread_init(NULL);
     bluesky_crypt_init();
 
-    //bluesky_options.synchronous_stores = 1;
+    for (int i = 0; option_table[i].env != NULL; i++) {
+        const char *val = getenv(option_table[i].env);
+        if (val != NULL) {
+            int v = atoi(val);
+            g_print("Option %s set to %d\n", option_table[i].env, v);
+            *option_table[i].option = atoi(val);
+        }
+    }
 
     bluesky_store_init();
+    bluesky_store_init_kv();
     bluesky_store_init_s3();
 }