Make a couple of changes with regards to a new message printed in ast_read().

"ast_read() called with no recorded file descriptor" is a new message added
after a bug was discovered. Unfortunately, it seems there are a bunch of places
that potentially make such calls to ast_read() and trigger this error message
to be displayed. This commit does two things to help to make this message appear
less.

First, the message has been downgraded to a debug level message if dev mode is
not enabled. The message means a lot more to developers than it does to end users,
and so developers should take an effort to be sure to call ast_read only when
a channel is ready to be read from. However, since this doesn't actually cause an
error in operation and is not something a user can easily fix, we should not spam
their console with these messages.

Second, the message has been moved to after the check for any pending masquerades.
ast_read() being called with no recorded file descriptor should not interfere with
a masquerade taking place.

This could be seen as a simple way of resolving issue #14723. However, I still want
to try to clear out the existing ways of triggering this message, since I feel that
would be a better resolution for the issue.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@186984 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2009-04-08 15:26:46 +00:00
parent 3c97fd86c5
commit 6562e1025c

View File

@@ -2039,12 +2039,6 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
usleep(1);
}
if (chan->fdno == -1) {
ast_log(LOG_ERROR, "ast_read() called with no recorded file descriptor.\n");
f = &ast_null_frame;
goto done;
}
if (chan->masq) {
if (ast_do_masquerade(chan))
ast_log(LOG_WARNING, "Failed to perform masquerade\n");
@@ -2053,6 +2047,18 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio)
goto done;
}
if (chan->fdno == -1) {
#ifdef AST_DEVMODE
ast_log(LOG_ERROR, "ast_read() called with no recorded file descriptor.\n");
#else
if (option_debug > 1) {
ast_log(LOG_DEBUG, "ast_read() called with no recorded file descriptor.\n");
}
#endif
f = &ast_null_frame;
goto done;
}
/* Stop if we're a zombie or need a soft hangup */
if (ast_test_flag(chan, AST_FLAG_ZOMBIE) || ast_check_hangup(chan)) {
if (chan->generator)