mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 20:08:17 +00:00
Fixes and closes bug number 12804
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@123075 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -304,7 +304,7 @@ static int app_exec(struct ast_channel *chan, void *data)
|
||||
int res = -1;
|
||||
int gen_active = 0;
|
||||
int pid;
|
||||
char *buf, *pipe_delim_argbuf, *pdargbuf_ptr;
|
||||
char *buf, *comma_delim_argbuf;
|
||||
struct ivr_localuser foo = {
|
||||
.playlist = AST_LIST_HEAD_INIT_VALUE,
|
||||
.finishlist = AST_LIST_HEAD_INIT_VALUE,
|
||||
@@ -330,9 +330,7 @@ static int app_exec(struct ast_channel *chan, void *data)
|
||||
AST_STANDARD_APP_ARGS(args, buf);
|
||||
|
||||
/* copy args and replace commas with pipes */
|
||||
pipe_delim_argbuf = ast_strdupa(data);
|
||||
while((pdargbuf_ptr = strchr(pipe_delim_argbuf, ',')) != NULL)
|
||||
pdargbuf_ptr[0] = '|';
|
||||
comma_delim_argbuf = ast_strdupa(data);
|
||||
|
||||
if (pipe(child_stdin)) {
|
||||
ast_chan_log(LOG_WARNING, chan, "Could not create pipe for child input: %s\n", strerror(errno));
|
||||
@@ -388,7 +386,7 @@ static int app_exec(struct ast_channel *chan, void *data)
|
||||
child_stdout[1] = 0;
|
||||
close(child_stderr[1]);
|
||||
child_stderr[1] = 0;
|
||||
res = eivr_comm(chan, u, child_stdin[1], child_stdout[0], child_stderr[0], pipe_delim_argbuf);
|
||||
res = eivr_comm(chan, u, child_stdin[1], child_stdout[0], child_stderr[0], comma_delim_argbuf);
|
||||
|
||||
exit:
|
||||
if (gen_active)
|
||||
@@ -480,7 +478,7 @@ static int eivr_comm(struct ast_channel *chan, struct ivr_localuser *u,
|
||||
errno = 0;
|
||||
exception = 0;
|
||||
|
||||
rchan = ast_waitfor_nandfds(&chan, 1, waitfds, 2, &exception, &ready_fd, &ms);
|
||||
rchan = ast_waitfor_nandfds(&chan, 1, waitfds, (eivr_errors_fd == 0) ? 1 : 2, &exception, &ready_fd, &ms);
|
||||
|
||||
if (!AST_LIST_EMPTY(&u->finishlist)) {
|
||||
AST_LIST_LOCK(&u->finishlist);
|
||||
|
||||
Reference in New Issue
Block a user