Fix mail compilation on the FreeBSD

FreeBSD using procctl instead of Linux prctl

Signed-off-by: Alex Samorukov <samm@os2.kiev.ua>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Alex Samorukov 2021-01-04 01:18:44 +01:00 committed by Denys Vlasenko
parent 2b94c053d1
commit 4455cffa32

View File

@ -6,7 +6,13 @@
* *
* Licensed under GPLv2, see file LICENSE in this source tree. * Licensed under GPLv2, see file LICENSE in this source tree.
*/ */
#include <sys/prctl.h> #if defined(__linux__)
# include <sys/prctl.h>
# define PRCTL
#elif defined(__FreeBSD__)
# include <sys/procctl.h>
# define PROCCTL
#endif
#include "libbb.h" #include "libbb.h"
#include "mail.h" #include "mail.h"
@ -55,7 +61,14 @@ void FAST_FUNC launch_helper(const char **argv)
xmove_fd(child_in.rd, STDIN_FILENO); xmove_fd(child_in.rd, STDIN_FILENO);
xmove_fd(child_out.wr, STDOUT_FILENO); xmove_fd(child_out.wr, STDOUT_FILENO);
// if parent dies, get SIGTERM // if parent dies, get SIGTERM
#if defined(PRCTL)
prctl(PR_SET_PDEATHSIG, SIGTERM, 0, 0, 0); prctl(PR_SET_PDEATHSIG, SIGTERM, 0, 0, 0);
#elif defined(PROCCTL)
{
int signum = SIGTERM;
procctl(P_PID, 0, PROC_PDEATHSIG_CTL, &signum);
}
#endif
// try to execute connection helper // try to execute connection helper
// NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec // NB: SIGCHLD & SIGALRM revert to SIG_DFL on exec
BB_EXECVP_or_die((char**)argv); BB_EXECVP_or_die((char**)argv);