check for daemon pid existence before trying to connect to the control socket, and...
[tinc] / src / tincctl.c
index e42ec2c..39a11d3 100644 (file)
@@ -718,6 +718,13 @@ bool connect_tincd(bool verbose) {
        }
 
        fclose(f);
+       if ((pid == 0) || (kill(pid, 0) && (errno == ESRCH))) {
+               fprintf(stderr, "Could not find tincd running at pid %d\n", pid);
+               /* clean up the stale socket and pid file */
+               unlink(pidfilename);
+               unlink(unixsocketname);
+               return false;
+       }
 
 #ifndef HAVE_MINGW
        struct sockaddr_un sa;