]> the.earth.li Git - onak.git/blobdiff - keydb_dynamic.c
Try to load backends from current dir if none specified.
[onak.git] / keydb_dynamic.c
index ca489ae46b2b70a2a7b4febc172d57211ad0477a..6907144581619699780b671e4381975d36004388 100644 (file)
@@ -39,13 +39,18 @@ bool load_backend(void)
                close_backend();
        }
 
+       if (!config.db_backend) {
+               logthing(LOGTHING_CRITICAL, "No database backend defined.");
+               exit(EXIT_FAILURE);
+       }
+
        if (config.backends_dir == NULL) {
                soname = malloc(strlen(config.db_backend)
-                       + strlen("/libkeydb_")
+                       + strlen("./libkeydb_")
                        + strlen(".so")
                        + 1);
 
-               sprintf(soname, "libkeydb_%s.so", config.db_backend);
+               sprintf(soname, "./libkeydb_%s.so", config.db_backend);
        } else {
                soname = malloc(strlen(config.db_backend)
                        + strlen("/libkeydb_")
@@ -61,12 +66,12 @@ bool load_backend(void)
 
        handle = dlopen(soname, RTLD_LAZY);
        if (handle == NULL) {
-               logthing(LOGTHING_ERROR,
+               logthing(LOGTHING_CRITICAL,
                                "Failed to open handle to library '%s': %s",
                                soname, dlerror());
                free(soname);
                soname = NULL;
-               return false;
+               exit(EXIT_FAILURE);
        }
        free(soname);
        soname = NULL;