X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fdhcpd-pools.c;h=abcb8ca1f7d6067d295f6214cb5145dbf8f16915;hb=8e09c76eae80ef56fa38a67463aee4da4278125c;hp=ff8e552711f82173fc769243c5377497f4c7757b;hpb=9169422e9bceb599afe2d09d90efc1b06cbc8fa9;p=debian%2Fdhcpd-pools.git diff --git a/src/dhcpd-pools.c b/src/dhcpd-pools.c index ff8e552..abcb8ca 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) { - warnx("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,26 +182,14 @@ 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]); } /* Do the job */ prepare_memory(); - parse_config(true, config.dhcpdconf_file, shared_net_names, - 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_config(true, config.dhcpdconf_file, shared_networks); parse_leases(); prepare_data(); @@ -215,19 +203,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,15 +211,16 @@ 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); - shared_net_names = - 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"); + shared_networks->name = safe_strdup("All networks"); + return 0; }