mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 00:30:20 +00:00
Fix checking for CONFIG_STATUS_FILEINVALID so that modules don't crash upon trying to parse an invalid config
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -97,7 +97,7 @@ static int load_config(void)
|
||||
struct ast_flags config_flags = { 0 }; /* Part of our config comes from the database */
|
||||
|
||||
cfg = ast_config_load(CONFIG, config_flags);
|
||||
if (!cfg) {
|
||||
if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_WARNING, "Unable to load " CONFIG ". No adaptive ODBC CDRs.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ static int load_config(int reload)
|
||||
loguniqueid = 0;
|
||||
loguserfield = 0;
|
||||
|
||||
if (!(cfg = ast_config_load(config, config_flags))) {
|
||||
if (!(cfg = ast_config_load(config, config_flags)) || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_WARNING, "unable to load config: %s\n", config);
|
||||
return 0;
|
||||
} else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
|
||||
|
||||
@@ -67,6 +67,11 @@ static int load_config(int reload)
|
||||
if ((cfg = ast_config_load("cdr_custom.conf", config_flags)) == CONFIG_STATUS_FILEUNCHANGED)
|
||||
return 0;
|
||||
|
||||
if (cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_ERROR, "Invalid config file\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
strcpy(format, "");
|
||||
strcpy(master, "");
|
||||
ast_mutex_lock(&lock);
|
||||
|
||||
@@ -62,6 +62,11 @@ static int load_config(int reload)
|
||||
if (cfg == CONFIG_STATUS_FILEUNCHANGED)
|
||||
return 0;
|
||||
|
||||
if (cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_ERROR, "Config file '%s' could not be parsed\n", CONF_FILE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (reload && customfields) {
|
||||
ast_free(customfields);
|
||||
}
|
||||
|
||||
@@ -161,7 +161,7 @@ static int odbc_load_module(int reload)
|
||||
|
||||
do {
|
||||
cfg = ast_config_load(config_file, config_flags);
|
||||
if (!cfg) {
|
||||
if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_WARNING, "cdr_odbc: Unable to load config for ODBC CDR's: %s\n", config_file);
|
||||
res = AST_MODULE_LOAD_DECLINE;
|
||||
break;
|
||||
@@ -228,7 +228,7 @@ static int odbc_load_module(int reload)
|
||||
}
|
||||
} while (0);
|
||||
|
||||
if (cfg && cfg != CONFIG_STATUS_FILEUNCHANGED)
|
||||
if (cfg && cfg != CONFIG_STATUS_FILEUNCHANGED && cfg != CONFIG_STATUS_FILEINVALID)
|
||||
ast_config_destroy(cfg);
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -370,7 +370,7 @@ static int config_module(int reload)
|
||||
struct ast_config *cfg;
|
||||
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
|
||||
|
||||
if ((cfg = ast_config_load(config, config_flags)) == NULL) {
|
||||
if ((cfg = ast_config_load(config, config_flags)) == NULL || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_WARNING, "Unable to load config for PostgreSQL CDR's: %s\n", config);
|
||||
return -1;
|
||||
} else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
|
||||
|
||||
@@ -228,7 +228,7 @@ static int load_module(void)
|
||||
int res;
|
||||
const char *tmp;
|
||||
|
||||
if ((cfg = ast_config_load(cdr_config, config_flags))) {
|
||||
if ((cfg = ast_config_load(cdr_config, config_flags)) && cfg != CONFIG_STATUS_FILEINVALID) {
|
||||
ast_set2_flag(&global_flags, ast_true(ast_variable_retrieve(cfg, "radius", "usegmtime")), RADIUS_FLAG_USEGMTIME);
|
||||
ast_set2_flag(&global_flags, ast_true(ast_variable_retrieve(cfg, "radius", "loguniqueid")), RADIUS_FLAG_LOGUNIQUEID);
|
||||
ast_set2_flag(&global_flags, ast_true(ast_variable_retrieve(cfg, "radius", "loguserfield")), RADIUS_FLAG_LOGUSERFIELD);
|
||||
|
||||
@@ -158,7 +158,7 @@ static int load_config(int reload)
|
||||
struct ast_variable *mappingvar;
|
||||
const char *tmp;
|
||||
|
||||
if (!(cfg = ast_config_load(config_file, config_flags))) {
|
||||
if (!(cfg = ast_config_load(config_file, config_flags)) || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
if (reload)
|
||||
ast_log(LOG_WARNING, "Failed to reload configuration file.\n");
|
||||
else
|
||||
|
||||
@@ -426,7 +426,7 @@ static int tds_load_module(int reload)
|
||||
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
|
||||
|
||||
cfg = ast_config_load(config, config_flags);
|
||||
if (!cfg) {
|
||||
if (!cfg || cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
ast_log(LOG_NOTICE, "Unable to load TDS config for CDRs: %s\n", config);
|
||||
return 0;
|
||||
} else if (cfg == CONFIG_STATUS_FILEUNCHANGED)
|
||||
|
||||
Reference in New Issue
Block a user