From af5e0bd15affd358017e43110ac5a6c3b22233bc Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Tue, 4 May 2010 08:48:06 +0000 Subject: Revert last change, it appears to be broken somehow. --- client.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'client.c') diff --git a/client.c b/client.c index 5940f62e..69d5bd7b 100644 --- a/client.c +++ b/client.c @@ -172,12 +172,35 @@ client_update_event(void) __dead void client_main(void) { + struct event ev_sigcont, ev_sigterm, ev_sigwinch; + struct sigaction sigact; + logfile("client"); /* Note: event_init() has already been called. */ /* Set up signals. */ - set_signals(client_signal); + memset(&sigact, 0, sizeof sigact); + sigemptyset(&sigact.sa_mask); + sigact.sa_flags = SA_RESTART; + sigact.sa_handler = SIG_IGN; + if (sigaction(SIGINT, &sigact, NULL) != 0) + fatal("sigaction failed"); + if (sigaction(SIGPIPE, &sigact, NULL) != 0) + fatal("sigaction failed"); + if (sigaction(SIGUSR1, &sigact, NULL) != 0) + fatal("sigaction failed"); + if (sigaction(SIGUSR2, &sigact, NULL) != 0) + fatal("sigaction failed"); + if (sigaction(SIGTSTP, &sigact, NULL) != 0) + fatal("sigaction failed"); + + signal_set(&ev_sigcont, SIGCONT, client_signal, NULL); + signal_add(&ev_sigcont, NULL); + signal_set(&ev_sigterm, SIGTERM, client_signal, NULL); + signal_add(&ev_sigterm, NULL); + signal_set(&ev_sigwinch, SIGWINCH, client_signal, NULL); + signal_add(&ev_sigwinch, NULL); /* * imsg_read in the first client poll loop (before the terminal has -- cgit