aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-08 15:26:46 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2009-04-08 15:26:46 +0000
commitd956c7e2c74d68a0244ea233182c4a74e01a46f3 (patch)
treebaf53475a6dca0a14fde65a6bf6532d869ef6959 /main
parent5f3ef918a33e17eb79adae00e7959424914d0f1d (diff)
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: http://svn.digium.com/svn/asterisk/branches/1.4@186984 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/channel.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/main/channel.c b/main/channel.c
index bfe3183bd..8ba8c6166 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -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)