diff --git a/src/switch_config.c b/src/switch_config.c index 926631bf7e..856299ea3c 100644 --- a/src/switch_config.c +++ b/src/switch_config.c @@ -137,7 +137,9 @@ SWITCH_DECLARE(int) switch_config_next_pair(switch_config *cfg, char **var, char } cfg->catno = 0; cfg->lineno = 0; - + *var = ""; + *val = ""; + return 1; } else { switch_copy_string(cfg->category, *var, sizeof(cfg->category)); cfg->catno++; @@ -145,6 +147,8 @@ SWITCH_DECLARE(int) switch_config_next_pair(switch_config *cfg, char **var, char continue; } + + if (**var == '#' || **var == ';' || **var == '\n' || **var == '\r') { continue; } @@ -153,7 +157,8 @@ SWITCH_DECLARE(int) switch_config_next_pair(switch_config *cfg, char **var, char break; } - if ((end = strchr(*var, '#')) != 0) { + + if ((end = strchr(*var, '#')) != 0 || (end = strchr(*var, ';')) != 0) { *end = '\0'; end--; } else if ((end = strchr(*var, '\n')) != 0) { @@ -170,6 +175,7 @@ SWITCH_DECLARE(int) switch_config_next_pair(switch_config *cfg, char **var, char } *var = p; + if ((*val = strchr(*var, '=')) == 0) { ret = -1; //log_printf(0, server.log, "Invalid syntax on %s: line %d\n", cfg->path, cfg->lineno); @@ -199,6 +205,7 @@ SWITCH_DECLARE(int) switch_config_next_pair(switch_config *cfg, char **var, char } } + return ret; } diff --git a/src/switch_loadable_module.c b/src/switch_loadable_module.c index 0262cb179f..258cd11e56 100644 --- a/src/switch_loadable_module.c +++ b/src/switch_loadable_module.c @@ -355,6 +355,7 @@ SWITCH_DECLARE(switch_status) switch_loadable_module_init() if (switch_config_open_file(&cfg, cf)) { while (switch_config_next_pair(&cfg, &var, &val)) { count++; + if (!strcasecmp(cfg.category, "modules")) { if (!strcasecmp(var, "load")) { if (!strcasecmp(val, "all")) {