]> the.earth.li Git - onak.git/blobdiff - onak-conf.c
Parse pks_bin_dir / mail_dir in the C config handling
[onak.git] / onak-conf.c
index f97f2610053b5bbb8753f1fd8648eec78de44278..0af6a45458e2c708a87d8822c3286f48aec25f8d 100644 (file)
@@ -53,6 +53,9 @@ struct onak_config config = {
        .dbinit = DBINIT,
 
        .check_sighash = true,
+
+       .bin_dir = NULL,
+       .mail_dir = NULL,
 };
 
 bool parsebool(char *str, bool fallback)
@@ -178,12 +181,14 @@ void readconfig(const char *configfile) {
                } else if (!strncmp("this_site ", curline, 10)) {
                        config.thissite = strdup(&curline[10]);
                } else if (!strncmp("socket_name ", curline, 12) ||
-                               !strncmp("pks_bin_dir ", curline, 12) ||
-                               !strncmp("mail_dir ", curline, 9) ||
                                !strncmp("www_port ", curline, 9)) {
                        /*
                         * Not applicable; ignored for compatibility with pksd.
                         */
+               } else if (!strncmp("pks_bin_dir ", curline, 12)) {
+                       config.bin_dir = strdup(&curline[12]);
+               } else if (!strncmp("mail_dir ", curline, 9)) {
+                       config.mail_dir = strdup(&curline[9]);
                } else if (!strncmp("db_backend ", curline, 11)) {
                        backend->type = strdup(&curline[11]);
                        backend->name = strdup(&curline[11]);
@@ -280,4 +285,12 @@ void cleanupconfig(void) {
                free(config.backends_dir);
                config.backends_dir = NULL;
        }
+       if (config.bin_dir != NULL) {
+               free(config.bin_dir);
+               config.bin_dir = NULL;
+       }
+       if (config.mail_dir != NULL) {
+               free(config.mail_dir);
+               config.mail_dir = NULL;
+       }
 }