X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fdhcpd-pools.h;h=fcf75b220d5fd6d347534998d94db957aaeb05ec;hb=8e09c76eae80ef56fa38a67463aee4da4278125c;hp=6d8df201494b8a9a7c788ad56ff8694e033ba92d;hpb=e219f3f7223fc55aee4b13f7e3a3a0645043ba25;p=debian%2Fdhcpd-pools.git diff --git a/src/dhcpd-pools.h b/src/dhcpd-pools.h index 6d8df20..fcf75b2 100644 --- a/src/dhcpd-pools.h +++ b/src/dhcpd-pools.h @@ -24,13 +24,46 @@ #define _POSIX_SOURCE 1 #define POSIXLY_CORRECT 1 -#ifdef HAVE_STDLIB_H +#ifdef HAVE_STDLIB_H #include #else extern void exit(); extern char *malloc(); #endif /* STDC_HEADERS */ +#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME +# ifdef HAVE___PROGNAME +extern char *__progname; +# define program_invocation_short_name __progname +# else /* HAVE___PROGNAME */ +# ifdef HAVE_GETEXECNAME +# include +# define program_invocation_short_name \ + prog_inv_sh_nm_from_file(getexecname(), 0) +# else /* HAVE_GETEXECNAME */ +# define program_invocation_short_name \ + prog_inv_sh_nm_from_file(__FILE__, 1) +# endif /* HAVE_PROGRAM_INVOCATION_SHORT_NAME */ +static char prog_inv_sh_nm_buf[256]; +static inline char *prog_inv_sh_nm_from_file(char *f, char stripext) +{ + char *t; + if ((t = strrchr(f, '/')) != NULL) { + t++; + } else { + t = f; + } + strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1); + prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0'; + + if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL) { + *t = '\0'; + } + return prog_inv_sh_nm_buf; +} +# endif +#endif + /* Structures and unions */ struct configuration_t { char *dhcpdconf_file; @@ -74,7 +107,6 @@ static int const output_limit_bit_3 = 4; unsigned int fullhtml; struct shared_network_t *shared_networks; -char *shared_net_names; unsigned int num_shared_networks; struct range_t *ranges; @@ -94,8 +126,8 @@ 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 *) - __attribute__ ((nonnull(2, 3, 4))); +void parse_config(int, char *, struct shared_network_t *) + __attribute__ ((nonnull(2, 3))); int nth_field(int n, char *dest, const char *src) __attribute__ ((nonnull(2, 3))) #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) @@ -115,6 +147,7 @@ void *safe_malloc(const size_t size) #endif #endif ; +void *safe_realloc(void *ptr, const size_t size); char *safe_strdup(const char *str) __attribute__ ((nonnull(1))); void print_version(void) __attribute__ ((noreturn)); void usage(int status) __attribute__ ((noreturn));