Improve subprocess behavior in tinc start command.

When invoking tincd, tinc start currently uses the execvp() function,
which doesn't behave well in a console as the console displays a new
prompt before the subprocess finishes (which makes me suspect the exit
value is not handled at all). This new code uses spawnvp() instead,
which seems like a better fit.
This commit is contained in:
Etienne Dechamps 2014-07-12 18:53:25 +01:00
parent b22499668a
commit ea12a0fb06

View file

@ -829,9 +829,12 @@ static int cmd_start(int argc, char *argv[]) {
nargv[nargc++] = argv[i];
#ifdef HAVE_MINGW
execvp(c, nargv);
fprintf(stderr, "Error starting %s: %s\n", c, strerror(errno));
return 1;
int status = spawnvp(_P_WAIT, c, nargv);
if (status == -1) {
fprintf(stderr, "Error starting %s: %s\n", c, strerror(errno));
return 1;
}
return status;
#else
pid_t pid = fork();
if(pid == -1) {