[asterisk-commits] qwell: branch 1.4 r269426 - /branches/1.4/res/res_musiconhold.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jun 9 16:19:21 CDT 2010


Author: qwell
Date: Wed Jun  9 16:19:17 2010
New Revision: 269426

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=269426
Log:
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

Modified:
    branches/1.4/res/res_musiconhold.c

Modified: branches/1.4/res/res_musiconhold.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/res/res_musiconhold.c?view=diff&rev=269426&r1=269425&r2=269426
==============================================================================
--- branches/1.4/res/res_musiconhold.c (original)
+++ branches/1.4/res/res_musiconhold.c Wed Jun  9 16:19:17 2010
@@ -28,7 +28,6 @@
 /*** MODULEINFO
 	<conflict>win32</conflict>
 	<use>dahdi</use>
-	<depend>working_fork</depend>
  ***/
 
 #include "asterisk.h"
@@ -353,6 +352,7 @@
 	.generate = moh_files_generator,
 };
 
+#ifdef HAVE_WORKING_FORK
 static int spawn_mp3(struct mohclass *class)
 {
 	int fds[2];
@@ -605,6 +605,7 @@
 	}
 	return NULL;
 }
+#endif
 
 static int moh0_exec(struct ast_channel *chan, void *data)
 {
@@ -917,6 +918,7 @@
 	return 0;
 }
 
+#ifdef HAVE_WORKING_FORK
 static int init_app_class(struct mohclass *class)
 {
 #ifdef HAVE_DAHDI
@@ -959,6 +961,7 @@
 
 	return 0;
 }
+#endif
 
 /*!
  * \note This function owns the reference it gets to moh
@@ -988,10 +991,16 @@
 	} 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);




More information about the asterisk-commits mailing list