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:
		
							parent
							
								
									b22499668a
								
							
						
					
					
						commit
						ea12a0fb06
					
				
					 1 changed files with 6 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue