[Freeswitch-svn] [commit] r13867 - freeswitch/trunk/scripts/contrib/ledr/mod_xml_odbc

FreeSWITCH SVN ledr at freeswitch.org
Fri Jun 19 10:33:31 PDT 2009


Author: ledr
Date: Fri Jun 19 12:33:31 2009
New Revision: 13867

Log:
Debug from cli toggles dumping of generated xml


Modified:
   freeswitch/trunk/scripts/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c

Modified: freeswitch/trunk/scripts/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c
==============================================================================
--- freeswitch/trunk/scripts/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c	(original)
+++ freeswitch/trunk/scripts/contrib/ledr/mod_xml_odbc/mod_xml_odbc.c	Fri Jun 19 12:33:31 2009
@@ -45,6 +45,37 @@
 SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_xml_odbc_shutdown);
 SWITCH_MODULE_DEFINITION(mod_xml_odbc, mod_xml_odbc_load, mod_xml_odbc_shutdown, NULL);
 
+static switch_bool_t debug = SWITCH_FALSE;
+
+#define XML_ODBC_SYNTAX "[debug_on|debug_off]"
+
+SWITCH_STANDARD_API(xml_odbc_function)
+{
+	if (session) {
+		return SWITCH_STATUS_FALSE;
+	}
+
+	if (switch_strlen_zero(cmd)) {
+		goto usage;
+	}
+
+	if (!strcasecmp(cmd, "debug_on")) {
+		debug = SWITCH_TRUE;
+	} else if (!strcasecmp(cmd, "debug_off")) {
+		debug = SWITCH_FALSE;
+	} else {
+		goto usage;
+	}
+
+	stream->write_function(stream, "OK\n");
+	return SWITCH_STATUS_SUCCESS;
+
+  usage:
+	stream->write_function(stream, "USAGE: %s\n", XML_ODBC_SYNTAX);
+	return SWITCH_STATUS_SUCCESS;
+}
+
+
 typedef struct xml_binding {
 	char *bindings;
 } xml_binding_t;
@@ -287,7 +318,9 @@
 						}
 					}
 
-//switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "DEBUG DUMP OF XML GENERATED:\n\n%s\n\n", switch_xml_toxml(xml, SWITCH_FALSE));
+					if (debug == SWITCH_TRUE) {
+						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Debug dump of XML generated:\n%s", switch_xml_toxml(xml, SWITCH_FALSE));
+					}
 
 					free(dir_user);
 					dir_user = NULL;
@@ -432,7 +465,7 @@
 	switch_core_new_memory_pool(&globals.pool);
 	switch_mutex_init(&globals.mutex, SWITCH_MUTEX_NESTED, globals.pool);
 
-	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
+	switch_api_interface_t *xml_odbc_api_interface;
 
 #ifndef SWITCH_HAVE_ODBC
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "You must have ODBC support in FreeSWITCH to use this module\n");
@@ -442,6 +475,12 @@
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "XML ODBC module loading...\n");
 
+	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
+
+	SWITCH_ADD_API(xml_odbc_api_interface, "xml_odbc", "XML ODBC", xml_odbc_function, XML_ODBC_SYNTAX);
+	switch_console_set_complete("add xml_odbc debug_on");
+	switch_console_set_complete("add xml_odbc debug_off");
+
 	if (do_config() != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to load xml_odbc config file\n");
 		return SWITCH_STATUS_FALSE;



More information about the Freeswitch-svn mailing list