Merge branch 'obsd-master'

Conflicts:
	cmd-pipe-pane.c
	proc.c
	tmux.c
	window.c
This commit is contained in:
Thomas Adam
2017-07-12 13:39:59 +01:00
12 changed files with 144 additions and 184 deletions

View File

@ -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();