mirror of
https://github.com/NLnetLabs/unbound.git
synced 2024-09-21 14:47:09 +00:00
use daemon(3) if available.
git-svn-id: file:///svn/unbound/trunk@1210 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
53fed5315c
commit
4993c646e7
@ -24,6 +24,9 @@
|
||||
/* Define to 1 if you have the `chroot' function. */
|
||||
#undef HAVE_CHROOT
|
||||
|
||||
/* Define to 1 if you have the `daemon' function. */
|
||||
#undef HAVE_DAEMON
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
|
3
configure
vendored
3
configure
vendored
@ -24666,7 +24666,8 @@ fi
|
||||
|
||||
|
||||
|
||||
for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid
|
||||
|
||||
for ac_func in tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid daemon
|
||||
do
|
||||
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
|
||||
|
@ -781,7 +781,7 @@ AC_CHECK_GETADDRINFO_WITH_INCLUDES
|
||||
if test $ac_cv_func_getaddrinfo = no; then
|
||||
AC_LIBOBJ([fake-rfc2553])
|
||||
fi
|
||||
AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid])
|
||||
AC_CHECK_FUNCS([tzset sigprocmask fcntl getpwnam getrlimit setsid sbrk chroot kill sleep usleep random srandom recvmsg sendmsg writev setresuid setreuid setresgid setregid daemon])
|
||||
|
||||
# check mkdir
|
||||
AC_MSG_CHECKING([whether mkdir has one arg])
|
||||
|
@ -287,15 +287,24 @@ checkoldpid(struct config_file* cfg)
|
||||
static void
|
||||
detach(struct config_file* cfg)
|
||||
{
|
||||
#ifdef HAVE_DAEMON
|
||||
int err;
|
||||
if(daemon(1,0)!=0) {
|
||||
err=errno;
|
||||
unlink(cfg->pidfile);
|
||||
fatal_exit("daemon(3) failed: %s", strerror(err));
|
||||
}
|
||||
#else /* !HAVE_DAEMON */
|
||||
#ifdef HAVE_WORKING_FORK
|
||||
int fd;
|
||||
int fd, err;
|
||||
/* Take off... */
|
||||
switch (fork()) {
|
||||
case 0:
|
||||
break;
|
||||
case -1:
|
||||
err=errno;
|
||||
unlink(cfg->pidfile);
|
||||
fatal_exit("fork failed: %s", strerror(errno));
|
||||
fatal_exit("fork failed: %s", strerror(err));
|
||||
default:
|
||||
/* exit interactive session */
|
||||
exit(0);
|
||||
@ -315,6 +324,7 @@ detach(struct config_file* cfg)
|
||||
#else
|
||||
(void)cfg;
|
||||
#endif /* HAVE_WORKING_FORK */
|
||||
#endif /* HAVE_DAEMON */
|
||||
}
|
||||
|
||||
/** daemonize, drop user priviliges and chroot if needed */
|
||||
|
@ -5,6 +5,7 @@
|
||||
- added scrub filter for overreaching NSEC records and unit test.
|
||||
- iana portlist update
|
||||
- use of setresuid or setreuid when available.
|
||||
- use daemon(3) if available.
|
||||
|
||||
25 August 2008: Wouter
|
||||
- realclean patch from Robert Edmonds.
|
||||
|
Loading…
Reference in New Issue
Block a user