From 5dbcca8d41248dc7ebaea7b86be959f21faa2855 Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Fri, 23 Aug 2013 11:16:26 +0200 Subject: [PATCH 1/2] fix for iynvalid jsoninfo output --- olsrd/patches/001-fix-jsoninfo.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 olsrd/patches/001-fix-jsoninfo.patch diff --git a/olsrd/patches/001-fix-jsoninfo.patch b/olsrd/patches/001-fix-jsoninfo.patch new file mode 100644 index 0000000..627a3e9 --- /dev/null +++ b/olsrd/patches/001-fix-jsoninfo.patch @@ -0,0 +1,16 @@ +--- a/lib/jsoninfo/src/olsrd_jsoninfo.c ++++ b/lib/jsoninfo/src/olsrd_jsoninfo.c +@@ -1283,8 +1283,11 @@ send_info(unsigned int send_what, int the_socket) + abuf_init(&abuf, 32768); + + // only add if outputing JSON +- if (send_what & SIW_ALL) abuf_json_open_array_entry(&abuf); +- ++ if (send_what & SIW_ALL) { ++ abuf_json_open_array_entry(&abuf); ++ entrynumber[0] = 0; ++ currentjsondepth = 0; ++ } + if ((send_what & SIW_LINKS) == SIW_LINKS) ipc_print_links(&abuf); + if ((send_what & SIW_NEIGHBORS) == SIW_NEIGHBORS) ipc_print_neighbors(&abuf); + if ((send_what & SIW_TOPOLOGY) == SIW_TOPOLOGY) ipc_print_topology(&abuf); From 542ac94f7acfdb44ed795dc3eb2ddd7227450942 Mon Sep 17 00:00:00 2001 From: Manuel Munz Date: Fri, 23 Aug 2013 20:22:48 +0200 Subject: [PATCH 2/2] a much simpler and cleaner fix --- olsrd/patches/001-fix-jsoninfo.patch | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/olsrd/patches/001-fix-jsoninfo.patch b/olsrd/patches/001-fix-jsoninfo.patch index 627a3e9..52dfb0b 100644 --- a/olsrd/patches/001-fix-jsoninfo.patch +++ b/olsrd/patches/001-fix-jsoninfo.patch @@ -1,16 +1,22 @@ +diff --git a/lib/jsoninfo/src/olsrd_jsoninfo.c b/lib/jsoninfo/src/olsrd_jsoninfo.c +index 3f7b7b9..966292c 100644 --- a/lib/jsoninfo/src/olsrd_jsoninfo.c +++ b/lib/jsoninfo/src/olsrd_jsoninfo.c -@@ -1283,8 +1283,11 @@ send_info(unsigned int send_what, int the_socket) +@@ -1283,7 +1283,7 @@ send_info(unsigned int send_what, int the_socket) abuf_init(&abuf, 32768); // only add if outputing JSON - if (send_what & SIW_ALL) abuf_json_open_array_entry(&abuf); -- -+ if (send_what & SIW_ALL) { -+ abuf_json_open_array_entry(&abuf); -+ entrynumber[0] = 0; -+ currentjsondepth = 0; -+ } ++ if (send_what & SIW_ALL) abuf_puts(&abuf, "{"); + if ((send_what & SIW_LINKS) == SIW_LINKS) ipc_print_links(&abuf); if ((send_what & SIW_NEIGHBORS) == SIW_NEIGHBORS) ipc_print_neighbors(&abuf); - if ((send_what & SIW_TOPOLOGY) == SIW_TOPOLOGY) ipc_print_topology(&abuf); +@@ -1305,7 +1305,7 @@ send_info(unsigned int send_what, int the_socket) + abuf_json_int(&abuf, "timeSinceStartup", now_times); + if(*uuid != 0) + abuf_json_string(&abuf, "uuid", uuid); +- abuf_json_close_array_entry(&abuf); ++ abuf_puts(&abuf, "}\n"); + } + + /* this outputs the olsrd.conf text directly, not JSON */