output: make output_analysis() to be regular function

This commit makes it possible to define alarming thresholds at the same time
with other output formats.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2017-11-05 09:49:45 +00:00
parent 9deeae8c36
commit abf5d04736
No known key found for this signature in database
GPG key ID: A9553245FDE9B739
4 changed files with 73 additions and 74 deletions

View file

@ -59,7 +59,7 @@
#include "dhcpd-pools.h"
/*! \brief Text output format, which is the default. */
int output_txt(void)
static int output_txt(void)
{
unsigned int i;
struct range_t *range_p;
@ -214,7 +214,7 @@ int output_txt(void)
}
/*! \brief The xml output formats. */
int output_xml(void)
static int output_xml(const int print_mac_addreses)
{
unsigned int i;
struct range_t *range_p;
@ -238,7 +238,7 @@ int output_xml(void)
fprintf(outfile, "<dhcpstatus>\n");
if (config.print_mac_addreses == 1) {
if (print_mac_addreses == 1) {
struct leases_t *l;
for (l = leases; l != NULL; l = l->hh.next) {
@ -317,7 +317,7 @@ int output_xml(void)
}
/*! \brief The json output formats. */
int output_json(void)
static int output_json(const int print_mac_addreses)
{
unsigned int i = 0;
struct range_t *range_p;
@ -343,7 +343,7 @@ int output_json(void)
fprintf(outfile, "{\n");
if (config.print_mac_addreses == 1) {
if (print_mac_addreses == 1) {
struct leases_t *l;
fprintf(outfile, " \"active_leases\": [");
@ -595,7 +595,7 @@ static void newsection(FILE *restrict f, char const *restrict title)
}
/*! \brief Output html format. */
int output_html(void)
static int output_html(void)
{
unsigned int i;
struct range_t *range_p;
@ -783,7 +783,7 @@ int output_html(void)
}
/*! \brief Output cvs format. */
int output_csv(void)
static int output_csv(void)
{
unsigned int i;
struct range_t *range_p;
@ -925,7 +925,7 @@ int output_csv(void)
}
/*! \brief Output alarm text, and return program exit value. */
int output_alarming(void)
static int output_alarming(void)
{
FILE *outfile;
struct range_t *range_p;
@ -1093,3 +1093,41 @@ int output_alarming(void)
}
return ret_val;
}
/*! \brief Return output_format_names enum based on single char input. */
int output_analysis(const char c)
{
int ret = 1;
switch (c) {
case 't':
ret = output_txt();
break;
case 'a':
ret = output_alarming();
break;
case 'h':
error(EXIT_FAILURE, 0, "html table only output format is deprecated");
break;
case 'H':
ret = output_html();
break;
case 'x':
ret = output_xml(0);
break;
case 'X':
ret = output_xml(1);
break;
case 'j':
ret = output_json(0);
break;
case 'J':
ret = output_json(1);
break;
case 'c':
ret = output_csv();
break;
default:
error(EXIT_FAILURE, 0, "unknown output format: '%c'", c);
}
return ret;
}