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