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