X-Git-Url: http://git.asbjorn.biz/?p=debian%2Fdhcpd-pools.git;a=blobdiff_plain;f=src%2Fdhcpd-pools.c;h=db8495b13200f8b68061bddcaf30245751b3867d;hp=481472c7c354197f39ebdf4e61e68814ccecab52;hb=b492802dfa7bf928bbafe74194ca4f154c70f743;hpb=849c8f5e73d671c7f9e3f74f0652a0876d7a2787 diff --git a/src/dhcpd-pools.c b/src/dhcpd-pools.c index 481472c..db8495b 100644 --- a/src/dhcpd-pools.c +++ b/src/dhcpd-pools.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 @@ -97,8 +96,6 @@ int main(int argc, char **argv) break; switch (c) { - case 0: - break; case 'c': /* config file */ strncpy(config.dhcpdconf_file, optarg, @@ -117,13 +114,17 @@ int main(int argc, char **argv) /* Output sorting option */ sorts = strlen(optarg); if (5 < sorts) { - warn("main: only first 5 sort orders will be used"); + warnx + ("main: only first 5 sort orders will be used"); strncpy(config.sort, optarg, (size_t) 5); sorts = 5; } else { strncpy(config.sort, optarg, (size_t) sorts); } + for (i = 0; i < sorts; i++) { + field_selector(config.sort[i]); + } break; case 'r': /* What ever sort in reverse order */ @@ -150,7 +151,6 @@ int main(int argc, char **argv) case 'v': /* Print version */ print_version(); - return (EXIT_SUCCESS); case 'h': /* Print help */ usage(EXIT_SUCCESS); @@ -182,12 +182,8 @@ int main(int argc, char **argv) case 'c': output_analysis = output_csv; break; - case 's': - /* output_analysis = output_snmp; */ - output_analysis = output_txt; - break; default: - errx(EXIT_FAILURE, "main: unknown ouput format `%c'", + errx(EXIT_FAILURE, "main: unknown output format `%c'", config.output_format[0]); } @@ -197,12 +193,6 @@ int main(int argc, char **argv) shared_net_names + strlen(shared_net_names) + 1, shared_networks); - /* FIXME: move to output.c and use FILE *outfile */ - if ((config.output_format[0] == 'x') - || (config.output_format[0] == 'X')) { - printf("\n"); - }; - parse_leases(); prepare_data(); do_counting(); @@ -215,19 +205,6 @@ int main(int argc, char **argv) } free(tmp_ranges); output_analysis(); - /* After fopen in ouput ioctl does like /dev/null which - * cause ENOTTY, and clean_up will see that without this - * reset. At least linux does this, and possibly some - * other systems. There's a report from FreeBSD 8.0 which - * matches quite well with the symptom. */ - if (errno == 25) - errno = 0; - - /* FIXME: move to output.c and use FILE *outfile */ - if ((config.output_format[0] == 'x') - || (config.output_format[0] == 'X')) { - printf("\n"); - }; clean_up(); return (EXIT_SUCCESS); @@ -236,6 +213,7 @@ int main(int argc, char **argv) /* Global allocations, counter resets etc */ int prepare_memory() { + RANGES = 64; num_ranges = num_shared_networks = 0; shared_networks = safe_malloc(sizeof(struct shared_network_t) * SHARED_NETWORKS); @@ -243,6 +221,7 @@ int prepare_memory() safe_malloc(sizeof(char) * SHARED_NETWORKS_NAMES); ranges = safe_malloc(sizeof(struct range_t) * RANGES); + macaddr = NULL; /* First shared network entry is all networks */ strcpy(shared_net_names, "All networks");