diff options
Diffstat (limited to 'funcs')
-rw-r--r-- | funcs/func_odbc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/funcs/func_odbc.c b/funcs/func_odbc.c index 8bc070767..ce25d0fee 100644 --- a/funcs/func_odbc.c +++ b/funcs/func_odbc.c @@ -416,17 +416,21 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu if ((tmp = ast_variable_retrieve(cfg, catg, "dsn"))) { ast_copy_string((*query)->dsn, tmp, sizeof((*query)->dsn)); + } else if ((tmp = ast_variable_retrieve(cfg, catg, "writehandle")) || (tmp = ast_variable_retrieve(cfg, catg, "readhandle"))) { + ast_log(LOG_WARNING, "Separate read and write handles are not supported in this version of func_odbc.so\n"); + ast_copy_string((*query)->dsn, tmp, sizeof((*query)->dsn)); } else { free(*query); *query = NULL; + ast_log(LOG_ERROR, "No database handle was specified for func_odbc class '%s'\n", catg); return -1; } - if ((tmp = ast_variable_retrieve(cfg, catg, "read"))) { + if ((tmp = ast_variable_retrieve(cfg, catg, "read")) || (tmp = ast_variable_retrieve(cfg, catg, "readsql"))) { ast_copy_string((*query)->sql_read, tmp, sizeof((*query)->sql_read)); } - if ((tmp = ast_variable_retrieve(cfg, catg, "write"))) { + if ((tmp = ast_variable_retrieve(cfg, catg, "write")) || (tmp = ast_variable_retrieve(cfg, catg, "writesql"))) { ast_copy_string((*query)->sql_write, tmp, sizeof((*query)->sql_write)); } @@ -491,6 +495,8 @@ static int init_acf_query(struct ast_config *cfg, char *catg, struct acf_odbc_qu "${VALUE} or parsed as ${VAL1}, ${VAL2}, ... ${VALn}.\n" "This function may only be set.\nSQL:\n%s\n", (*query)->sql_write); + } else { + ast_log(LOG_ERROR, "No SQL was found for func_odbc class '%s'\n", catg); } /* Could be out of memory, or could be we have neither sql_read nor sql_write */ |