Cross-platform fix: OS X now deprecates the use of the daemon(3) API.

(closes issue #11908)
 Reported by: oej
 Patches: 
       20080204__bug11908.diff.txt uploaded by Corydon76 (license 14)
 Tested by: Corydon76


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@102323 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2008-02-04 21:06:09 +00:00
parent 1dde474916
commit 0dafcac660
5 changed files with 6137 additions and 1772 deletions

7889
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1090,6 +1090,8 @@ AC_CHECK_HEADER([linux/ixjuser.h], [PBX_IXJUSER=1], [PBX_IXJUSER=0], [
])
AC_SUBST(PBX_IXJUSER)
AC_CHECK_FILE(/sbin/launchd, AC_DEFINE([HAVE_SBIN_LAUNCHD], 1, [Define to 1 if your system has /sbin/launchd.]))
PBX_GTK=0
AC_CHECK_TOOL(GTKCONFIG, gtk-config, No)
if test ! "x${GTKCONFIG}" = xNo; then

View File

@@ -320,6 +320,9 @@
*/
#undef HAVE_RTLD_NOLOAD
/* Define to 1 if your system has /sbin/launchd. */
#undef HAVE_SBIN_LAUNCHD
/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT
@@ -638,9 +641,6 @@
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Define like PROTOTYPES; this can be used by system headers. */
#undef __PROTOTYPES

View File

@@ -2844,6 +2844,7 @@ int main(int argc, char *argv[])
#if HAVE_WORKING_FORK
if (ast_opt_always_fork || !ast_opt_no_fork) {
#ifndef HAVE_SBIN_LAUNCHD
daemon(1, 0);
ast_mainpid = getpid();
/* Blindly re-write pid file since we are forking */
@@ -2854,6 +2855,9 @@ int main(int argc, char *argv[])
fclose(f);
} else
ast_log(LOG_WARNING, "Unable to open pid file '%s': %s\n", ast_config_AST_PID, strerror(errno));
#else
ast_log(LOG_WARNING, "Mac OS X detected. Use '/sbin/launchd -d' to launch with the nofork option.\n");
#endif
}
#endif

View File

@@ -680,8 +680,14 @@ int main(int argc, char *argv[])
fclose(astf);
exit(1);
}
if (needfork)
if (needfork) {
#ifndef HAVE_SBIN_LAUNCHD
daemon(0,0);
#else
fprintf(stderr, "Mac OS X detected. Use 'launchd -d muted -f' to launch.\n");
exit(1);
#endif
}
for(;;) {
if (wait_event()) {
fclose(astf);