[asterisk-commits] jpeeler: branch 1.4 r162874 - /branches/1.4/res/res_musiconhold.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Dec 10 16:04:18 CST 2008


Author: jpeeler
Date: Wed Dec 10 16:04:18 2008
New Revision: 162874

URL: http://svn.digium.com/view/asterisk?view=rev&rev=162874
Log:
(closes issue #13229)
Reported by: clegall_proformatique

Ensure that moh_generate does not return prematurely before local_ast_moh_stop is called. Also, the sleep in mp3_spawn now only occurs for http locations since it seems to have been added originally only for failing media streams.

Modified:
    branches/1.4/res/res_musiconhold.c

Modified: branches/1.4/res/res_musiconhold.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/res/res_musiconhold.c?view=diff&rev=162874&r1=162873&r2=162874
==============================================================================
--- branches/1.4/res/res_musiconhold.c (original)
+++ branches/1.4/res/res_musiconhold.c Wed Dec 10 16:04:18 2008
@@ -371,7 +371,7 @@
 		files = 1;
 	} else {
 		dir = opendir(class->dir);
-		if (!dir && !strstr(class->dir,"http://") && !strstr(class->dir,"HTTP://")) {
+		if (!dir && !strncasecmp(class->dir, "http://", 7)) {
 			ast_log(LOG_WARNING, "%s is not a valid directory\n", class->dir);
 			return -1;
 		}
@@ -414,8 +414,7 @@
 		}
 	}
 
-
-	if (strstr(class->dir,"http://") || strstr(class->dir,"HTTP://")) {
+	if (!strncasecmp(class->dir, "http://", 7)) {
 		ast_copy_string(fns[files], class->dir, sizeof(fns[files]));
 		argv[argc++] = fns[files];
 		files++;
@@ -446,7 +445,7 @@
 		close(fds[1]);
 		return -1;
 	}
-	if (time(NULL) - class->start < respawn_time) {
+	if (!strncasecmp(class->dir, "http://", 7) && time(NULL) - class->start < respawn_time) {
 		sleep(respawn_time - (time(NULL) - class->start));
 	}
 
@@ -743,8 +742,9 @@
 	short buf[1280 + AST_FRIENDLY_OFFSET / 2];
 	int res;
 
-	if (!moh->parent->pid)
-		return -1;
+	if (!moh->parent->pid && moh->parent->inuse == 0) {
+		return -1;
+	}
 
 	len = ast_codec_get_len(moh->parent->format, samples);
 




More information about the asterisk-commits mailing list