tinc-gui: Reformat codebase according to PEP8
[tinc] / src / names.c
index 6e52886..2782dd3 100644 (file)
@@ -21,6 +21,7 @@
 #include "system.h"
 
 #include "logger.h"
+#include "names.h"
 #include "xalloc.h"
 
 char *netname = NULL;
@@ -36,7 +37,7 @@ char *program_name = NULL;
 /*
   Set all files and paths according to netname
 */
-void make_names(void) {
+void make_names(bool daemon) {
 #ifdef HAVE_MINGW
        HKEY key;
        char installdir[1024] = "";
@@ -85,7 +86,21 @@ void make_names(void) {
        if(!pidfilename)
                xasprintf(&pidfilename, "%s" SLASH "pid", confbase);
 #else
-       if(!access(LOCALSTATEDIR, R_OK | W_OK | X_OK)) {
+       bool fallback = false;
+       if(daemon) {
+               if(access(LOCALSTATEDIR, R_OK | W_OK | X_OK))
+                       fallback = true;
+       } else {
+               char fname[PATH_MAX];
+               snprintf(fname, sizeof fname, LOCALSTATEDIR SLASH "run" SLASH "%s.pid", identname);
+               if(access(fname, R_OK)) {
+                       snprintf(fname, sizeof fname, "%s" SLASH "pid", confbase);
+                       if(!access(fname, R_OK))
+                               fallback = true;
+               }
+       }
+
+       if(!fallback) {
                if(!logfilename)
                        xasprintf(&logfilename, LOCALSTATEDIR SLASH "log" SLASH "%s.log", identname);
 
@@ -96,7 +111,8 @@ void make_names(void) {
                        xasprintf(&logfilename, "%s" SLASH "log", confbase);
 
                if(!pidfilename) {
-                       logger(DEBUG_ALWAYS, LOG_WARNING, "Could not access " LOCALSTATEDIR SLASH " (%s), storing pid and socket files in %s" SLASH, strerror(errno), confbase);
+                       if(daemon)
+                               logger(DEBUG_ALWAYS, LOG_WARNING, "Could not access " LOCALSTATEDIR SLASH " (%s), storing pid and socket files in %s" SLASH, strerror(errno), confbase);
                        xasprintf(&pidfilename, "%s" SLASH "pid", confbase);
                }
        }