diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-04-19 14:14:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:51:09 -0500 |
commit | 6bc249edbfd59532978543fbbb54a98c5853e6ab (patch) | |
tree | fec621213591a604cdebfb5e6cfa1d2aee224700 /source4/lib | |
parent | 4bb0cb7449960620052cd555854e59d8d8a9babe (diff) | |
download | samba-6bc249edbfd59532978543fbbb54a98c5853e6ab.tar.gz samba-6bc249edbfd59532978543fbbb54a98c5853e6ab.tar.bz2 samba-6bc249edbfd59532978543fbbb54a98c5853e6ab.zip |
r22372: split out become_daemon() into it's own function
this remove the dependency of util.o to swrap_close
which causes sometrouble with the pidl tests
on some hosts
metze
(This used to be commit 8cd36c47aaf1098876bceb314cb0a1f39369cb46)
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/util/config.mk | 3 | ||||
-rw-r--r-- | source4/lib/util/util.c | 66 |
2 files changed, 2 insertions, 67 deletions
diff --git a/source4/lib/util/config.mk b/source4/lib/util/config.mk index cda42c105a..5ec110e68d 100644 --- a/source4/lib/util/config.mk +++ b/source4/lib/util/config.mk @@ -26,7 +26,8 @@ OBJ_FILES = xfile.o \ ms_fnmatch.o \ mutex.o \ idtree.o \ - module.o + module.o \ + become_daemon.o PUBLIC_DEPENDENCIES = \ LIBTALLOC LIBCRYPTO \ SOCKET_WRAPPER EXT_NSL \ diff --git a/source4/lib/util/util.c b/source4/lib/util/util.c index afa9adbc18..b0eebb0bc7 100644 --- a/source4/lib/util/util.c +++ b/source4/lib/util/util.c @@ -141,42 +141,6 @@ _PUBLIC_ BOOL directory_create_or_exist(const char *dname, uid_t uid, } -/******************************************************************* - Close the low 3 fd's and open dev/null in their place. -********************************************************************/ -static void close_low_fds(BOOL stderr_too) -{ -#ifndef VALGRIND - int fd; - int i; - - close(0); - close(1); - - if (stderr_too) - close(2); - - /* try and use up these file descriptors, so silly - library routines writing to stdout etc won't cause havoc */ - for (i=0;i<3;i++) { - if (i == 2 && !stderr_too) - continue; - - fd = open("/dev/null",O_RDWR,0); - if (fd < 0) - fd = open("/dev/null",O_WRONLY,0); - if (fd < 0) { - DEBUG(0,("Can't open /dev/null\n")); - return; - } - if (fd != i) { - DEBUG(0,("Didn't get file descriptor %d\n",i)); - return; - } - } -#endif -} - /** Set a fd into blocking/nonblocking mode. Uses POSIX O_NONBLOCK if available, else @@ -224,36 +188,6 @@ _PUBLIC_ void msleep(unsigned int t) } /** - Become a daemon, discarding the controlling terminal. -**/ - -_PUBLIC_ void become_daemon(BOOL Fork) -{ - if (Fork) { - if (fork()) { - _exit(0); - } - } - - /* detach from the terminal */ -#ifdef HAVE_SETSID - setsid(); -#elif defined(TIOCNOTTY) - { - int i = open("/dev/tty", O_RDWR, 0); - if (i != -1) { - ioctl(i, (int) TIOCNOTTY, (char *)0); - close(i); - } - } -#endif /* HAVE_SETSID */ - - /* Close fd's 0,1,2. Needed if started by rsh */ - close_low_fds(False); /* Don't close stderr, let the debug system - attach it to the logfile */ -} - -/** Get my own name, return in malloc'ed storage. **/ |