]> git.meshlink.io Git - meshlink/blobdiff - src/conf.c
Finish implementation of log callbacks.
[meshlink] / src / conf.c
index a53db04604ed10bc8725053a38bb9d33edfb84b8..e76262271703bf6d477b225934f3361c4a7468c7 100644 (file)
@@ -51,7 +51,8 @@ void init_configuration(splay_tree_t **config_tree) {
 }
 
 void exit_configuration(splay_tree_t **config_tree) {
-       splay_delete_tree(*config_tree);
+       if(*config_tree)
+               splay_delete_tree(*config_tree);
        *config_tree = NULL;
 }
 
@@ -124,7 +125,7 @@ bool get_config_bool(const config_t *cfg, bool *result) {
                return true;
        }
 
-       logger(DEBUG_ALWAYS, LOG_ERR, "\"yes\" or \"no\" expected for configuration variable %s in %s line %d",
+       logger(NULL, MESHLINK_ERROR, "\"yes\" or \"no\" expected for configuration variable %s in %s line %d",
                   cfg->variable, cfg->file, cfg->line);
 
        return false;
@@ -137,7 +138,7 @@ bool get_config_int(const config_t *cfg, int *result) {
        if(sscanf(cfg->value, "%d", result) == 1)
                return true;
 
-       logger(DEBUG_ALWAYS, LOG_ERR, "Integer expected for configuration variable %s in %s line %d",
+       logger(NULL, MESHLINK_ERROR, "Integer expected for configuration variable %s in %s line %d",
                   cfg->variable, cfg->file, cfg->line);
 
        return false;
@@ -165,7 +166,7 @@ bool get_config_address(const config_t *cfg, struct addrinfo **result) {
                return true;
        }
 
-       logger(DEBUG_ALWAYS, LOG_ERR, "Hostname or IP address expected for configuration variable %s in %s line %d",
+       logger(NULL, MESHLINK_ERROR, "Hostname or IP address expected for configuration variable %s in %s line %d",
                   cfg->variable, cfg->file, cfg->line);
 
        return false;
@@ -220,7 +221,7 @@ config_t *parse_config_line(char *line, const char *fname, int lineno) {
 
        if(!*value) {
                const char err[] = "No value for variable";
-               logger(DEBUG_ALWAYS, LOG_ERR, "%s `%s' on line %d while reading config file %s",
+               logger(NULL, MESHLINK_ERROR, "%s `%s' on line %d while reading config file %s",
                        err, variable, lineno, fname);
                return NULL;
        }
@@ -250,7 +251,7 @@ bool read_config_file(splay_tree_t *config_tree, const char *fname) {
        fp = fopen(fname, "r");
 
        if(!fp) {
-               logger(DEBUG_ALWAYS, LOG_ERR, "Cannot open config file %s: %s", fname, strerror(errno));
+               logger(NULL, MESHLINK_ERROR, "Cannot open config file %s: %s", fname, strerror(errno));
                return false;
        }
 
@@ -299,7 +300,7 @@ bool read_server_config(meshlink_handle_t *mesh) {
        x = read_config_file(mesh->config, filename);
 
        if(!x && errno)
-               logger(DEBUG_ALWAYS, LOG_ERR, "Failed to read `%s': %s", filename, strerror(errno));
+               logger(mesh, MESHLINK_ERROR, "Failed to read `%s': %s", filename, strerror(errno));
 
        return x;
 }
@@ -321,12 +322,11 @@ bool append_config_file(meshlink_handle_t *mesh, const char *name, const char *k
        FILE *fp = fopen(filename, "a");
 
        if(!fp) {
-               logger(DEBUG_ALWAYS, LOG_ERR, "Cannot open config file %s: %s", filename, strerror(errno));
+               logger(mesh, MESHLINK_ERROR, "Cannot open config file %s: %s", filename, strerror(errno));
        } else {
-               fprintf(fp, "\n# The following line was automatically added by tinc\n%s = %s\n", key, value);
+               fprintf(fp, "%s = %s\n", key, value);
                fclose(fp);
        }
 
-
        return fp != NULL;
 }