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. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162891 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
a039a65656
commit
040e552c26
1 changed files with 5 additions and 5 deletions
|
@ -414,7 +414,7 @@ static int spawn_mp3(struct mohclass *class)
|
||||||
files = 1;
|
files = 1;
|
||||||
} else {
|
} else {
|
||||||
dir = opendir(class->dir);
|
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);
|
ast_log(LOG_WARNING, "%s is not a valid directory\n", class->dir);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -457,8 +457,7 @@ static int spawn_mp3(struct mohclass *class)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strncasecmp(class->dir, "http://", 7)) {
|
||||||
if (strstr(class->dir,"http://") || strstr(class->dir,"HTTP://")) {
|
|
||||||
ast_copy_string(fns[files], class->dir, sizeof(fns[files]));
|
ast_copy_string(fns[files], class->dir, sizeof(fns[files]));
|
||||||
argv[argc++] = fns[files];
|
argv[argc++] = fns[files];
|
||||||
files++;
|
files++;
|
||||||
|
@ -489,7 +488,7 @@ static int spawn_mp3(struct mohclass *class)
|
||||||
close(fds[1]);
|
close(fds[1]);
|
||||||
return -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));
|
sleep(respawn_time - (time(NULL) - class->start));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -840,8 +839,9 @@ static int moh_generate(struct ast_channel *chan, void *data, int len, int sampl
|
||||||
short buf[1280 + AST_FRIENDLY_OFFSET / 2];
|
short buf[1280 + AST_FRIENDLY_OFFSET / 2];
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
if (!moh->parent->pid)
|
if (!moh->parent->pid && moh->parent->inuse == 0) {
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
len = ast_codec_get_len(moh->parent->format, samples);
|
len = ast_codec_get_len(moh->parent->format, samples);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue