X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fdhcpd-pools.h;h=e1bce4d032cf0f6a3d2651073e9fe5103f006950;hb=93bcd305c40583bf7b7c611896f85b89899d47b5;hp=a887bdebd01d94cc94d5def6d2c7041a2bfe97ae;hpb=74aef1c34e31699595b4b198bcde5ac1af694260;p=debian%2Fdhcpd-pools.git diff --git a/src/dhcpd-pools.h b/src/dhcpd-pools.h index a887bde..e1bce4d 100644 --- a/src/dhcpd-pools.h +++ b/src/dhcpd-pools.h @@ -1,20 +1,19 @@ -/* -** 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 . +*/ #ifndef DHCPD_POOLS_H # define DHCPD_POOLS_H 1 @@ -60,16 +59,22 @@ struct range_t unsigned long int touched; unsigned long int backups; }; +struct macaddr_t +{ + char *ethernet; + char *ip; + struct macaddr_t *next; +}; + /* Global variables */ -static int true = 1; -static int false = 0; +static int const true = 1; +static int const false = 0; -char *program_name; struct configuration_t config; -static int output_limit_bit_1 = 1; -static int output_limit_bit_2 = 2; -static int output_limit_bit_3 = 4; +static int const output_limit_bit_1 = 1; +static int const output_limit_bit_2 = 2; +static int const output_limit_bit_3 = 4; unsigned int fullhtml; struct shared_network_t *shared_networks; @@ -88,23 +93,39 @@ unsigned long int num_touches; unsigned long int *backups; unsigned long int num_backups; +struct macaddr_t *macaddr; + /* Function prototypes */ int prepare_memory (void); int parse_leases (void); -char * parse_config (int, char *, char *, char *, struct shared_network_t *); -int nth_field (int n, char *dest, const char *src); +char * parse_config (int, char *, char *, char *, struct shared_network_t *) + __attribute__((nonnull (2, 3, 4))); +int nth_field (int n, char *dest, const char *src) + __attribute__((nonnull (2, 3))) +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) + __attribute__((__hot__)) +#endif + ; int prepare_data (void); int do_counting (void); -void flip_ranges(struct range_t *ranges, struct range_t *tmp_ranges); +void flip_ranges(struct range_t *ranges, struct range_t *tmp_ranges) + __attribute__((nonnull (1, 2))); /* General support functions */ -void *safe_malloc (size_t size); -void eprintf (char *, ...); -void print_version (void); -void usage (int status); +void *safe_malloc (const size_t size) +#if __GNUC__ >= 3 + __attribute__ ((__malloc__)) + #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) + __attribute__ ((__alloc_size__ ((1)))) + #endif +#endif + ; +char *safe_strdup(const char *str) __attribute__((nonnull (1))); +void print_version (void) __attribute__((noreturn)); +void usage (int status) __attribute__((noreturn)); /* qsort required functions... */ /* ...for ranges and... */ -int intcomp (const void *x, const void *y); -int rangecomp (const void *r1, const void *r2); +int intcomp (const void *x, const void *y) __attribute__((nonnull (1, 2))); +int rangecomp (const void *r1, const void *r2) __attribute__((nonnull (1, 2))); /* sort function pointer and functions */ int sort_name (void); unsigned long int (*returner) (struct range_t r); @@ -116,8 +137,8 @@ unsigned long int ret_touched(struct range_t r); unsigned long int ret_tc(struct range_t r); unsigned long int ret_tcperc(struct range_t r); void field_selector(char c); -int get_order(struct range_t *left, struct range_t *right); -void mergesort_ranges (struct range_t *orig, int size, struct range_t *temp); +int get_order(struct range_t *left, struct range_t *right) __attribute__((nonnull (1, 2))); +void mergesort_ranges (struct range_t *orig, int size, struct range_t *temp) __attribute__((nonnull (1, 3))); /* output function pointer and functions */ int (*output_analysis) (void); int output_txt (void);