[Freeswitch-svn] [commit] r13051 - freeswitch/trunk/src/mod/applications/mod_cidlookup
FreeSWITCH SVN
rupa at freeswitch.org
Wed Apr 15 18:54:15 PDT 2009
Author: rupa
Date: Wed Apr 15 20:54:15 2009
New Revision: 13051
Log:
update xml config callback code
Modified:
freeswitch/trunk/src/mod/applications/mod_cidlookup/mod_cidlookup.c
Modified: freeswitch/trunk/src/mod/applications/mod_cidlookup/mod_cidlookup.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_cidlookup/mod_cidlookup.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_cidlookup/mod_cidlookup.c Wed Apr 15 20:54:15 2009
@@ -106,35 +106,39 @@
#ifdef SWITCH_HAVE_ODBC
char *odbc_user = NULL;
char *odbc_pass = NULL;
+ char *odbc_dsn = NULL;
switch_odbc_handle_t *odbc = NULL;
- if ((callback_type == CONFIG_LOAD || callback_type == CONFIG_RELOAD) && changed) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "dsn data: %s\n", globals.odbc_dsn);
+ if (globals.db_mutex) {
+ switch_mutex_lock(globals.db_mutex);
}
- /* setup dsn */
- if (globals.odbc_dsn) {
- if ((odbc_user = strchr(globals.odbc_dsn, ':'))) {
- *odbc_user++ = '\0';
- if ((odbc_pass = strchr(odbc_user, ':'))) {
- *odbc_pass++ = '\0';
+ if ((callback_type == CONFIG_LOAD || callback_type == CONFIG_RELOAD) && changed) {
+ odbc_dsn = strdup(*((char**)data->ptr));
+
+ if(switch_strlen_zero(odbc_dsn)) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No local database defined.\n");
+ } else {
+ if ((odbc_user = strchr(odbc_dsn, ':'))) {
+ *odbc_user++ = '\0';
+ if ((odbc_pass = strchr(odbc_user, ':'))) {
+ *odbc_pass++ = '\0';
+ }
+ }
+
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Connecting to dsn: %s, %s, %s.\n", globals.odbc_dsn, odbc_user, odbc_pass);
+
+ /* setup dsn */
+
+ if (!(odbc = switch_odbc_handle_new(odbc_dsn, odbc_user, odbc_pass))) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Cannot Open ODBC Database!\n");
+ switch_goto_status(SWITCH_STATUS_FALSE, done);
+ }
+ if (switch_odbc_handle_connect(odbc) != SWITCH_ODBC_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Cannot Open ODBC Database!\n");
+ switch_goto_status(SWITCH_STATUS_FALSE, done);
}
- }
-
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Connecting to dsn: %s, %s, %s.\n", globals.odbc_dsn, odbc_user, odbc_pass);
-
- if (globals.db_mutex) {
- switch_mutex_lock(globals.db_mutex);
- }
-
- if (!(odbc = switch_odbc_handle_new(globals.odbc_dsn, odbc_user, odbc_pass))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Cannot Open ODBC Database!\n");
- switch_goto_status(SWITCH_STATUS_FALSE, done);
- }
- if (switch_odbc_handle_connect(odbc) != SWITCH_ODBC_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Cannot Open ODBC Database!\n");
- switch_goto_status(SWITCH_STATUS_FALSE, done);
}
/* ok, we have a new connection, tear down old one */
@@ -158,6 +162,7 @@
if (globals.db_mutex) {
switch_mutex_unlock(globals.db_mutex);
}
+ switch_safe_free(odbc_dsn);
#endif
return status;
}
@@ -168,8 +173,8 @@
SWITCH_CONFIG_ITEM_STRING_STRDUP("url", CONFIG_RELOAD, &globals.url, NULL, "http://server.example.com/app?number=${caller_id_number}", "URL for the CID lookup service"),
SWITCH_CONFIG_ITEM("cache", SWITCH_CONFIG_BOOL, CONFIG_RELOAD, &globals.cache, SWITCH_FALSE, NULL, "true|false", "whether to cache via cidlookup"),
SWITCH_CONFIG_ITEM("cache-expire", SWITCH_CONFIG_INT, CONFIG_RELOAD, &globals.cache_expire, (void *)300, NULL, "expire", "seconds to preserve num->name cache"),
- SWITCH_CONFIG_ITEM_STRING_STRDUP("sql", CONFIG_RELOAD, &globals.sql, NULL, "sql whre number=${caller_id_number}", "SQL to run if overriding CID"),
- SWITCH_CONFIG_ITEM_CALLBACK("odbc-dsn", SWITCH_CONFIG_STRING, CONFIG_RELOAD, &globals.odbc_dsn, NULL, config_callback_dsn, &config_opt_dsn,
+ SWITCH_CONFIG_ITEM_STRING_STRDUP("sql", CONFIG_RELOAD, &globals.sql, "", "sql whre number=${caller_id_number}", "SQL to run if overriding CID"),
+ SWITCH_CONFIG_ITEM_CALLBACK("odbc-dsn", SWITCH_CONFIG_STRING, CONFIG_RELOAD, &globals.odbc_dsn, "", config_callback_dsn, &config_opt_dsn,
"db:user:passwd", "Database to use."),
SWITCH_CONFIG_ITEM_END()
};
@@ -186,7 +191,6 @@
static void event_handler(switch_event_t *event)
{
do_config(SWITCH_TRUE);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "cidlookup Reloaded\n");
}
#ifdef SWITCH_HAVE_ODBC
More information about the Freeswitch-svn
mailing list