mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
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
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user