#ifndef CONFIG_H #define CONFIG_H #cmakedefine PACKAGE "@PACKAGE@" #cmakedefine PACKAGE_NAME "@PACKAGE_NAME@" #cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@" #cmakedefine PACKAGE_URL "@PACKAGE_URL@" #cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" #cmakedefine PACKAGE_STRING "@PACKAGE_STRING@" #cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@" #cmakedefine HAVE_ASSERT_H 1 #cmakedefine HAVE_INTTYPES_H 1 #cmakedefine HAVE_LIMITS_H 1 #cmakedefine HAVE_SYS_LIMITS_H 1 #cmakedefine HAVE_STDARG_H 1 #cmakedefine HAVE_STDINT_H 1 #cmakedefine HAVE_STDIO_H 1 #cmakedefine HAVE_STDLIB_H 1 #cmakedefine HAVE_STRING_H 1 #cmakedefine HAVE_TIME_H 1 #cmakedefine HAVE_UNISTD_H 1 #cmakedefine HAVE_FCNTL_H 1 #cmakedefine HAVE_SIGNAL_H 1 #cmakedefine HAVE_SYS_POLL_H 1 #cmakedefine HAVE_POLL_H 1 #cmakedefine HAVE_RESOURCE_H 1 #cmakedefine HAVE_SYS_TYPES_H 1 #cmakedefine HAVE_SYS_STAT_H 1 #cmakedefine HAVE_ENDIAN_H 1 #cmakedefine HAVE_NETDB_H 1 #cmakedefine HAVE_ARPA_INET_H 1 #cmakedefine HAVE_NETINET_IN_H 1 #cmakedefine HAVE_NETINET_TCP_H 1 #cmakedefine HAVE_SYS_SELECT_H 1 #cmakedefine HAVE_SYS_SOCKET_H 1 #cmakedefine HAVE_SYS_SYSCTL_H 1 #cmakedefine HAVE_SYS_TIME_H 1 #cmakedefine HAVE_SYS_WAIT_H 1 #cmakedefine HAVE_WINDOWS_H 1 #cmakedefine HAVE_WINSOCK_H 1 #cmakedefine HAVE_WINSOCK2_H 1 #cmakedefine HAVE_WS2TCPIP_H 1 #cmakedefine GETDNS_ON_WINDOWS 1 #cmakedefine USE_WINSOCK 1 #cmakedefine HAVE_SSL 1 #cmakedefine USE_DANESSL 1 #cmakedefine HAVE_OPENSSL_SSL_H 1 #cmakedefine HAVE_OPENSSL_EVP_H 1 #cmakedefine HAVE_OPENSSL_ERR_H 1 #cmakedefine HAVE_OPENSSL_RAND_H 1 #cmakedefine HAVE_OPENSSL_CONF_H 1 #cmakedefine HAVE_OPENSSL_ENGINE_H 1 #cmakedefine HAVE_DSA_SIG_SET0 1 #cmakedefine HAVE_DSA_SET0_PQG 1 #cmakedefine HAVE_DSA_SET0_KEY 1 #cmakedefine HAVE_RSA_SET0_KEY 1 #cmakedefine HAVE_EVP_MD5 1 #cmakedefine HAVE_EVP_SHA1 1 #cmakedefine HAVE_EVP_SHA224 1 #cmakedefine HAVE_EVP_SHA256 1 #cmakedefine HAVE_EVP_SHA384 1 #cmakedefine HAVE_EVP_SHA512 1 #cmakedefine HAVE_EVP_DSS1 1 #cmakedefine HAVE_EVP_DIGESTVERIFY 1 #cmakedefine HAVE_EVP_MD_CTX_NEW 1 #cmakedefine HAVE_HMAC_CTX_NEW 1 #cmakedefine HAVE_NETTLE_GET_SECP_256R1 1 #cmakedefine HAVE_NETTLE_GET_SECP_384R1 1 #cmakedefine HAVE_TLS_CLIENT_METHOD 1 #cmakedefine HAVE_OPENSSL_VERSION_NUM 1 #cmakedefine HAVE_OPENSSL_VERSION 1 #cmakedefine HAVE_SSL_CTX_DANE_ENABLE 1 #cmakedefine HAVE_SSL_CTX_SET_CIPHERSUITS 1 #cmakedefine HAVE_SSL_SET_CIPHERSUITS 1 #cmakedefine HAVE_OPENSSL_INIT_CRYPTO 1 #cmakedefine HAVE_SSL_DANE_ENABLE 1 #cmakedefine HAVE_DECL_SSL_CTX_SET1_CURVES_LIST 1 #cmakedefine HAVE_DECL_SSL_SET1_CURVES_LIST 1 #cmakedefine HAVE_DECL_SSL_SET_MIN_PROTO_VERSION 1 #cmakedefine HAVE_X509_GET_NOTAFTER 1 #cmakedefine HAVE_X509_GET0_NOTAFTER 1 #cmakedefine HAVE_PTHREAD 1 #cmakedefine HAVE_WINDOWS_THREADS 1 #cmakedefine RUNSTATEDIR "@RUNSTATEDIR@" #cmakedefine TRUST_ANCHOR_FILE "@PATH_TRUST_ANCHOR_FILE@" #cmakedefine GETDNS_FN_RESOLVCONF "@PATH_RESOLVCONF@" #cmakedefine GETDNS_FN_HOSTS "@PATH_HOSTS@" #cmakedefine DNSSEC_ROADBLOCK_AVOIDANCE 1 #cmakedefine HAVE_MDNS_SUPPORT 1 #cmakedefine STUB_NATIVE_DNSSEC 1 #cmakedefine MAXIMUM_UPSTREAM_OPTION_SPACE @MAXIMUM_UPSTREAM_OPTION_SPACE@ #cmakedefine EDNS_PADDING_OPCODE @EDNS_PADDING_OPCODE@ #cmakedefine MAX_CNAME_REFERRALS @MAX_CNAME_REFERRALS@ #cmakedefine DRAFT_RRTYPES @DRAFT_RRTYPES@ #cmakedefine EDNS_COOKIES 1 #cmakedefine EDNS_COOKIE_OPCODE @EDNS_COOKIE_OPCODE@ #cmakedefine EDNS_COOKIE_ROLLOVER_TIME @EDNS_COOKIE_ROLLOVER_TIME@ #cmakedefine UDP_MAX_BACKOFF @MAX_UDP_BACKOFF@ #cmakedefine HAVE_DECL_GETENTROPY 1 #cmakedefine HAVE_DECL_INET_PTON 1 #cmakedefine HAVE_DECL_INET_NTOP 1 #cmakedefine HAVE_WIN_DECL_INET_PTON 1 #cmakedefine HAVE_WIN_DECL_INET_NTOP 1 #cmakedefine HAVE_DECL_MKSTEMP 1 #cmakedefine HAVE_DECL_SIGEMPTYSET 1 #cmakedefine HAVE_DECL_SIGFILLSET 1 #cmakedefine HAVE_DECL_SIGADDSET 1 #cmakedefine HAVE_DECL_STRPTIME 1 #cmakedefine HAVE_DECL_TCP_FASTOPEN 1 #cmakedefine HAVE_DECL_TCP_FASTOPEN_CONNECT 1 #cmakedefine HAVE_DECL_MSG_FASTOPEN 1 #if defined(HAVE_DECL_INET_PTON) || defined(HAVE_WIN_DECL_INET_PTON) #undef HAVE_DECL_INET_PTON #define HAVE_DECL_INET_PTON 1 #endif #if defined(HAVE_DECL_INET_NTOP) || defined(HAVE_WIN_DECL_INET_NTOP) #undef HAVE_DECL_INET_NTOP #define HAVE_DECL_INET_NTOP 1 #endif #cmakedefine HAVE_FCNTL 1 #cmakedefine HAVE_GETTIMEOFDAY 1 #cmakedefine HAVE_IOCTLSOCKET 1 #cmakedefine HAVE_SIGEMPTYSET 1 #cmakedefine HAVE_SIGFILLSET 1 #cmakedefine HAVE_SIGADDSET 1 #cmakedefine HAVE_STRPTIME 1 #cmakedefine HAVE_SIGSET_T 1 #cmakedefine HAVE__SIGSET_T 1 #cmakedefine HAVE_BSD_STDLIB_H 1 #cmakedefine HAVE_BSD_STRING_H 1 #cmakedefine HAVE_DECL_STRLCPY 1 #cmakedefine HAVE_DECL_ARC4RANDOM 1 #cmakedefine HAVE_DECL_ARC4RANDOM_UNIFORM 1 #cmakedefine HAVE_BSD_DECL_STRLCPY 1 #cmakedefine HAVE_BSD_DECL_ARC4RANDOM 1 #cmakedefine HAVE_BSD_DECL_ARC4RANDOM_UNIFORM 1 #cmakedefine HAVE_STRLCPY 1 #cmakedefine HAVE_ARC4RANDOM 1 #cmakedefine HAVE_ARC4RANDOM_UNIFORM 1 #cmakedefine HAVE_LIBUNBOUND 1 #cmakedefine HAVE_UNBOUND_EVENT_H 1 #cmakedefine HAVE_UNBOUND_EVENT_API 1 #cmakedefine HAVE_UB_CTX_SET_STUB 1 #cmakedefine HAVE_LIBIDN 1 #cmakedefine HAVE_LIBIDN2 1 #cmakedefine HAVE_NETTLE 1 #cmakedefine HAVE_NETTLE_DSA_COMPAT_H 1 #cmakedefine HAVE_NETTLE_EDDSA_H 1 #cmakedefine HAVE_EVENT2_EVENT_H 1 #cmakedefine HAVE_EVENT_BASE_NEW 1 #cmakedefine HAVE_EVENT_BASE_FREE 1 #cmakedefine DEFAULT_EVENTLOOP "@DEFAULT_EVENTLOOP@" #cmakedefine USE_POLL_DEFAULT_EVENTLOOP 1 #cmakedefine STRPTIME_WORKS 1 #cmakedefine FD_SETSIZE @FD_SETSIZE@ #cmakedefine REQ_DEBUG 1 #cmakedefine SCHED_DEBUG 1 #cmakedefine STUB_DEBUG 1 #cmakedefine DAEMON_DEBUG 1 #cmakedefine SEC_DEBUG 1 #cmakedefine SERVER_DEBUG 1 #cmakedefine ANCHOR_DEBUG 1 #cmakedefine KEEP_CONNECTIONS_OPEN_DEBUG 1 #cmakedefine USE_SHA1 1 #cmakedefine USE_SHA2 1 #cmakedefine USE_GOST 1 #cmakedefine USE_ECDSA 1 #cmakedefine USE_DSA 1 #cmakedefine USE_ED25519 1 #cmakedefine USE_ED448 1 #cmakedefine USE_OSX_TCP_FASTOPEN 1 #cmakedefine HAVE_NEW_UV_TIMER_CB 1 #cmakedefine HAVE_TARGET_ENDIANNESS #cmakedefine TARGET_IS_BIG_ENDIAN #cmakedefine HAVE___FUNC__ 1 #ifdef HAVE___FUNC__ #define __FUNC__ __func__ #else #define __FUNC__ __FUNCTION__ #endif #ifdef GETDNS_ON_WINDOWS /* On windows it is allowed to increase the FD_SETSIZE * (and nescessary to make our custom eventloop work) * See: https://support.microsoft.com/en-us/kb/111855 */ # ifndef FD_SETSIZE # define FD_SETSIZE 1024 # endif /* the version of the windows API enabled */ # ifndef WINVER # define WINVER 0x0600 // 0x0502 # endif # ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0600 // 0x0502 # endif # ifdef HAVE_WS2TCPIP_H # include # endif # ifdef _MSC_VER # if _MSC_VER >= 1800 # define PRIsz "zu" # else # define PRIsz "Iu" # endif # include typedef SSIZE_T ssize_t; # else # define PRIsz "Iu" # endif # ifdef HAVE_WINSOCK2_H # include # endif /* detect if we need to cast to unsigned int for FD_SET to avoid warnings */ # ifdef HAVE_WINSOCK2_H # define FD_SET_T (u_int) # else # define FD_SET_T # endif /* Windows wants us to use _strdup instead of strdup */ # ifndef strdup # define strdup _strdup # endif /* Windows doesn't have strcasecmp and strncasecmp. */ # define strcasecmp _stricmp # define strncasecmp _strnicmp #else # define PRIsz "zu" #endif #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_STDIO_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ASSERT_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef __cplusplus extern "C" { #endif #if STDC_HEADERS #include #include #endif #ifdef HAVE_BSD_STDLIB_H #include #endif #ifdef HAVE_BSD_STRING_H #include #endif #if !defined(HAVE_STRLCPY) || !HAVE_DECL_STRLCPY || !defined(strlcpy) size_t strlcpy(char *dst, const char *src, size_t siz); #else #ifndef __BSD_VISIBLE #define __BSD_VISIBLE 1 #endif #endif #if !defined(HAVE_ARC4RANDOM) || !HAVE_DECL_ARC4RANDOM uint32_t arc4random(void); #endif #if !defined(HAVE_ARC4RANDOM_UNIFORM) || !HAVE_DECL_ARC4RANDOM_UNIFORM uint32_t arc4random_uniform(uint32_t upper_bound); #endif #ifndef HAVE_ARC4RANDOM void explicit_bzero(void* buf, size_t len); int getentropy(void* buf, size_t len); void arc4random_buf(void* buf, size_t n); void _ARC4_LOCK(void); void _ARC4_UNLOCK(void); #endif #ifdef COMPAT_SHA512 #ifndef SHA512_DIGEST_LENGTH #define SHA512_BLOCK_LENGTH 128 #define SHA512_DIGEST_LENGTH 64 #define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) typedef struct _SHA512_CTX { uint64_t state[8]; uint64_t bitcount[2]; uint8_t buffer[SHA512_BLOCK_LENGTH]; } SHA512_CTX; #endif /* SHA512_DIGEST_LENGTH */ void SHA512_Init(SHA512_CTX*); void SHA512_Update(SHA512_CTX*, void*, size_t); void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*); unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest); #endif /* COMPAT_SHA512 */ #ifdef USE_WINSOCK # ifndef _CUSTOM_VSNPRINTF # define _CUSTOM_VSNPRINTF static inline int _gldns_custom_vsnprintf(char *str, size_t size, const char *format, va_list ap) { int r = vsnprintf(str, size, format, ap); return r == -1 ? _vscprintf(format, ap) : r; } # define vsnprintf _gldns_custom_vsnprintf # endif #endif #ifdef __cplusplus } #endif /** Use on-board gldns */ #define USE_GLDNS 1 #ifdef HAVE_SSL # define GLDNS_BUILD_CONFIG_HAVE_SSL 1 #endif #ifdef HAVE_STDARG_H #include #endif #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_STAT_H #include #endif #ifdef HAVE_NETINET_IN_H #include #endif #ifdef HAVE_NETINET_TCP_H #include #endif #ifdef HAVE_ARPA_INET_H #include #endif #ifdef HAVE_SIGNAL_H #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif #ifdef HAVE_LIMITS_H #include #endif #ifdef HAVE_SYS_LIMITS_H #include #endif #ifdef PATH_MAX #define _GETDNS_PATH_MAX PATH_MAX #else #define _GETDNS_PATH_MAX 2048 #endif #ifndef PRIu64 #define PRIu64 "llu" #endif #ifdef HAVE_ATTR_FORMAT # define ATTR_FORMAT(archetype, string_index, first_to_check) \ __attribute__ ((format (archetype, string_index, first_to_check))) #else /* !HAVE_ATTR_FORMAT */ # define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */ #endif /* !HAVE_ATTR_FORMAT */ #if defined(DOXYGEN) # define ATTR_UNUSED(x) x #elif defined(__cplusplus) # define ATTR_UNUSED(x) #elif defined(HAVE_ATTR_UNUSED) # define ATTR_UNUSED(x) x __attribute__((unused)) #else /* !HAVE_ATTR_UNUSED */ # define ATTR_UNUSED(x) x #endif /* !HAVE_ATTR_UNUSED */ #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #ifdef __cplusplus extern "C" { #endif #if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS) #define strptime unbound_strptime struct tm; char *strptime(const char *s, const char *format, struct tm *tm); #endif #if !defined(HAVE_SIGSET_T) && defined(HAVE__SIGSET_T) typedef _sigset_t sigset_t; #endif #if !defined(HAVE_SIGEMPTYSET) # define sigemptyset(pset) (*(pset) = 0) #endif #if !defined(HAVE_SIGFILLSET) # define sigfillset(pset) (*(pset) = (sigset_t)-1) #endif #if !defined(HAVE_SIGADDSET) # define sigaddset(pset, num) (*(pset) |= (1L<<(num))) #endif #ifdef HAVE_LIBUNBOUND # include # ifdef HAVE_UNBOUND_EVENT_H # include # else # ifdef HAVE_UNBOUND_EVENT_API # ifndef _UB_EVENT_PRIMITIVES # define _UB_EVENT_PRIMITIVES struct ub_event_base; struct ub_ctx* ub_ctx_create_ub_event(struct ub_event_base* base); typedef void (*ub_event_callback_t)(void*, int, void*, int, int, char*); int ub_resolve_event(struct ub_ctx* ctx, const char* name, int rrtype, int rrclass, void* mydata, ub_event_callback_t callback, int* async_id); # endif # endif # endif #endif #ifndef HAVE_DECL_INET_PTON int inet_pton(int af, const char* src, void* dst); #endif #ifndef HAVE_DECL_INET_NTOP const char *inet_ntop(int af, const void *src, char *dst, size_t size); #endif #ifndef HAVE_DECL_MKSTEMP int mkstemp(char *template); #endif #ifndef HAVE_GETTIMEOFDAY int gettimeofday(struct timeval* tv, void* tz); #endif #ifdef __cplusplus } #endif #endif /* CONFIG_H */