From: Roy Marples Date: Thu, 16 Jan 2020 03:20:53 +0000 (+0000) Subject: dhcpcd: Ignore SIGPIPE, prefer EPIPE. X-Git-Tag: v9.0.0~111 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14da295de0075b18316ba4512e730de20d8a9c12;p=thirdparty%2Fdhcpcd.git dhcpcd: Ignore SIGPIPE, prefer EPIPE. This is mainly to get dhcpcd running in privsep on my ERLITE router running some NetBSD pre-9 branch. So far, seems harmless.... --- diff --git a/src/dhcpcd.c b/src/dhcpcd.c index 1796e5c9..74a04e3a 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -81,7 +81,6 @@ const int dhcpcd_signals[] = { SIGHUP, SIGUSR1, SIGUSR2, - SIGPIPE }; const size_t dhcpcd_signals_len = __arraycount(dhcpcd_signals); #endif @@ -1374,9 +1373,6 @@ dhcpcd_signal_cb(int sig, void *arg) if (logopen(ctx->logfile) == -1) logerr(__func__); return; - case SIGPIPE: - logwarnx("received SIGPIPE"); - return; default: logerrx("received signal %d but don't know what to do with it", sig); @@ -1842,7 +1838,11 @@ printpidfile: logerr("%s: eloop_init", __func__); goto exit_failure; } + #ifdef USE_SIGNALS + /* Ingore SIGPIPE, prefer EPIPE. */ + signal(SIGPIPE, SIG_IGN); + /* Save signal mask, block and redirect signals to our handler */ if (eloop_signal_set_cb(ctx.eloop, dhcpcd_signals, dhcpcd_signals_len,