Merged revisions 303467 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r303467 | qwell | 2011-01-24 11:20:03 -0600 (Mon, 24 Jan 2011) | 22 lines
  
  Merged revisions 303285 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r303285 | qwell | 2011-01-21 15:48:09 -0600 (Fri, 21 Jan 2011) | 15 lines
    
    Merged revisions 303284 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r303284 | qwell | 2011-01-21 15:45:34 -0600 (Fri, 21 Jan 2011) | 8 lines
      
      Reset configuration before parsing users.conf.
      
      Some values configured in chan_dahdi.conf were able to leak in to users.conf
      configuration.  This was surprising users, and potentially setting non-sane
      "defaults".
      
      ASTNOW-125
    ........
  ................
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@303468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jason Parker
2011-01-24 17:21:12 +00:00
parent 1c6bb4c494
commit 54f6c31a27
+7 -3
View File
@@ -17578,7 +17578,7 @@ static void deep_copy_dahdi_chan_conf(struct dahdi_chan_conf *dest, const struct
* \retval 0 on success.
* \retval -1 on error.
*/
static int setup_dahdi_int(int reload, struct dahdi_chan_conf *base_conf, struct dahdi_chan_conf *conf)
static int setup_dahdi_int(int reload, struct dahdi_chan_conf *default_conf, struct dahdi_chan_conf *base_conf, struct dahdi_chan_conf *conf)
{
struct ast_config *cfg;
struct ast_config *ucfg;
@@ -17736,6 +17736,8 @@ static int setup_dahdi_int(int reload, struct dahdi_chan_conf *base_conf, struct
if (ucfg) {
const char *chans;
/* Reset base_conf, so things dont leak from dahdi_chan.conf */
deep_copy_dahdi_chan_conf(base_conf, default_conf);
process_dahdi(base_conf, "", ast_variable_browse(ucfg, "general"), 1, 0);
for (cat = ast_category_browse(ucfg, NULL); cat ; cat = ast_category_browse(ucfg, cat)) {
@@ -17822,14 +17824,16 @@ static int setup_dahdi_int(int reload, struct dahdi_chan_conf *base_conf, struct
static int setup_dahdi(int reload)
{
int res;
struct dahdi_chan_conf default_conf = dahdi_chan_conf_default();
struct dahdi_chan_conf base_conf = dahdi_chan_conf_default();
struct dahdi_chan_conf conf = dahdi_chan_conf_default();
if (base_conf.chan.cc_params && conf.chan.cc_params) {
res = setup_dahdi_int(reload, &base_conf, &conf);
if (default_conf.chan.cc_params && base_conf.chan.cc_params && conf.chan.cc_params) {
res = setup_dahdi_int(reload, &default_conf, &base_conf, &conf);
} else {
res = -1;
}
ast_cc_config_params_destroy(default_conf.chan.cc_params);
ast_cc_config_params_destroy(base_conf.chan.cc_params);
ast_cc_config_params_destroy(conf.chan.cc_params);