Ignore deprecation warning for daemon on macOS

macOS warns that we should posix_spawn instead. However posix_spawn
would require a major redesign of code to daemonise or drop the --daemon
feature on macOS. Ignore the clang warning in order to allow -Werror
compile on macOS.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20201005091805.17260-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21171.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Arne Schwabe 2020-10-05 11:18:05 +02:00 committed by Gert Doering
parent 14bd92b7e4
commit a480eaae1d
2 changed files with 15 additions and 0 deletions

View file

@ -1238,10 +1238,18 @@ possibly_become_daemon(const struct options *options)
{
ASSERT(!options->inetd);
/* Don't chdir immediately, but the end of the init sequence, if needed */
#if defined(__APPLE__) && defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#endif
if (daemon(1, options->log) < 0)
{
msg(M_ERR, "daemon() failed or unsupported");
}
#if defined(__APPLE__) && defined(__clang__)
#pragma clang diagnostic pop
#endif
restore_signal_state();
if (options->log)
{

View file

@ -173,10 +173,17 @@ daemonize(const char *envp[])
{
fd = dup(2);
}
#if defined(__APPLE__) && defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#endif
if (daemon(0, 0) < 0)
{
warn("DOWN-ROOT: daemonization failed");
}
#if defined(__APPLE__) && defined(__clang__)
#pragma clang diagnostic pop
#endif
else if (fd >= 3)
{
dup2(fd, 2);