From e079cc16e029ef877fda0b3b9800e4a7aa2209c3 Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sun, 5 Nov 2017 20:03:59 +0000 Subject: [PATCH] output: include earlier missing data to json output This commit adds all the data that is in text output to json output. Signed-off-by: Sami Kerola --- src/output.c | 42 +++++++++++++++++++++++++++------- tests/expected/same-twice-json | 8 +++++-- 2 files changed, 40 insertions(+), 10 deletions(-) diff --git a/src/output.c b/src/output.c index c092f16..6c1d67b 100644 --- a/src/output.c +++ b/src/output.c @@ -418,8 +418,8 @@ static int output_json(const int print_mac_addreses) { unsigned int i = 0; struct range_t *range_p; - double range_size; struct shared_network_t *shared_p; + struct output_helper_t oh; int ret; FILE *outfile; unsigned int sep; @@ -434,7 +434,6 @@ static int output_json(const int print_mac_addreses) } range_p = ranges; - range_size = get_range_size(range_p); shared_p = shared_networks; sep = 0; @@ -470,6 +469,7 @@ static int output_json(const int print_mac_addreses) } fprintf(outfile, " \"subnets\": [\n"); for (i = 0; i < num_ranges; i++) { + range_output_helper(&oh, range_p); fprintf(outfile, " "); fprintf(outfile, "{ "); if (range_p->shared_net) { @@ -481,12 +481,20 @@ static int output_json(const int print_mac_addreses) fprintf(outfile, "\"range\":\"%s", ntop_ipaddr(&range_p->first_ip)); fprintf(outfile, " - %s\", ", ntop_ipaddr(&range_p->last_ip)); - fprintf(outfile, "\"defined\":%g, ", range_size); + fprintf(outfile, "\"defined\":%g, ", oh.range_size); fprintf(outfile, "\"used\":%g, ", range_p->count); fprintf(outfile, "\"touched\":%g, ", range_p->touched); - fprintf(outfile, "\"free\":%g ", range_size - range_p->count); + fprintf(outfile, "\"free\":%g, ", oh.range_size - range_p->count); + fprintf(outfile, "\"percent\":%g, ", oh.percent); + fprintf(outfile, "\"touch_count\":%g, ", oh.tc); + fprintf(outfile, "\"touch_percent\":%g, ", oh.tcp); + if (config.backups_found == 1) { + fprintf(outfile, "\"backup_count\":%g, ", range_p->backups); + fprintf(outfile, "\"backup_percent\":%g, ", oh.bup); + } + fprintf(outfile, "\"status\":%d ", oh.status); + range_p++; - range_size = get_range_size(range_p); if (i + 1 < num_ranges) fprintf(outfile, "},\n"); else @@ -502,6 +510,7 @@ static int output_json(const int print_mac_addreses) } fprintf(outfile, " \"shared-networks\": [\n"); for (i = 0; i < num_shared_networks; i++) { + shnet_output_helper(&oh, shared_p); fprintf(outfile, " "); shared_p++; fprintf(outfile, "{ "); @@ -509,7 +518,15 @@ static int output_json(const int print_mac_addreses) fprintf(outfile, "\"defined\":%g, ", shared_p->available); fprintf(outfile, "\"used\":%g, ", shared_p->used); fprintf(outfile, "\"touched\":%g, ", shared_p->touched); - fprintf(outfile, "\"free\":%g ", shared_p->available - shared_p->used); + fprintf(outfile, "\"free\":%g, ", shared_p->available - shared_p->used); + fprintf(outfile, "\"percent\":%g, ", oh.percent); + fprintf(outfile, "\"touch_count\":%g, ", oh.tc); + fprintf(outfile, "\"touch_percent\":%g, ", oh.tcp); + if (config.backups_found == 1) { + fprintf(outfile, "\"backup_count\":%g, ", shared_p->backups); + fprintf(outfile, "\"backup_percent\":%g, ", oh.bup); + } + fprintf(outfile, "\"status\":%d ", oh.status); if (i + 1 < num_shared_networks) fprintf(outfile, "},\n"); else @@ -520,6 +537,7 @@ static int output_json(const int print_mac_addreses) } if (config.header_limit & A_BIT) { + shnet_output_helper(&oh, shared_networks); if (sep) { fprintf(outfile, ",\n"); } @@ -528,8 +546,16 @@ static int output_json(const int print_mac_addreses) fprintf(outfile, " \"defined\":%g,\n", shared_networks->available); fprintf(outfile, " \"used\":%g,\n", shared_networks->used); fprintf(outfile, " \"touched\":%g,\n", shared_networks->touched); - fprintf(outfile, " \"free\":%g\n", - shared_networks->available - shared_networks->used); + fprintf(outfile, " \"free\":%g,\n", + shared_networks->available - shared_networks->used); + fprintf(outfile, " \"percent\":%g,\n", oh.percent); + fprintf(outfile, " \"touch_count\":%g,\n", oh.tc); + fprintf(outfile, " \"touch_percent\":%g,\n", oh.tcp); + if (config.backups_found == 1) { + fprintf(outfile, " \"backup_count\":%g,\n", shared_p->backups); + fprintf(outfile, " \"backup_percent\":%g,\n", oh.bup); + } + fprintf(outfile, " \"status\":%d\n", oh.status); fprintf(outfile, " }"); /* end of summary */ } diff --git a/tests/expected/same-twice-json b/tests/expected/same-twice-json index 7d29ad9..598410d 100644 --- a/tests/expected/same-twice-json +++ b/tests/expected/same-twice-json @@ -3,7 +3,7 @@ { "ip":"10.0.0.5", "macaddress":"00:00:00:00:00:00" } ], "subnets": [ - { "location":"All networks", "range":"10.0.0.1 - 10.0.0.10", "defined":10, "used":1, "touched":0, "free":9 } + { "location":"All networks", "range":"10.0.0.1 - 10.0.0.10", "defined":10, "used":1, "touched":0, "free":9, "percent":10, "touch_count":1, "touch_percent":10, "status":0 } ], "shared-networks": [ ], @@ -12,6 +12,10 @@ "defined":10, "used":1, "touched":0, - "free":9 + "free":9, + "percent":10, + "touch_count":1, + "touch_percent":10, + "status":0 } }