mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Merge branch 'obsd-master'
Conflicts: cmd-pipe-pane.c proc.c tmux.c window.c
This commit is contained in:
		
							
								
								
									
										23
									
								
								server.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								server.c
									
									
									
									
									
								
							@@ -135,20 +135,37 @@ server_create_socket(void)
 | 
			
		||||
 | 
			
		||||
/* Fork new server. */
 | 
			
		||||
int
 | 
			
		||||
server_start(struct event_base *base, int lockfd, char *lockfile)
 | 
			
		||||
server_start(struct tmuxproc *client, struct event_base *base, int lockfd,
 | 
			
		||||
    char *lockfile)
 | 
			
		||||
{
 | 
			
		||||
	int		 pair[2];
 | 
			
		||||
	struct job	*job;
 | 
			
		||||
	sigset_t	 set, oldset;
 | 
			
		||||
 | 
			
		||||
	if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)
 | 
			
		||||
		fatal("socketpair failed");
 | 
			
		||||
 | 
			
		||||
	server_proc = proc_start("server", base, 1, server_signal);
 | 
			
		||||
	if (server_proc == NULL) {
 | 
			
		||||
	sigfillset(&set);
 | 
			
		||||
	sigprocmask(SIG_BLOCK, &set, &oldset);
 | 
			
		||||
	switch (fork()) {
 | 
			
		||||
	case -1:
 | 
			
		||||
		fatal("fork failed");
 | 
			
		||||
	case 0:
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
		sigprocmask(SIG_SETMASK, &oldset, NULL);
 | 
			
		||||
		close(pair[1]);
 | 
			
		||||
		return (pair[0]);
 | 
			
		||||
	}
 | 
			
		||||
	close(pair[0]);
 | 
			
		||||
	if (daemon(1, 0) != 0)
 | 
			
		||||
		fatal("daemon failed");
 | 
			
		||||
	proc_clear_signals(client);
 | 
			
		||||
	if (event_reinit(base) != 0)
 | 
			
		||||
		fatalx("event_reinit failed");
 | 
			
		||||
	server_proc = proc_start("server");
 | 
			
		||||
	proc_set_signals(server_proc, server_signal);
 | 
			
		||||
	sigprocmask(SIG_SETMASK, &oldset, NULL);
 | 
			
		||||
 | 
			
		||||
	if (log_get_level() > 1)
 | 
			
		||||
		tty_create_log();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user