X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fanalyze.c;h=e9bfad7e120911e3af97154a1d183813e055ccb1;hb=8e09c76eae80ef56fa38a67463aee4da4278125c;hp=7a31699b81f303bdac60e8a8ebdaa869c237796a;hpb=74aef1c34e31699595b4b198bcde5ac1af694260;p=debian%2Fdhcpd-pools.git diff --git a/src/analyze.c b/src/analyze.c index 7a31699..e9bfad7 100644 --- a/src/analyze.c +++ b/src/analyze.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 @@ -61,7 +60,7 @@ int prepare_data(void) &rangecomp); /* Sort backups */ - if (num_backups > 0) { + if (0 < num_backups) { qsort(backups, (size_t) num_backups, sizeof(long int), &intcomp); } @@ -81,9 +80,9 @@ int do_counting(void) /* Walk through ranges */ for (k = 0; k < num_ranges; k++) { /* Count IPs in use */ - for (; range_p->last_ip > leases[i] + for (; leases[i] < range_p->last_ip && (unsigned long) i < num_leases; i++) { - if (range_p->first_ip > leases[i]) { + if (leases[i] < range_p->first_ip) { continue; } /* IP with in range */ @@ -94,9 +93,9 @@ int do_counting(void) } /* Count touched IPs */ - for (; range_p->last_ip > touches[j] + for (; touches[j] < range_p->last_ip && (unsigned long) j < num_touches; j++) { - if (range_p->first_ip > touches[j]) { + if (touches[j] < range_p->first_ip) { continue; } /* IP with in range */ @@ -107,10 +106,10 @@ int do_counting(void) } /* Count backup IPs */ - if (num_backups > 0) { - for (; range_p->last_ip > backups[m] + if (0 < num_backups) { + for (; backups[m] < range_p->last_ip && (unsigned long) m < num_touches; m++) { - if (range_p->first_ip > touches[m]) { + if (touches[m] < range_p->first_ip) { continue; } /* IP with in range */ @@ -129,7 +128,8 @@ int do_counting(void) range_p->shared_net->available += block_size; } - /* Reverse so that not even a one IP will be missed. */ + /* Go backwards one step so that not even a one IP will be + * missed. This is possibly always unnecessary. */ if (i) { i--; } @@ -140,10 +140,9 @@ int do_counting(void) range_p++; } - /* During count of other shared networks default network and - * all networks got mixed to gether semantically. This fixes - * the problem, but is not elegant. TODO: fix semantics of all - * and default share_network. */ + /* FIXME: During count of other shared networks default network and + * all networks got mixed to gether semantically. This fixes the + * problem, but is not elegant. */ shared_networks->available = 0; shared_networks->used = 0; shared_networks->touched = 0;