1*5f4c09ddSEd Maste #ifndef _GNU_SOURCE 2*5f4c09ddSEd Maste #define _GNU_SOURCE 3*5f4c09ddSEd Maste #endif 4*5f4c09ddSEd Maste #include <stdio.h> 5*5f4c09ddSEd Maste #include <inttypes.h> 6*5f4c09ddSEd Maste #include <time.h> 7*5f4c09ddSEd Maste #include <sys/stat.h> 8*5f4c09ddSEd Maste #include <netdb.h> 9*5f4c09ddSEd Maste 10*5f4c09ddSEd Maste #ifndef __unused 11*5f4c09ddSEd Maste #define __unused __attribute__((__unused__)) 12*5f4c09ddSEd Maste #endif 13*5f4c09ddSEd Maste 14*5f4c09ddSEd Maste #ifndef __dead 15*5f4c09ddSEd Maste #define __dead __attribute__((__noreturn__)) 16*5f4c09ddSEd Maste #endif 17*5f4c09ddSEd Maste 18*5f4c09ddSEd Maste #ifndef __RCSID 19*5f4c09ddSEd Maste #define __RCSID(a) 20*5f4c09ddSEd Maste #endif 21*5f4c09ddSEd Maste 22*5f4c09ddSEd Maste #ifndef __UNCONST 23*5f4c09ddSEd Maste #define __UNCONST(a) ((void *)(intptr_t)(a)) 24*5f4c09ddSEd Maste #endif 25*5f4c09ddSEd Maste 26*5f4c09ddSEd Maste #ifndef __arraycount 27*5f4c09ddSEd Maste #define __arraycount(a) (sizeof(a) / sizeof(a[0])) 28*5f4c09ddSEd Maste #endif 29*5f4c09ddSEd Maste 30*5f4c09ddSEd Maste #ifndef HAVE_STRLCPY 31*5f4c09ddSEd Maste size_t strlcpy(char *, const char *, size_t); 32*5f4c09ddSEd Maste #endif 33*5f4c09ddSEd Maste 34*5f4c09ddSEd Maste #ifndef HAVE_STRLCAT 35*5f4c09ddSEd Maste size_t strlcat(char *, const char *, size_t); 36*5f4c09ddSEd Maste #endif 37*5f4c09ddSEd Maste 38*5f4c09ddSEd Maste #ifndef HAVE_POPENVE 39*5f4c09ddSEd Maste FILE *popenve(const char *, char *const *, char *const *, const char *); 40*5f4c09ddSEd Maste int pcloseve(FILE *); 41*5f4c09ddSEd Maste #define pclose(a) pcloseve(a); 42*5f4c09ddSEd Maste #endif 43*5f4c09ddSEd Maste 44*5f4c09ddSEd Maste #ifndef HAVE_SOCKADDR_SNPRINTF 45*5f4c09ddSEd Maste struct sockaddr; 46*5f4c09ddSEd Maste int sockaddr_snprintf(char *, size_t, const char *, const struct sockaddr *); 47*5f4c09ddSEd Maste #endif 48*5f4c09ddSEd Maste 49*5f4c09ddSEd Maste #ifndef HAVE_STRTOI 50*5f4c09ddSEd Maste intmax_t strtoi(const char *, char **, int, intmax_t, intmax_t, int *); 51*5f4c09ddSEd Maste #endif 52*5f4c09ddSEd Maste 53*5f4c09ddSEd Maste #ifndef HAVE_GETPROGNAME 54*5f4c09ddSEd Maste const char *getprogname(void); 55*5f4c09ddSEd Maste void setprogname(char *); 56*5f4c09ddSEd Maste #endif 57*5f4c09ddSEd Maste 58*5f4c09ddSEd Maste #ifndef HAVE_PIDFILE 59*5f4c09ddSEd Maste int pidfile(const char *); 60*5f4c09ddSEd Maste #endif 61*5f4c09ddSEd Maste 62*5f4c09ddSEd Maste #ifndef HAVE_FPARSELN 63*5f4c09ddSEd Maste #define FPARSELN_UNESCALL 0xf 64*5f4c09ddSEd Maste #define FPARSELN_UNESCCOMM 0x1 65*5f4c09ddSEd Maste #define FPARSELN_UNESCCONT 0x2 66*5f4c09ddSEd Maste #define FPARSELN_UNESCESC 0x4 67*5f4c09ddSEd Maste #define FPARSELN_UNESCREST 0x8 68*5f4c09ddSEd Maste char *fparseln(FILE *, size_t *, size_t *, const char delim[3], int); 69*5f4c09ddSEd Maste #endif 70*5f4c09ddSEd Maste 71*5f4c09ddSEd Maste #ifndef HAVE_FGETLN 72*5f4c09ddSEd Maste char *fgetln(FILE *, size_t *); 73*5f4c09ddSEd Maste #endif 74*5f4c09ddSEd Maste 75*5f4c09ddSEd Maste #ifndef HAVE_CLOCK_GETTIME 76*5f4c09ddSEd Maste struct timespec; 77*5f4c09ddSEd Maste int clock_gettime(int, struct timespec *); 78*5f4c09ddSEd Maste #define CLOCK_REALTIME 0 79*5f4c09ddSEd Maste #endif 80*5f4c09ddSEd Maste 81*5f4c09ddSEd Maste #if !defined(__FreeBSD__) 82*5f4c09ddSEd Maste #define _PATH_BLCONF "conf" 83*5f4c09ddSEd Maste #define _PATH_BLCONTROL "control" 84*5f4c09ddSEd Maste #define _PATH_BLSOCK "blacklistd.sock" 85*5f4c09ddSEd Maste #define _PATH_BLSTATE "blacklistd.db" 86*5f4c09ddSEd Maste #endif 87