]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
dhcpcd: Ignore SIGPIPE, prefer EPIPE.
authorRoy Marples <roy@marples.name>
Thu, 16 Jan 2020 03:20:53 +0000 (03:20 +0000)
committerRoy Marples <roy@marples.name>
Thu, 16 Jan 2020 03:20:53 +0000 (03:20 +0000)
This is mainly to get dhcpcd running in privsep on my ERLITE
router running some NetBSD pre-9 branch.

So far, seems harmless....

src/dhcpcd.c

index 1796e5c9662ce607d52a8ca3d73d2ae4a08927db..74a04e3a45f53c86b655d42882d6e0ebfd684255 100644 (file)
@@ -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,