X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fconf.c;h=f47faefba0f1bc854f62629f6d144b9f9793d515;hb=fa4a01e4a27dd4b3a57077acbd0e69f95d55944a;hp=30ac5852e85b8f970be2d2002d1c51dd6bc1743b;hpb=f4010694b3b16453e5e6298c208910264e326978;p=meshlink diff --git a/src/conf.c b/src/conf.c index 30ac5852..f47faefb 100644 --- a/src/conf.c +++ b/src/conf.c @@ -26,6 +26,7 @@ #include "splay_tree.h" #include "connection.h" #include "conf.h" +#include "list.h" #include "logger.h" #include "netutl.h" /* for str2address */ #include "protocol.h" @@ -188,7 +189,7 @@ bool get_config_address(const config_t *cfg, struct addrinfo **result) { } bool get_config_subnet(const config_t *cfg, subnet_t ** result) { - subnet_t subnet = {0}; + subnet_t subnet = {NULL}; if(!cfg) return false; @@ -399,6 +400,24 @@ bool read_connection_config(connection_t *c) { return x; } +bool append_config_file(const char *name, const char *key, const char *value) { + char *fname; + xasprintf(&fname, "%s/hosts/%s", confbase, name); + + FILE *fp = fopen(fname, "a"); + + if(!fp) { + logger(LOG_ERR, "Cannot open config file %s: %s", fname, strerror(errno)); + } else { + fprintf(fp, "\n# The following line was automatically added by tinc\n%s = %s\n", key, value); + fclose(fp); + } + + free(fname); + + return fp; +} + bool disable_old_keys(FILE *f) { char buf[100]; long pos;