X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fconf.c;fp=src%2Fconf.c;h=ef595efca958f8cdb22ad240f41fb4f09864f0d1;hb=d90774f9eebb54dfb509b7005665a524cd0c3470;hp=8acb64b9cea55fffc1fad869d526a2b4c91353bb;hpb=6a485ef45acbbf55f1b1cabb33069b1012dfb17b;p=meshlink diff --git a/src/conf.c b/src/conf.c index 8acb64b9..ef595efc 100644 --- a/src/conf.c +++ b/src/conf.c @@ -333,30 +333,26 @@ bool write_config_file(const struct splay_tree_t *config_tree, const char *fname for splay_each(config_t, cnf, config_tree) { - if(fwrite(cnf->variable, sizeof(char), strlen(cnf->variable), fp) < strlen(cnf->variable)) { - logger(NULL, MESHLINK_ERROR, "Cannot write to config file %s: %s", fname, strerror(errno)); - return false; - } + if(fwrite(cnf->variable, sizeof(char), strlen(cnf->variable), fp) < strlen(cnf->variable)) + goto error; - if(fwrite(" = ", sizeof(char), 3, fp) < 3) { - logger(NULL, MESHLINK_ERROR, "Cannot write to config file %s: %s", fname, strerror(errno)); - return false; - } + if(fwrite(" = ", sizeof(char), 3, fp) < 3) + goto error; - if(fwrite(cnf->value, sizeof(char), strlen(cnf->value), fp) < strlen(cnf->value)) { - logger(NULL, MESHLINK_ERROR, "Cannot write to config file %s: %s", fname, strerror(errno)); - return false; - } + if(fwrite(cnf->value, sizeof(char), strlen(cnf->value), fp) < strlen(cnf->value)) + goto error; - if(fwrite("\n", sizeof(char), 1, fp) < 1) { - logger(NULL, MESHLINK_ERROR, "Cannot write to config file %s: %s", fname, strerror(errno)); - return false; - } + if(fwrite("\n", sizeof(char), 1, fp) < 1) + goto error; } fclose(fp); - return true; + +error: + logger(NULL, MESHLINK_ERROR, "Cannot write to config file %s: %s", fname, strerror(errno)); + fclose(fp); + return false; } bool read_server_config(meshlink_handle_t *mesh) {