Skip to content
Snippets Groups Projects
Commit ffc9f891 authored by Tilghman Lesher's avatar Tilghman Lesher
Browse files

On socket-based connections, there is no error FD, so don't try waiting on one.

(closes issue #12697)
 Reported by: ctooley
 Patches: 
       fix_externalivr_waitfor_nandfds-v3.diff uploaded by ctooley (license 136)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent e1ae86f6
No related branches found
No related tags found
No related merge requests found
......@@ -379,7 +379,7 @@ static int app_exec(struct ast_channel *chan, void *data)
if (!ser) {
goto exit;
}
res = eivr_comm(chan, u, ser->fd, ser->fd, 0, pipe_delim_argbuf);
res = eivr_comm(chan, u, ser->fd, ser->fd, -1, pipe_delim_argbuf);
} else {
if (pipe(child_stdin)) {
......@@ -495,7 +495,7 @@ static int eivr_comm(struct ast_channel *chan, struct ivr_localuser *u,
ast_chan_log(LOG_WARNING, chan, "Could not open stream to receive commands\n");
goto exit;
}
if(eivr_errors_fd) { /* if opening a socket connection, error stream will not be used */
if (eivr_errors_fd > -1) { /* if opening a socket connection, error stream will not be used */
if (!(eivr_errors = fdopen(eivr_errors_fd, "r"))) {
ast_chan_log(LOG_WARNING, chan, "Could not open stream to receive errors\n");
goto exit;
......@@ -529,7 +529,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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment