From e11daa264615f6eb5782f1f349b23f47518577dd Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Sun, 8 Sep 2013 15:03:06 +0200 Subject: [PATCH] Don't try to mkdir(CONFDIR) if --config is used. --- src/invitation.c | 2 +- src/names.c | 2 ++ src/names.h | 1 + src/tincctl.c | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/invitation.c b/src/invitation.c index 6ccfc1f4..59bcf456 100644 --- a/src/invitation.c +++ b/src/invitation.c @@ -823,7 +823,7 @@ int cmd_join(int argc, char *argv[]) { } // Make sure confbase exists and is accessible. - if(strcmp(confdir, confbase) && mkdir(confdir, 0755) && errno != EEXIST) { + if(!confbase_given && mkdir(confdir, 0755) && errno != EEXIST) { fprintf(stderr, "Could not create directory %s: %s\n", confdir, strerror(errno)); return 1; } diff --git a/src/names.c b/src/names.c index a631ad97..37708f81 100644 --- a/src/names.c +++ b/src/names.c @@ -26,6 +26,7 @@ char *netname = NULL; char *confdir = NULL; /* base configuration directory */ char *confbase = NULL; /* base configuration directory for this instance of tinc */ +bool confbase_given; char *identname = NULL; /* program name for syslog */ char *unixsocketname = NULL; /* UNIX socket location */ char *logfilename = NULL; /* log file location */ @@ -41,6 +42,7 @@ void make_names(void) { char installdir[1024] = ""; DWORD len = sizeof installdir; #endif + confbase_given = confbase; if(netname && confbase) logger(DEBUG_ALWAYS, LOG_INFO, "Both netname and configuration directory given, using the latter..."); diff --git a/src/names.h b/src/names.h index 6f43a2c8..1163ff6e 100644 --- a/src/names.h +++ b/src/names.h @@ -23,6 +23,7 @@ extern char *confdir; extern char *confbase; +extern bool confbase_given; extern char *netname; extern char *identname; extern char *unixsocketname; diff --git a/src/tincctl.c b/src/tincctl.c index a6673901..a986af76 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -1739,7 +1739,7 @@ static int cmd_init(int argc, char *argv[]) { return 1; } - if(strcmp(confdir, confbase) && mkdir(confdir, 0755) && errno != EEXIST) { + if(!confbase_given && mkdir(confdir, 0755) && errno != EEXIST) { fprintf(stderr, "Could not create directory %s: %s\n", confdir, strerror(errno)); return 1; } -- 2.20.1