mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05: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
5 changed files with 19 additions and 4 deletions
|
|
@ -24,6 +24,9 @@
|
||||||
/* Define to 1 if you have the `chroot' function. */
|
/* Define to 1 if you have the `chroot' function. */
|
||||||
#undef HAVE_CHROOT
|
#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. */
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
#undef HAVE_DLFCN_H
|
#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
|
do
|
||||||
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
{ echo "$as_me:$LINENO: checking for $ac_func" >&5
|
{ 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
|
if test $ac_cv_func_getaddrinfo = no; then
|
||||||
AC_LIBOBJ([fake-rfc2553])
|
AC_LIBOBJ([fake-rfc2553])
|
||||||
fi
|
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
|
# check mkdir
|
||||||
AC_MSG_CHECKING([whether mkdir has one arg])
|
AC_MSG_CHECKING([whether mkdir has one arg])
|
||||||
|
|
|
||||||
|
|
@ -287,15 +287,24 @@ checkoldpid(struct config_file* cfg)
|
||||||
static void
|
static void
|
||||||
detach(struct config_file* cfg)
|
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
|
#ifdef HAVE_WORKING_FORK
|
||||||
int fd;
|
int fd, err;
|
||||||
/* Take off... */
|
/* Take off... */
|
||||||
switch (fork()) {
|
switch (fork()) {
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case -1:
|
case -1:
|
||||||
|
err=errno;
|
||||||
unlink(cfg->pidfile);
|
unlink(cfg->pidfile);
|
||||||
fatal_exit("fork failed: %s", strerror(errno));
|
fatal_exit("fork failed: %s", strerror(err));
|
||||||
default:
|
default:
|
||||||
/* exit interactive session */
|
/* exit interactive session */
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
@ -315,6 +324,7 @@ detach(struct config_file* cfg)
|
||||||
#else
|
#else
|
||||||
(void)cfg;
|
(void)cfg;
|
||||||
#endif /* HAVE_WORKING_FORK */
|
#endif /* HAVE_WORKING_FORK */
|
||||||
|
#endif /* HAVE_DAEMON */
|
||||||
}
|
}
|
||||||
|
|
||||||
/** daemonize, drop user priviliges and chroot if needed */
|
/** daemonize, drop user priviliges and chroot if needed */
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
- added scrub filter for overreaching NSEC records and unit test.
|
- added scrub filter for overreaching NSEC records and unit test.
|
||||||
- iana portlist update
|
- iana portlist update
|
||||||
- use of setresuid or setreuid when available.
|
- use of setresuid or setreuid when available.
|
||||||
|
- use daemon(3) if available.
|
||||||
|
|
||||||
25 August 2008: Wouter
|
25 August 2008: Wouter
|
||||||
- realclean patch from Robert Edmonds.
|
- realclean patch from Robert Edmonds.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue