X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Foutput.c;h=874efa4edb6fcacc2482f194da1f63ca5f701fdc;hb=8e09c76eae80ef56fa38a67463aee4da4278125c;hp=22a67a46efea929431d6e91b63ff34cd8f714877;hpb=74aef1c34e31699595b4b198bcde5ac1af694260;p=debian%2Fdhcpd-pools.git diff --git a/src/output.c b/src/output.c index 22a67a4..874efa4 100644 --- a/src/output.c +++ b/src/output.c @@ -1,19 +1,18 @@ -/* -** Copyright (C) 2006- Sami Kerola -** -** This program is free software; you can redistribute it and/or modify +/* http://dhcpd-pools.sourceforge.net/ +** Copyright 2006- Sami Kerola +** +** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or +** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. -** +** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. -** +** ** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +** along with this program. If not, see . */ #ifdef HAVE_CONFIG_H @@ -24,6 +23,7 @@ #include #include #include +#include #include "dhcpd-pools.h" @@ -39,8 +39,8 @@ int output_txt(void) if (config.output_file[0]) { outfile = fopen(config.output_file, "w+"); if (outfile == NULL) { - eprintf("output_txt: %s:", config.output_file); - exit(EXIT_FAILURE); + err(EXIT_FAILURE, "output_txt: %s", + config.output_file); } } else { outfile = stdout; @@ -54,7 +54,7 @@ int output_txt(void) fprintf (outfile, "shared net name first ip last ip max cur percent touch t+c t+c perc"); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, " bu bu perc"); } fprintf(outfile, "\n"); @@ -85,7 +85,7 @@ int output_txt(void) range_p->count)) / (range_p->last_ip - range_p->first_ip - 1)); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, "%7lu %8.3f", range_p->backups, (float) (100 * range_p->backups) / @@ -104,7 +104,7 @@ int output_txt(void) fprintf(outfile, "Shared networks:\n"); fprintf(outfile, "name max cur percent touch t+c t+c perc"); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, " bu bu perc"); } fprintf(outfile, "\n"); @@ -123,7 +123,7 @@ int output_txt(void) (shared_p->touched + shared_p->used)) / shared_p->available); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, "%7lu %8.3f", shared_p->backups, (float) (100 * shared_p->backups) / @@ -142,7 +142,7 @@ int output_txt(void) fprintf(outfile, "name max cur percent touch t+c t+c perc"); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, " bu bu perc"); } fprintf(outfile, "\n"); @@ -161,7 +161,7 @@ int output_txt(void) shared_networks->used)) / shared_networks->available); - if (num_backups > 0) { + if (0 < num_backups) { fprintf(outfile, "%7lu %8.3f", shared_networks->backups, (float) (100 * shared_networks->backups) / @@ -172,12 +172,12 @@ int output_txt(void) if (outfile == stdout) { ret = fflush(stdout); if (ret) { - eprintf("output_txt: fflush:"); + warn("output_txt: fflush"); } } else { ret = fclose(outfile); if (ret) { - eprintf("output_txt: fclose:"); + warn("output_txt: fclose"); } } @@ -190,14 +190,15 @@ int output_xml(void) struct in_addr first, last; struct range_t *range_p; struct shared_network_t *shared_p; + struct macaddr_t *macaddr_p; int ret; FILE *outfile; if (config.output_file[0]) { outfile = fopen(config.output_file, "w+"); if (outfile == NULL) { - eprintf("output_xml: %s:", config.output_file); - exit(EXIT_FAILURE); + err(EXIT_FAILURE, "output_xml: %s", + config.output_file); } } else { outfile = stdout; @@ -206,13 +207,22 @@ int output_xml(void) range_p = ranges; shared_p = shared_networks; + fprintf(outfile, "\n"); + + if (macaddr != NULL) { + for (macaddr_p = macaddr; macaddr_p->next != NULL; + macaddr_p = macaddr_p->next) { + fprintf(outfile, + "\n\t%s\n\t%s\n\n", + macaddr_p->ip, macaddr_p->ethernet); + } + } + if (config.output_limit[1] & output_limit_bit_1) { for (i = 0; i < num_ranges; i++) { first.s_addr = ntohl(range_p->first_ip + 1); last.s_addr = ntohl(range_p->last_ip - 1); - fprintf(outfile, "\n"); - if (range_p->shared_net) { fprintf(outfile, "\t%s\n", @@ -235,9 +245,7 @@ int output_xml(void) fprintf(outfile, "\t%lu\n", range_p->last_ip - range_p->first_ip - 1 - range_p->count); - range_p++; - fprintf(outfile, "\n"); } } @@ -245,7 +253,6 @@ int output_xml(void) if (config.output_limit[1] & output_limit_bit_2) { for (i = 0; i < num_shared_networks; i++) { shared_p++; - fprintf(outfile, "\n"); fprintf(outfile, "\t%s\n", shared_p->name); @@ -273,15 +280,16 @@ int output_xml(void) fprintf(outfile, "\n"); } + fprintf(outfile, "\n"); if (outfile == stdout) { ret = fflush(stdout); if (ret) { - eprintf("output_xml: fflush:"); + warn("output_xml: fflush"); } } else { ret = fclose(outfile); if (ret) { - eprintf("output_xml: fclose:"); + warn("output_xml: fclose"); } } @@ -355,7 +363,6 @@ void html_footer(FILE * f) fprintf(f, "

\nData generated by "); fprintf(f, "", PACKAGE_URL); fprintf(f, "dhcpd-pools.\n

\n"); - fprintf(f, "

\n"); fprintf(f, "