xref: /dflybsd-src/lib/libldns/ldns/common.h (revision c1ccac55bb3d6d949d55e5bec84095901c77627a)
1de9b0015SJan Lentfer /**
2de9b0015SJan Lentfer  * \file common.h
3de9b0015SJan Lentfer  *
4de9b0015SJan Lentfer  * Common definitions for LDNS
5de9b0015SJan Lentfer  */
6de9b0015SJan Lentfer 
7de9b0015SJan Lentfer /**
8de9b0015SJan Lentfer  * a Net::DNS like library for C
9de9b0015SJan Lentfer  *
10de9b0015SJan Lentfer  * (c) NLnet Labs, 2004-2006
11de9b0015SJan Lentfer  *
12de9b0015SJan Lentfer  * See the file LICENSE for the license
13de9b0015SJan Lentfer  */
14de9b0015SJan Lentfer 
15de9b0015SJan Lentfer #ifndef LDNS_COMMON_H
16de9b0015SJan Lentfer #define LDNS_COMMON_H
17de9b0015SJan Lentfer 
18de9b0015SJan Lentfer /*
19de9b0015SJan Lentfer  * The build configuration that is used in the distributed headers,
20de9b0015SJan Lentfer  * as detected and determined by the auto configure script.
21de9b0015SJan Lentfer  */
22de9b0015SJan Lentfer #define LDNS_BUILD_CONFIG_HAVE_SSL         1
23de9b0015SJan Lentfer #define LDNS_BUILD_CONFIG_HAVE_INTTYPES_H  1
24de9b0015SJan Lentfer #define LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT 1
25de9b0015SJan Lentfer #define LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED 1
26675702c9SJohn Marino #define LDNS_BUILD_CONFIG_HAVE_SOCKLEN_T   1
2726c5a308Szrj #define LDNS_BUILD_CONFIG_USE_DANE         1
2826c5a308Szrj #define LDNS_BUILD_CONFIG_HAVE_B32_PTON    0
2926c5a308Szrj #define LDNS_BUILD_CONFIG_HAVE_B32_NTOP    0
30*c1ccac55SAntonio Huete Jimenez #define LDNS_BUILD_CONFIG_USE_DSA          1
31*c1ccac55SAntonio Huete Jimenez #define LDNS_BUILD_CONFIG_USE_ED25519      0
32*c1ccac55SAntonio Huete Jimenez #define LDNS_BUILD_CONFIG_USE_ED448        0
33de9b0015SJan Lentfer 
34de9b0015SJan Lentfer /*
35de9b0015SJan Lentfer  * HAVE_STDBOOL_H is not available when distributed as a library, but no build
36de9b0015SJan Lentfer  * configuration variables may be used (like those above) because the header
37de9b0015SJan Lentfer  * is sometimes only available when using special compiler flags to enable the
38de9b0015SJan Lentfer  * c99 environment. Because we cannot force the usage of this flag, we have to
39de9b0015SJan Lentfer  * provide a default type. Below what is suggested by the autoconf manual.
40de9b0015SJan Lentfer  */
41de9b0015SJan Lentfer /*@ignore@*/
42de9b0015SJan Lentfer /* splint barfs on this construct */
4326c5a308Szrj #ifndef __bool_true_false_are_defined
44de9b0015SJan Lentfer # ifdef HAVE_STDBOOL_H
45de9b0015SJan Lentfer #  include <stdbool.h>
46de9b0015SJan Lentfer # else
47de9b0015SJan Lentfer #  ifndef HAVE__BOOL
48de9b0015SJan Lentfer #   ifdef __cplusplus
49de9b0015SJan Lentfer typedef bool _Bool;
50de9b0015SJan Lentfer #   else
51de9b0015SJan Lentfer #    define _Bool signed char
52de9b0015SJan Lentfer #   endif
53de9b0015SJan Lentfer #  endif
54de9b0015SJan Lentfer #  define bool _Bool
55de9b0015SJan Lentfer #  define false 0
56de9b0015SJan Lentfer #  define true 1
57de9b0015SJan Lentfer #  define __bool_true_false_are_defined 1
58de9b0015SJan Lentfer # endif
5926c5a308Szrj #endif
60de9b0015SJan Lentfer /*@end@*/
61de9b0015SJan Lentfer 
62de9b0015SJan Lentfer #if LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT
63de9b0015SJan Lentfer #define ATTR_FORMAT(archetype, string_index, first_to_check) \
64de9b0015SJan Lentfer     __attribute__ ((format (archetype, string_index, first_to_check)))
65de9b0015SJan Lentfer #else /* !LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT */
66de9b0015SJan Lentfer #define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
67de9b0015SJan Lentfer #endif /* !LDNS_BUILD_CONFIG_HAVE_ATTR_FORMAT */
68de9b0015SJan Lentfer 
69de9b0015SJan Lentfer #if defined(__cplusplus)
70de9b0015SJan Lentfer #define ATTR_UNUSED(x)
71de9b0015SJan Lentfer #elif LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED
72de9b0015SJan Lentfer #define ATTR_UNUSED(x)  x __attribute__((unused))
73de9b0015SJan Lentfer #else /* !LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED */
74de9b0015SJan Lentfer #define ATTR_UNUSED(x)  x
75de9b0015SJan Lentfer #endif /* !LDNS_BUILD_CONFIG_HAVE_ATTR_UNUSED */
76de9b0015SJan Lentfer 
77675702c9SJohn Marino #if !LDNS_BUILD_CONFIG_HAVE_SOCKLEN_T
78675702c9SJohn Marino typedef int socklen_t;
79675702c9SJohn Marino #endif
80675702c9SJohn Marino 
81de9b0015SJan Lentfer #endif /* LDNS_COMMON_H */
82