From acd2b6d1105dfd9626334d458a3c30dd10f89a02 Mon Sep 17 00:00:00 2001 From: markster Date: Wed, 28 Jan 2004 01:29:47 +0000 Subject: Save global variables across "save dialplan" (bug #426) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2084 f38db490-d61c-443f-a65b-d21fe96a405b --- pbx/pbx_config.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'pbx/pbx_config.c') diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c index d68c5adf4..7f7af1b10 100755 --- a/pbx/pbx_config.c +++ b/pbx/pbx_config.c @@ -903,6 +903,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) { char filename[256]; struct ast_context *c; + struct ast_config *cfg; + struct ast_variable *v; int context_header_written; int incomplete = 0; /* incomplete config write? */ FILE *output; @@ -942,10 +944,13 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) snprintf(filename, sizeof(filename), "%s/%s", (char *)ast_config_AST_CONFIG_DIR, config); + cfg = ast_load("extensions.conf"); + /* try to lock contexts list */ if (ast_lock_contexts()) { ast_cli(fd, "Failed to lock contexts list\n"); ast_mutex_unlock(&save_dialplan_lock); + ast_destroy(cfg); return RESULT_FAILURE; } @@ -955,6 +960,7 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) filename); ast_unlock_contexts(); ast_mutex_unlock(&save_dialplan_lock); + ast_destroy(cfg); return RESULT_FAILURE; } @@ -963,6 +969,17 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) static_config ? "yes" : "no", write_protect_config ? "yes" : "no"); + if ((v = ast_variable_browse(cfg, "globals"))) { + fprintf(output, "[globals]\n"); + while(v) { + fprintf(output, "%s => %s\n", v->name, v->value); + v = v->next; + } + fprintf(output, "\n"); + } + + ast_destroy(cfg); + /* walk all contexts */ c = ast_walk_contexts(NULL); while (c) { -- cgit v1.2.3