Revision
14925
Author
ledr
Date
2009-09-19 14:12:30 -0500 (Sat, 19 Sep 2009)

Log Message

use mem pool passed to load func instead of create one myself

Modified Paths

Diff

Modified: freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/mod_xml_odbc.c (14924 => 14925)


--- freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/mod_xml_odbc.c	2009-09-19 15:26:19 UTC (rev 14924)
+++ freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/mod_xml_odbc.c	2009-09-19 19:12:30 UTC (rev 14925)
@@ -73,7 +73,7 @@
 
 #define XML_ODBC_SYNTAX "[debug_on|debug_off]"
 
-static void event_handler(switch_event_t *event)
+static void reload_event_handler(switch_event_t *event)
 {
 	do_config(SWITCH_TRUE);
 }
@@ -619,25 +619,27 @@
 {
 	switch_api_interface_t *xml_odbc_api_interface;
 
-	switch_core_new_memory_pool(&globals.pool);
-	switch_mutex_init(&globals.mutex, SWITCH_MUTEX_NESTED, globals.pool);
+	memset(&globals, 0, sizeof(globals));
 
+	globals.pool = pool;
+
 	if (!switch_odbc_available()) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "You must have ODBC support in FreeSWITCH to use this module\n");
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "\t./configure --enable-core-odbc-support\n");
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No core ODBC available!\n");
 		return SWITCH_STATUS_FALSE;
 	}
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "XML ODBC module loading...\n");
 
-	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
-
 	if (do_config(SWITCH_FALSE) != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to load xml_odbc config file\n");
 		return SWITCH_STATUS_FALSE;
 	}
 
-	if ((switch_event_bind_removable(modname, SWITCH_EVENT_RELOADXML, NULL, event_handler, NULL, &NODE) != SWITCH_STATUS_SUCCESS)) {
+	/* connect my internal structure to the blank pointer passed to me */
+	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
+
+	/* subscribe to reloadxml event, and hook it to reload_event_handler */
+	if ((switch_event_bind_removable(modname, SWITCH_EVENT_RELOADXML, NULL, reload_event_handler, NULL, &NODE) != SWITCH_STATUS_SUCCESS)) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't bind event!\n");
 		return SWITCH_STATUS_TERM;
 	}
@@ -671,5 +673,5 @@
  * c-basic-offset:4
  * End:
  * For VIM:
-* vim:set softtabstop=4 shiftwidth=4 tabstop=4:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4:
  */