chan_dahdi: Don't ignore setvar when using configuration section scheme.
authorRichard Mudgett <rmudgett@digium.com>
Fri, 19 Dec 2014 17:34:33 +0000 (17:34 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Fri, 19 Dec 2014 17:34:33 +0000 (17:34 +0000)
When the configuration section scheme of chan_dahdi.conf is used (keyword
dahdichan instead of channel) all setvar= options are completely ignored.
No variable defined this way appears in the created DAHDI channels.

* Move the clearing of setvar values to after the deferred processing of
dahdichan.

AST-1378 #close
Reported by: Guenther Kelleter
Patch by: Guenther Kelleter
........

Merged revisions 429825 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 429829 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@429830 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_dahdi.c

index ddaeccd..bb6bd2d 100644 (file)
@@ -18927,12 +18927,6 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
                        ast_log(LOG_WARNING, "Ignoring any changes to '%s' (on reload) at line %d.\n", v->name, v->lineno);
        }
 
-       /* Since confp has already filled invidual dahdi_pvt objects with channels at this point, clear the variables in confp's pvt. */
-       if (confp->chan.vars) {
-               ast_variables_destroy(confp->chan.vars);
-               confp->chan.vars = NULL;
-       }
-
        if (dahdichan) {
                /* Process the deferred dahdichan value. */
                if (build_channels(confp, dahdichan->value, reload, dahdichan->lineno)) {
@@ -18946,6 +18940,15 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
                }
        }
 
+       /*
+        * Since confp has already filled individual dahdi_pvt objects with channels
+        * at this point, clear the variables in confp's pvt.
+        */
+       if (confp->chan.vars) {
+               ast_variables_destroy(confp->chan.vars);
+               confp->chan.vars = NULL;
+       }
+
        /* mark the first channels of each DAHDI span to watch for their span alarms */
        for (tmp = iflist, y=-1; tmp; tmp = tmp->next) {
                if (!tmp->destroy && tmp->span != y) {