X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Ftincctl.c;h=188db9222a18e14c5ef73ea1a8bc2cb6a18241b8;hb=a9caa2a6ea3aa553c9d2140ad4f5b34b7ab7297b;hp=619b90ece9328a0785907222d48df5a1cb0f6188;hpb=248d300f1be0d5f2aae39202041699ab2b46c56b;p=tinc diff --git a/src/tincctl.c b/src/tincctl.c index 619b90ec..188db922 100644 --- a/src/tincctl.c +++ b/src/tincctl.c @@ -714,8 +714,16 @@ static int cmd_start(int argc, char *argv[]) { static int cmd_stop(int argc, char *argv[]) { #ifndef HAVE_MINGW - if(!connect_tincd()) + if(!connect_tincd()) { + if(pid) { + if(kill(pid, SIGTERM)) + return 1; + fprintf(stderr, "Sent TERM signal to process with PID %u.\n", pid); + return 0; + } + return 1; + } sendline(fd, "%d %d", CONTROL, REQ_STOP); if(!recvline(fd, line, sizeof line) || sscanf(line, "%d %d %d", &code, &req, &result) != 3 || code != CONTROL || req != REQ_STOP || result) { @@ -730,7 +738,8 @@ static int cmd_stop(int argc, char *argv[]) { } static int cmd_restart(int argc, char *argv[]) { - return cmd_stop(argc, argv) ?: cmd_start(argc, argv); + cmd_stop(argc, argv); + return cmd_start(argc, argv); } static int cmd_reload(int argc, char *argv[]) {