From: Jason Parker Date: Wed, 9 Jun 2010 21:19:17 +0000 (+0000) Subject: Let systems without a working fork() use res_musiconhold. X-Git-Tag: 1.4.34-rc1~2^2~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c4eee1ee7e89cbc4bae67c502ab3304f0c2e239f;p=thirdparty%2Fasterisk.git Let systems without a working fork() use res_musiconhold. Files mode doesn't require anything special, so that can still be used just fine. AST-357 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@269426 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index 308d5220c7..cb50b4c584 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -28,7 +28,6 @@ /*** MODULEINFO win32 dahdi - working_fork ***/ #include "asterisk.h" @@ -353,6 +352,7 @@ static struct ast_generator moh_file_stream = { .generate = moh_files_generator, }; +#ifdef HAVE_WORKING_FORK static int spawn_mp3(struct mohclass *class) { int fds[2]; @@ -605,6 +605,7 @@ static void *monmp3thread(void *data) } return NULL; } +#endif static int moh0_exec(struct ast_channel *chan, void *data) { @@ -917,6 +918,7 @@ static int init_files_class(struct mohclass *class) return 0; } +#ifdef HAVE_WORKING_FORK static int init_app_class(struct mohclass *class) { #ifdef HAVE_DAHDI @@ -959,6 +961,7 @@ static int init_app_class(struct mohclass *class) return 0; } +#endif /*! * \note This function owns the reference it gets to moh @@ -988,10 +991,16 @@ static int moh_register(struct mohclass *moh, int reload) } else if (!strcasecmp(moh->mode, "mp3") || !strcasecmp(moh->mode, "mp3nb") || !strcasecmp(moh->mode, "quietmp3") || !strcasecmp(moh->mode, "quietmp3nb") || !strcasecmp(moh->mode, "httpmp3") || !strcasecmp(moh->mode, "custom")) { +#ifdef HAVE_WORKING_FORK if (init_app_class(moh)) { moh = mohclass_unref(moh); return -1; } +#else + ast_log(LOG_WARNING, "Cannot use mode '%s' music on hold, as there is no working fork().\n", moh->mode); + moh = mohclass_unref(moh); + return -1; +#endif } else { ast_log(LOG_WARNING, "Don't know how to do a mode '%s' music on hold\n", moh->mode); moh = mohclass_unref(moh);