]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 186985 via svnmerge from
authorMark Michelson <mmichelson@digium.com>
Wed, 8 Apr 2009 15:28:50 +0000 (15:28 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 8 Apr 2009 15:28:50 +0000 (15:28 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r186985 | mmichelson | 2009-04-08 10:27:41 -0500 (Wed, 08 Apr 2009) | 30 lines

  Merged revisions 186984 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r186984 | mmichelson | 2009-04-08 10:26:46 -0500 (Wed, 08 Apr 2009) | 24 lines

    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.6.1@186987 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/channel.c

index e54742982930c97ad7e70c96cdfb58b2911c1d7f..ff9c68f6008a7201c355969b9d82bbdff15cf5b2 100644 (file)
@@ -2513,12 +2513,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");
@@ -2527,6 +2521,16 @@ 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
+               ast_debug(2, "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)