mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-09 11:28:25 +00:00
Move where fdno is set to the default value to *after* the read callback of the channel driver is called.
We have to do this as the underlying channel driver may need the fdno value to determine what to read. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@179671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2061,12 +2061,6 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
|
|||||||
}
|
}
|
||||||
prestate = chan->_state;
|
prestate = chan->_state;
|
||||||
|
|
||||||
/*
|
|
||||||
* Reset the recorded file descriptor that triggered this read so that we can
|
|
||||||
* easily detect when ast_read() is called without properly using ast_waitfor().
|
|
||||||
*/
|
|
||||||
chan->fdno = -1;
|
|
||||||
|
|
||||||
/* Read and ignore anything on the alertpipe, but read only
|
/* Read and ignore anything on the alertpipe, but read only
|
||||||
one sizeof(blah) per frame that we send from it */
|
one sizeof(blah) per frame that we send from it */
|
||||||
if (chan->alertpipe[0] > -1) {
|
if (chan->alertpipe[0] > -1) {
|
||||||
@@ -2191,6 +2185,12 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
|
|||||||
ast_log(LOG_WARNING, "No read routine on channel %s\n", chan->name);
|
ast_log(LOG_WARNING, "No read routine on channel %s\n", chan->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset the recorded file descriptor that triggered this read so that we can
|
||||||
|
* easily detect when ast_read() is called without properly using ast_waitfor().
|
||||||
|
*/
|
||||||
|
chan->fdno = -1;
|
||||||
|
|
||||||
if (f) {
|
if (f) {
|
||||||
/* if the channel driver returned more than one frame, stuff the excess
|
/* if the channel driver returned more than one frame, stuff the excess
|
||||||
into the readq for the next ast_read call (note that we can safely assume
|
into the readq for the next ast_read call (note that we can safely assume
|
||||||
|
|||||||
Reference in New Issue
Block a user