aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/pbx_config.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-01-12 05:05:35 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-01-12 05:05:35 +0000
commit2f331c310e79ede902f38ea92b2077509b067b28 (patch)
tree02f9ec032bd53fec6e9b9004db327ad9991cf73a /pbx/pbx_config.c
parenta3c67a2026e4c04913cf8c4add1f5986e1adbd16 (diff)
Add ww's improved syslog support (bug #587)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1973 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_config.c')
-rwxr-xr-xpbx/pbx_config.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c
index d68c5adf4..b0a55978d 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 *var;
int context_header_written;
int incomplete = 0; /* incomplete config write? */
FILE *output;
@@ -922,6 +924,9 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
return RESULT_FAILURE;
}
+ /* Load old file first */
+ cfg = ast_load(config);
+
/* have config path? */
if (argc == 3) {
/* is there extension.conf too? */
@@ -946,6 +951,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
if (ast_lock_contexts()) {
ast_cli(fd, "Failed to lock contexts list\n");
ast_mutex_unlock(&save_dialplan_lock);
+ if (cfg)
+ ast_destroy(cfg);
return RESULT_FAILURE;
}
@@ -955,6 +962,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
filename);
ast_unlock_contexts();
ast_mutex_unlock(&save_dialplan_lock);
+ if (cfg)
+ ast_destroy(cfg);
return RESULT_FAILURE;
}
@@ -963,6 +972,15 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
static_config ? "yes" : "no",
write_protect_config ? "yes" : "no");
+ var = ast_variable_walk(cfg, "globals");
+ if (var) {
+ fprintf(output, "[globals]\n");
+ while(var) {
+ fprintf(output, "%s => %s", var->name, var->value);
+ var = var->next;
+ }
+ }
+
/* walk all contexts */
c = ast_walk_contexts(NULL);
while (c) {
@@ -1079,6 +1097,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[])
ast_unlock_contexts();
ast_mutex_unlock(&save_dialplan_lock);
fclose(output);
+ if (cfg)
+ ast_destroy(cfg);
if (incomplete) {
ast_cli(fd, "Saved dialplan is incomplete\n");