mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-03 12:25:35 +00:00
Merged revisions 207361 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r207361 | russell | 2009-07-20 11:36:15 -0500 (Mon, 20 Jul 2009) | 16 lines Merged revisions 207360 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r207360 | russell | 2009-07-20 11:26:24 -0500 (Mon, 20 Jul 2009) | 9 lines Only do the chan->fdno check in ast_read() in a developer build. I changed this check to only happen in a dev-mode build. I also added a comment explaining what is going on. I also made it so that detection of this situation does not affect ast_read() operation. (closes issue #14723) Reported by: seadweller ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@207362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2581,15 +2581,20 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chan->fdno == -1) {
|
|
||||||
#ifdef AST_DEVMODE
|
#ifdef AST_DEVMODE
|
||||||
|
/*
|
||||||
|
* The ast_waitfor() code records which of the channel's file descriptors reported that
|
||||||
|
* data is available. In theory, ast_read() should only be called after ast_waitfor()
|
||||||
|
* reports that a channel has data available for reading. However, there still may be
|
||||||
|
* some edge cases throughout the code where ast_read() is called improperly. This can
|
||||||
|
* potentially cause problems, so if this is a developer build, make a lot of noise if
|
||||||
|
* this happens so that it can be addressed.
|
||||||
|
*/
|
||||||
|
if (chan->fdno == -1) {
|
||||||
ast_log(LOG_ERROR, "ast_read() called with no recorded file descriptor.\n");
|
ast_log(LOG_ERROR, "ast_read() called with no recorded file descriptor.\n");
|
||||||
#else
|
|
||||||
ast_debug(2, "ast_read() called with no recorded file descriptor.\n");
|
|
||||||
#endif
|
|
||||||
f = &ast_null_frame;
|
|
||||||
goto done;
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
prestate = chan->_state;
|
prestate = chan->_state;
|
||||||
|
|
||||||
/* Read and ignore anything on the alertpipe, but read only
|
/* Read and ignore anything on the alertpipe, but read only
|
||||||
|
|||||||
Reference in New Issue
Block a user