port.h revision 301169
1109998Smarkm#ifndef _GNU_SOURCE
2109998Smarkm#define _GNU_SOURCE
3109998Smarkm#endif
4109998Smarkm#include <stdio.h>
5109998Smarkm#include <inttypes.h>
6109998Smarkm#include <time.h>
7109998Smarkm#include <sys/stat.h>
8109998Smarkm#include <netdb.h>
9109998Smarkm
10109998Smarkm#ifndef __unused
11109998Smarkm#define __unused __attribute__((__unused__))
12109998Smarkm#endif
13109998Smarkm
14109998Smarkm#ifndef __dead
15109998Smarkm#define __dead __attribute__((__noreturn__))
16109998Smarkm#endif
17109998Smarkm
18109998Smarkm#ifndef __RCSID
19109998Smarkm#define __RCSID(a)
20109998Smarkm#endif
21109998Smarkm
22109998Smarkm#ifndef __UNCONST
23109998Smarkm#define __UNCONST(a) ((void *)(intptr_t)(a))
24109998Smarkm#endif
25109998Smarkm
26109998Smarkm#ifndef __arraycount
27109998Smarkm#define __arraycount(a) (sizeof(a) / sizeof(a[0]))
28109998Smarkm#endif
29109998Smarkm
30109998Smarkm#ifndef HAVE_STRLCPY
31109998Smarkmsize_t strlcpy(char *, const char *, size_t);
32109998Smarkm#endif
33109998Smarkm
34109998Smarkm#ifndef HAVE_STRLCAT
35109998Smarkmsize_t strlcat(char *, const char *, size_t);
36109998Smarkm#endif
37109998Smarkm
38109998Smarkm#ifndef HAVE_POPENVE
39109998SmarkmFILE *popenve(const char *, char *const *, char *const *, const char *);
40109998Smarkmint pcloseve(FILE *);
41109998Smarkm#define pclose(a) pcloseve(a);
42109998Smarkm#endif
43109998Smarkm
44109998Smarkm#ifndef HAVE_SOCKADDR_SNPRINTF
45109998Smarkmstruct sockaddr;
46109998Smarkmint sockaddr_snprintf(char *, size_t, const char *, const struct sockaddr *);
47109998Smarkm#endif
48109998Smarkm
49109998Smarkm#ifndef HAVE_STRTOI
50109998Smarkmintmax_t strtoi(const char *, char **, int, intmax_t, intmax_t, int *);
51109998Smarkm#endif
52109998Smarkm
53109998Smarkm#ifndef HAVE_GETPROGNAME
54109998Smarkmconst char *getprogname(void);
55109998Smarkmvoid setprogname(char *);
56109998Smarkm#endif
57109998Smarkm
58109998Smarkm#ifndef HAVE_PIDFILE
59109998Smarkmint pidfile(const char *);
60109998Smarkm#endif
61109998Smarkm
62109998Smarkm#ifndef HAVE_FPARSELN
63109998Smarkm#define FPARSELN_UNESCALL	0xf
64109998Smarkm#define FPARSELN_UNESCCOMM	0x1
65109998Smarkm#define FPARSELN_UNESCCONT	0x2
66109998Smarkm#define FPARSELN_UNESCESC	0x4
67109998Smarkm#define FPARSELN_UNESCREST	0x8
68109998Smarkmchar *fparseln(FILE *, size_t *, size_t *, const char delim[3], int);
69109998Smarkm#endif
70109998Smarkm
71109998Smarkm#ifndef HAVE_FGETLN
72109998Smarkmchar *fgetln(FILE *, size_t *);
73109998Smarkm#endif
74109998Smarkm
75109998Smarkm#ifndef HAVE_CLOCK_GETTIME
76109998Smarkmstruct timespec;
77109998Smarkmint clock_gettime(int, struct timespec *);
78109998Smarkm#define CLOCK_REALTIME 0
79109998Smarkm#endif
80109998Smarkm
81109998Smarkm#if !defined(__FreeBSD__)
82109998Smarkm#define _PATH_BLCONF "conf"
83109998Smarkm#define _PATH_BLCONTROL "control"
84#define _PATH_BLSOCK "blacklistd.sock"
85#define _PATH_BLSTATE "blacklistd.db"
86#endif
87