Remove "release-" from displayed git version.
[tinc] / src / names.c
index 688e96d..8218216 100644 (file)
@@ -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 */
@@ -39,8 +40,12 @@ void make_names(void) {
 #ifdef HAVE_MINGW
        HKEY key;
        char installdir[1024] = "";
-       long len = sizeof installdir;
+       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...");
 
        if(netname)
                xasprintf(&identname, "tinc.%s", netname);
@@ -49,7 +54,7 @@ void make_names(void) {
 
 #ifdef HAVE_MINGW
        if(!RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\tinc", 0, KEY_READ, &key)) {
-               if(!RegQueryValueEx(key, NULL, 0, 0, installdir, &len)) {
+               if(!RegQueryValueEx(key, NULL, 0, 0, (LPBYTE)installdir, &len)) {
                        confdir = xstrdup(installdir);
                        if(!logfilename)
                                xasprintf(&logfilename, "%s" SLASH "log" SLASH "%s.log", installdir, identname);
@@ -59,8 +64,6 @@ void make_names(void) {
                                else
                                        xasprintf(&confbase, "%s", installdir);
                        }
-                       if(!pidfilename)
-                               xasprintf(&pidfilename, "%s" SLASH "pid", confbase);
                }
                RegCloseKey(key);
        }
@@ -68,11 +71,26 @@ void make_names(void) {
        if(!confdir)
                confdir = xstrdup(CONFDIR SLASH "tinc");
 
+       if(!confbase) {
+               if(netname)
+                       xasprintf(&confbase, CONFDIR SLASH "tinc" SLASH "%s", netname);
+               else
+                       xasprintf(&confbase, CONFDIR SLASH "tinc");
+       }
+
+#ifdef HAVE_MINGW
+       if(!logfilename)
+               xasprintf(&logfilename, "%s" SLASH "log", confbase);
+
+       if(!pidfilename)
+               xasprintf(&pidfilename, "%s" SLASH "pid", confbase);
+#else
        if(!logfilename)
                xasprintf(&logfilename, LOCALSTATEDIR SLASH "log" SLASH "%s.log", identname);
 
        if(!pidfilename)
                xasprintf(&pidfilename, LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname);
+#endif
 
        if(!unixsocketname) {
                int len = strlen(pidfilename);
@@ -83,16 +101,6 @@ void make_names(void) {
                else
                        strcpy(unixsocketname + len, ".socket");
        }
-
-       if(netname) {
-               if(!confbase)
-                       xasprintf(&confbase, CONFDIR SLASH "tinc" SLASH "%s", netname);
-               else
-                       logger(DEBUG_ALWAYS, LOG_INFO, "Both netname and configuration directory given, using the latter...");
-       } else {
-               if(!confbase)
-                       xasprintf(&confbase, CONFDIR SLASH "tinc");
-       }
 }
 
 void free_names(void) {