[asterisk-commits] junky: branch group/ast_log-channelize r57205 - in /team/group/ast_log-channe...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Feb 28 15:59:12 MST 2007


Author: junky
Date: Wed Feb 28 16:59:11 2007
New Revision: 57205

URL: http://svn.digium.com/view/asterisk?view=rev&rev=57205
Log:
add the CLI command core filter channel foo

Modified:
    team/group/ast_log-channelize/include/asterisk/logger.h
    team/group/ast_log-channelize/main/cli.c
    team/group/ast_log-channelize/main/logger.c

Modified: team/group/ast_log-channelize/include/asterisk/logger.h
URL: http://svn.digium.com/view/asterisk/team/group/ast_log-channelize/include/asterisk/logger.h?view=diff&rev=57205&r1=57204&r2=57205
==============================================================================
--- team/group/ast_log-channelize/include/asterisk/logger.h (original)
+++ team/group/ast_log-channelize/include/asterisk/logger.h Wed Feb 28 16:59:11 2007
@@ -85,6 +85,9 @@
 void ast_console_puts_mutable(const char *string);
 void ast_console_toggle_mute(int fd);
 
+/*! Channel to restrict the filter to */
+int ast_cli_add_filter_chan(const char *channel);
+
 #define _A_ __FILE__, __LINE__, __PRETTY_FUNCTION__
 
 #ifdef LOG_DEBUG

Modified: team/group/ast_log-channelize/main/cli.c
URL: http://svn.digium.com/view/asterisk/team/group/ast_log-channelize/main/cli.c?view=diff&rev=57205&r1=57204&r2=57205
==============================================================================
--- team/group/ast_log-channelize/main/cli.c (original)
+++ team/group/ast_log-channelize/main/cli.c Wed Feb 28 16:59:11 2007
@@ -82,6 +82,11 @@
 "Usage: soft hangup <channel>\n"
 "       Request that a channel be hung up. The hangup takes effect\n"
 "       the next time the driver reads or writes from the channel\n";
+
+
+static const char corefilterchannel_help[] =
+"Usage: core filter channel <chan>\n"
+"	Limit the CLI output to that channel\n";
 
 static const char group_show_channels_help[] = 
 "Usage: group show channels [pattern]\n"
@@ -558,6 +563,25 @@
 #undef VERBOSE_FORMAT_STRING
 #undef VERBOSE_FORMAT_STRING2
 }
+
+static int handle_core_filter_channel(int fd, int argc, char *argv[]) 
+{
+	struct ast_channel *chan = NULL;
+	char *chartmp = "(null)";
+	if ( argc < 3 || argc > 4  )
+		return RESULT_SHOWUSAGE;
+	if ( argc == 4 ) { /* if 4, use the specified channel */
+		chan = ast_get_channel_by_name_locked(argv[3]);
+		chartmp = argv[3];
+	}
+	/* if 3, use the NULL from chan initialization */
+
+	ast_cli_add_filter_chan(chartmp); /* Passing the string, cause many the channel doesnt exists yet */
+
+	ast_cli(fd, "Filter set for chan: %s\n", chartmp);
+	return CLI_SUCCESS;
+}
+
 
 static const char showchan_help[] = 
 "Usage: core show channel <channel>\n"
@@ -1006,6 +1030,10 @@
 	{ { "soft", "hangup", NULL },
 	handle_softhangup, "Request a hangup on a given channel",
 	softhangup_help, complete_ch_3 },
+
+	{ { "core", "filter", "channel"}, 
+	handle_core_filter_channel, "Filter the CLI output to certain(s) channel(s)",
+	corefilterchannel_help, complete_ch_3 },
 };
 
 /*!

Modified: team/group/ast_log-channelize/main/logger.c
URL: http://svn.digium.com/view/asterisk/team/group/ast_log-channelize/main/logger.c?view=diff&rev=57205&r1=57204&r2=57205
==============================================================================
--- team/group/ast_log-channelize/main/logger.c (original)
+++ team/group/ast_log-channelize/main/logger.c Wed Feb 28 16:59:11 2007
@@ -115,6 +115,13 @@
 
 static AST_LIST_HEAD_STATIC(logchannels, logchannel);
 
+struct clifilter {
+	int type;	
+	AST_LIST_ENTRY(clifilter) list;
+};
+
+static AST_LIST_HEAD_STATIC(clifilters, clifilter);
+
 enum logmsgtypes {
 	LOGMSG_NORMAL = 0,
 	LOGMSG_VERBOSE,
@@ -138,6 +145,11 @@
 
 static FILE *eventlog;
 static FILE *qlog;
+
+static int clifiltertypes[] = {
+	0,	/* filter channel */
+	1	/* filter pattern */
+};
 
 static char *levels[] = {
 	"DEBUG",
@@ -1070,3 +1082,16 @@
 	
 	return cur ? 0 : -1;
 }
+
+
+/*! that function add a new chan filter to the list of filters */
+int ast_cli_add_filter_chan(const char *chan) {
+	struct clifilter *cf = NULL;
+	//cf->type =0;
+	ast_log(NULL, LOG_NOTICE, "Channel filter is restricted to: %s\n",chan);
+
+
+	return 0;
+}
+
+



More information about the asterisk-commits mailing list