summaryrefslogtreecommitdiff
path: root/main/manager.c
diff options
context:
space:
mode:
authorIvan Poddubny <ivan.poddubny@gmail.com>2015-10-03 14:27:27 +0300
committerIvan Poddubny <ivan.poddubny@gmail.com>2015-10-03 15:15:52 +0300
commit89dec7675d0df2db273a5f3450b0d78732ed0b63 (patch)
treeb13e11d865d1d9a9d1e5a18cf703edaca840a2e3 /main/manager.c
parentace043f4ea1a3029769de86dc21dbcedd47a16d5 (diff)
manager: Fix GetConfigJSON returning invalid JSON
When GetConfigJSON was introduced back in 1.6, it returned each section as an array of strings: ["key=value", "key2=value2"]. Afterwards, it was changed a few times and became ["key": "value", "key2": "value2"], which is not a correct JSON. This patch fixes that by constructing a JSON object {} instead of an array []. Also, the keys "istemplate" and "tempates" that are used to indicate templates and their inherited categories are now wrapped in quotes. ASTERISK-25391 #close Reported by: Bojan Nemčić Change-Id: Ibbe93c6a227dff14d4a54b0d152341857bcf6ad8
Diffstat (limited to 'main/manager.c')
-rw-r--r--main/manager.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/main/manager.c b/main/manager.c
index 60e185b92..2ea6fae4c 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -3477,18 +3477,18 @@ static int action_getconfigjson(struct mansession *s, const struct message *m)
category_name = ast_category_get_name(cur_category);
astman_append(s, "%s\"", comma1 ? "," : "");
astman_append_json(s, category_name);
- astman_append(s, "\":[");
+ astman_append(s, "\":{");
comma1 = 1;
if (ast_category_is_template(cur_category)) {
- astman_append(s, "istemplate:1");
+ astman_append(s, "\"istemplate\":1");
comma2 = 1;
}
if ((templates = ast_category_get_templates(cur_category))
&& ast_str_strlen(templates) > 0) {
astman_append(s, "%s", comma2 ? "," : "");
- astman_append(s, "templates:\"%s\"", ast_str_buffer(templates));
+ astman_append(s, "\"templates\":\"%s\"", ast_str_buffer(templates));
ast_free(templates);
comma2 = 1;
}
@@ -3502,7 +3502,7 @@ static int action_getconfigjson(struct mansession *s, const struct message *m)
comma2 = 1;
}
- astman_append(s, "]");
+ astman_append(s, "}");
}
astman_append(s, "}\r\n\r\n");