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