]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add more nested var tricks
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 7 Nov 2007 18:34:56 +0000 (18:34 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 7 Nov 2007 18:34:56 +0000 (18:34 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6174 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_channel.c

index 6697a5da85655e7bf1a805a5d1a9c66017d0c429..25dec741adfccd7e4f48ff1701b9c783f3b51783 100644 (file)
@@ -1382,7 +1382,7 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
 
                                if (vtype == 1) {
                                        char *expanded = NULL;
-
+                                       
                                        if ((expanded = switch_channel_expand_variables(channel, (char *)vname)) == vname) {
                                                expanded = NULL;
                                        } else {
@@ -1397,7 +1397,13 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
                                        SWITCH_STANDARD_STREAM(stream);
 
                                        if (stream.data) {
-
+                                               char *expanded_vname = NULL;
+                                               
+                                               if ((expanded_vname = switch_channel_expand_variables(channel, (char *)vname)) == vname) {
+                                                       expanded_vname = NULL;
+                                               } else {
+                                                       vname = expanded_vname;
+                                               }
 
                                                if ((expanded = switch_channel_expand_variables(channel, vval)) == vval) {
                                                        expanded = NULL;
@@ -1413,6 +1419,7 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
                                                }
                                                
                                                switch_safe_free(expanded);
+                                               switch_safe_free(expanded_vname);
                                                
                                        } else {
                                                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error!\n");