[asterisk-commits] jpeeler: trunk r162891 - in /trunk: ./ res/res_musiconhold.c

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


Author: jpeeler
Date: Wed Dec 10 16:11:46 2008
New Revision: 162891

URL: http://svn.digium.com/view/asterisk?view=rev&rev=162891
Log:
Merged revisions 162874 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162874 | jpeeler | 2008-12-10 16:04:18 -0600 (Wed, 10 Dec 2008) | 5 lines

(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:
    trunk/   (props changed)
    trunk/res/res_musiconhold.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/res/res_musiconhold.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_musiconhold.c?view=diff&rev=162891&r1=162890&r2=162891
==============================================================================
--- trunk/res/res_musiconhold.c (original)
+++ trunk/res/res_musiconhold.c Wed Dec 10 16:11:46 2008
@@ -414,7 +414,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;
 		}
@@ -457,8 +457,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++;
@@ -489,7 +488,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));
 	}
 
@@ -840,8 +839,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