[asterisk-commits] mmichelson: branch 1.4 r186984 - /branches/1.4/main/channel.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Apr 8 10:27:19 CDT 2009


Author: mmichelson
Date: Wed Apr  8 10:26:46 2009
New Revision: 186984

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=186984
Log:
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.


Modified:
    branches/1.4/main/channel.c

Modified: branches/1.4/main/channel.c
URL: http://svn.digium.com/svn-view/asterisk/branches/1.4/main/channel.c?view=diff&rev=186984&r1=186983&r2=186984
==============================================================================
--- branches/1.4/main/channel.c (original)
+++ branches/1.4/main/channel.c Wed Apr  8 10:26:46 2009
@@ -2039,17 +2039,23 @@
 		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");
 		else
 			f =  &ast_null_frame;
+		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;
 	}
 




More information about the asterisk-commits mailing list