Use ECDSA to sign ECDH key exchange for UDP session keys.
[tinc] / src / conf.c
index 593cd0c..f47faef 100644 (file)
@@ -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"
@@ -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;