1/* src/config.h.in.  Generated from configure.ac by autoheader.  */
2
3/* Define this enable printing of anchor debugging messages. */
4#undef ANCHOR_DEBUG
5
6/* Define this to enable printing of daemon debugging messages. */
7#undef DAEMON_DEBUG
8
9/* Define this to disable recursing resolution type. */
10#undef DISABLE_RESOLUTION_RECURSING
11
12/* Define this to enable the experimental dnssec roadblock avoidance. */
13#undef DNSSEC_ROADBLOCK_AVOIDANCE
14
15/* Define this to enable all rrtypes in gldns. */
16#undef DRAFT_RRTYPES
17
18/* Define this to enable the experimental edns cookies. */
19#undef EDNS_COOKIES
20
21/* The edns cookie option code. */
22#undef EDNS_COOKIE_OPCODE
23
24/* How often the edns client cookie is refreshed. */
25#undef EDNS_COOKIE_ROLLOVER_TIME
26
27/* The edns padding option code. */
28#undef EDNS_PADDING_OPCODE
29
30/* Alternate value for the FD_SETSIZE */
31#undef FD_SETSIZE
32
33/* Path to static table lookup for hostnames */
34#undef GETDNS_FN_HOSTS
35
36/* Path to resolver configuration file */
37#undef GETDNS_FN_RESOLVCONF
38
39/* Define this to enable Windows build. */
40#undef GETDNS_ON_WINDOWS
41
42/* Define to 1 if you have the `arc4random' function. */
43#undef HAVE_ARC4RANDOM
44
45/* Define to 1 if you have the `arc4random_uniform' function. */
46#undef HAVE_ARC4RANDOM_UNIFORM
47
48/* Define to 1 if you have the <arpa/inet.h> header file. */
49#undef HAVE_ARPA_INET_H
50
51/* Whether the C compiler accepts the "format" attribute */
52#undef HAVE_ATTR_FORMAT
53
54/* Whether the C compiler accepts the "unused" attribute */
55#undef HAVE_ATTR_UNUSED
56
57/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
58   don't. */
59#undef HAVE_DECL_ARC4RANDOM
60
61/* Define to 1 if you have the declaration of `arc4random_uniform', and to 0
62   if you don't. */
63#undef HAVE_DECL_ARC4RANDOM_UNIFORM
64
65/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you
66   don't. */
67#undef HAVE_DECL_INET_NTOP
68
69/* Define to 1 if you have the declaration of `inet_pton', and to 0 if you
70   don't. */
71#undef HAVE_DECL_INET_PTON
72
73/* Define to 1 if you have the declaration of `MSG_FASTOPEN', and to 0 if you
74   don't. */
75#undef HAVE_DECL_MSG_FASTOPEN
76
77/* Define to 1 if you have the declaration of `NID_ED25519', and to 0 if you
78   don't. */
79#undef HAVE_DECL_NID_ED25519
80
81/* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you
82   don't. */
83#undef HAVE_DECL_NID_ED448
84
85/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
86   don't. */
87#undef HAVE_DECL_NID_SECP384R1
88
89/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
90   if you don't. */
91#undef HAVE_DECL_NID_X9_62_PRIME256V1
92
93/* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0
94   if you don't. */
95#undef HAVE_DECL_SK_SSL_COMP_POP_FREE
96
97/* Define to 1 if you have the declaration of
98   `SSL_COMP_get_compression_methods', and to 0 if you don't. */
99#undef HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS
100
101/* Define to 1 if you have the declaration of `SSL_CTX_set1_curves_list', and
102   to 0 if you don't. */
103#undef HAVE_DECL_SSL_CTX_SET1_CURVES_LIST
104
105/* Define to 1 if you have the declaration of `SSL_CTX_set_ecdh_auto', and to
106   0 if you don't. */
107#undef HAVE_DECL_SSL_CTX_SET_ECDH_AUTO
108
109/* Define to 1 if you have the declaration of `SSL_get_min_proto_version', and
110   to 0 if you don't. */
111#undef HAVE_DECL_SSL_GET_MIN_PROTO_VERSION
112
113/* Define to 1 if you have the declaration of `SSL_set1_curves_list', and to 0
114   if you don't. */
115#undef HAVE_DECL_SSL_SET1_CURVES_LIST
116
117/* Define to 1 if you have the declaration of `SSL_set_min_proto_version', and
118   to 0 if you don't. */
119#undef HAVE_DECL_SSL_SET_MIN_PROTO_VERSION
120
121/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
122   don't. */
123#undef HAVE_DECL_STRLCPY
124
125/* Define to 1 if you have the declaration of `TCP_FASTOPEN', and to 0 if you
126   don't. */
127#undef HAVE_DECL_TCP_FASTOPEN
128
129/* Define to 1 if you have the declaration of `TCP_FASTOPEN_CONNECT', and to 0
130   if you don't. */
131#undef HAVE_DECL_TCP_FASTOPEN_CONNECT
132
133/* Define to 1 if you have the <dlfcn.h> header file. */
134#undef HAVE_DLFCN_H
135
136/* Define to 1 if you have the `DSA_set0_key' function. */
137#undef HAVE_DSA_SET0_KEY
138
139/* Define to 1 if you have the `DSA_set0_pqg' function. */
140#undef HAVE_DSA_SET0_PQG
141
142/* Define to 1 if you have the `DSA_SIG_set0' function. */
143#undef HAVE_DSA_SIG_SET0
144
145/* Define to 1 if you have the `ECDSA_SIG_get0' function. */
146#undef HAVE_ECDSA_SIG_GET0
147
148/* Define to 1 if you have the <endian.h> header file. */
149#undef HAVE_ENDIAN_H
150
151/* Define to 1 if you have the `ENGINE_load_cryptodev' function. */
152#undef HAVE_ENGINE_LOAD_CRYPTODEV
153
154/* Define to 1 if you have the <event2/event.h> header file. */
155#undef HAVE_EVENT2_EVENT_H
156
157/* Define to 1 if you have the `event_base_free' function. */
158#undef HAVE_EVENT_BASE_FREE
159
160/* Define to 1 if you have the `event_base_new' function. */
161#undef HAVE_EVENT_BASE_NEW
162
163/* Define to 1 if you have the <event.h> header file. */
164#undef HAVE_EVENT_H
165
166/* Define to 1 if you have the `EVP_DigestVerify' function. */
167#undef HAVE_EVP_DIGESTVERIFY
168
169/* Define to 1 if you have the `EVP_dss1' function. */
170#undef HAVE_EVP_DSS1
171
172/* Define to 1 if you have the `EVP_md5' function. */
173#undef HAVE_EVP_MD5
174
175/* Define to 1 if you have the `EVP_MD_CTX_new' function. */
176#undef HAVE_EVP_MD_CTX_NEW
177
178/* Define to 1 if you have the `EVP_PKEY_base_id' function. */
179#undef HAVE_EVP_PKEY_BASE_ID
180
181/* Define to 1 if you have the `EVP_PKEY_keygen' function. */
182#undef HAVE_EVP_PKEY_KEYGEN
183
184/* Define to 1 if you have the `EVP_sha1' function. */
185#undef HAVE_EVP_SHA1
186
187/* Define to 1 if you have the `EVP_sha224' function. */
188#undef HAVE_EVP_SHA224
189
190/* Define to 1 if you have the `EVP_sha256' function. */
191#undef HAVE_EVP_SHA256
192
193/* Define to 1 if you have the `EVP_sha384' function. */
194#undef HAVE_EVP_SHA384
195
196/* Define to 1 if you have the `EVP_sha512' function. */
197#undef HAVE_EVP_SHA512
198
199/* Define to 1 if you have the <ev.h> header file. */
200#undef HAVE_EV_H
201
202/* Define to 1 if you have the `fcntl' function. */
203#undef HAVE_FCNTL
204
205/* Define to 1 if you have the `FIPS_mode' function. */
206#undef HAVE_FIPS_MODE
207
208/* Whether getaddrinfo is available */
209#undef HAVE_GETADDRINFO
210
211/* Define to 1 if you have the `getauxval' function. */
212#undef HAVE_GETAUXVAL
213
214/* Define this to enable getdns_yaml2dict function. */
215#undef HAVE_GETDNS_YAML2DICT
216
217/* Define to 1 if you have the `getentropy' function. */
218#undef HAVE_GETENTROPY
219
220/* Define to 1 if you have the `HMAC_CTX_free' function. */
221#undef HAVE_HMAC_CTX_FREE
222
223/* Define to 1 if you have the `HMAC_CTX_new' function. */
224#undef HAVE_HMAC_CTX_NEW
225
226/* If you have HMAC_Update */
227#undef HAVE_HMAC_UPDATE
228
229/* Define to 1 if you have the `inet_ntop' function. */
230#undef HAVE_INET_NTOP
231
232/* Define to 1 if you have the `inet_pton' function. */
233#undef HAVE_INET_PTON
234
235/* Define to 1 if you have the <inttypes.h> header file. */
236#undef HAVE_INTTYPES_H
237
238/* if the function 'ioctlsocket' is available */
239#undef HAVE_IOCTLSOCKET
240
241/* Define to 1 if you have the `crypto' library (-lcrypto). */
242#undef HAVE_LIBCRYPTO
243
244/* Define to 1 if you have the <libev/ev.h> header file. */
245#undef HAVE_LIBEV_EV_H
246
247/* Define to 1 if you have the `idn' library (-lidn). */
248#undef HAVE_LIBIDN
249
250/* Define to 1 if you have the `idn2' library (-lidn). */
251#undef HAVE_LIBIDN2
252
253/* Define to 1 if you have the `unbound' library (-lunbound). */
254#undef HAVE_LIBUNBOUND
255
256/* Define to 1 if you have the `yaml' library (-lyaml). */
257#undef HAVE_LIBYAML
258
259/* Define to 1 if you have the <limits.h> header file. */
260#undef HAVE_LIMITS_H
261
262/* Define this to enable the draft mdns client support. */
263#undef HAVE_MDNS_SUPPORT
264
265/* Define to 1 if you have the <memory.h> header file. */
266#undef HAVE_MEMORY_H
267
268/* Define to 1 if you have the <netdb.h> header file. */
269#undef HAVE_NETDB_H
270
271/* Define to 1 if you have the <netinet/in.h> header file. */
272#undef HAVE_NETINET_IN_H
273
274/* Define to 1 if you have the <netinet/tcp.h> header file. */
275#undef HAVE_NETINET_TCP_H
276
277/* Use libnettle for crypto */
278#undef HAVE_NETTLE
279
280/* Define to 1 if you have the <nettle/dsa-compat.h> header file. */
281#undef HAVE_NETTLE_DSA_COMPAT_H
282
283/* Define to 1 if you have the <nettle/eddsa.h> header file. */
284#undef HAVE_NETTLE_EDDSA_H
285
286/* Define to 1 if you have the <nettle/nettle-meta.h> header file. */
287#undef HAVE_NETTLE_NETTLE_META_H
288
289/* Does libuv have the new uv_time_cb signature */
290#undef HAVE_NEW_UV_TIMER_CB
291
292/* Define to 1 if you have the <openssl/bn.h> header file. */
293#undef HAVE_OPENSSL_BN_H
294
295/* Define to 1 if you have the `OPENSSL_config' function. */
296#undef HAVE_OPENSSL_CONFIG
297
298/* Define to 1 if you have the <openssl/conf.h> header file. */
299#undef HAVE_OPENSSL_CONF_H
300
301/* Define to 1 if you have the <openssl/dsa.h> header file. */
302#undef HAVE_OPENSSL_DSA_H
303
304/* Define to 1 if you have the <openssl/engine.h> header file. */
305#undef HAVE_OPENSSL_ENGINE_H
306
307/* Define to 1 if you have the <openssl/err.h> header file. */
308#undef HAVE_OPENSSL_ERR_H
309
310/* Define to 1 if you have the `OPENSSL_init_crypto' function. */
311#undef HAVE_OPENSSL_INIT_CRYPTO
312
313/* Define to 1 if you have the <openssl/rand.h> header file. */
314#undef HAVE_OPENSSL_RAND_H
315
316/* Define to 1 if you have the <openssl/rsa.h> header file. */
317#undef HAVE_OPENSSL_RSA_H
318
319/* Define to 1 if you have the <openssl/ssl.h> header file. */
320#undef HAVE_OPENSSL_SSL_H
321
322/* Define to 1 if you have the `OpenSSL_version' function. */
323#undef HAVE_OPENSSL_VERSION
324
325/* Define to 1 if you have the `OpenSSL_version_num' function. */
326#undef HAVE_OPENSSL_VERSION_NUM
327
328/* Define to 1 if you have the <openssl/x509.h> header file. */
329#undef HAVE_OPENSSL_X509_H
330
331/* Define to 1 if you have the <poll.h> header file. */
332#undef HAVE_POLL_H
333
334/* Have pthreads library */
335#undef HAVE_PTHREAD
336
337/* Define to 1 if you have the `RSA_set0_key' function. */
338#undef HAVE_RSA_SET0_KEY
339
340/* Define to 1 if you have the `SHA512_Update' function. */
341#undef HAVE_SHA512_UPDATE
342
343/* Define to 1 if you have the `sigaddset' function. */
344#undef HAVE_SIGADDSET
345
346/* Define to 1 if you have the `sigemptyset' function. */
347#undef HAVE_SIGEMPTYSET
348
349/* Define to 1 if you have the `sigfillset' function. */
350#undef HAVE_SIGFILLSET
351
352/* Define to 1 if you have the <signal.h> header file. */
353#undef HAVE_SIGNAL_H
354
355/* Define to 1 if the system has the type `sigset_t'. */
356#undef HAVE_SIGSET_T
357
358/* Define if you have the SSL libraries installed. */
359#undef HAVE_SSL
360
361/* Define to 1 if you have the `SSL_CTX_dane_enable' function. */
362#undef HAVE_SSL_CTX_DANE_ENABLE
363
364/* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function. */
365#undef HAVE_SSL_CTX_SET_CIPHERSUITES
366
367/* Define to 1 if you have the `SSL_dane_enable' function. */
368#undef HAVE_SSL_DANE_ENABLE
369
370/* Define to 1 if you have the `SSL_dane_tlsa_add' function. */
371#undef HAVE_SSL_DANE_TLSA_ADD
372
373/* Define if you have libssl with host name verification */
374#undef HAVE_SSL_HN_AUTH
375
376/* Define to 1 if you have the `SSL_set_ciphersuites' function. */
377#undef HAVE_SSL_SET_CIPHERSUITES
378
379/* Define to 1 if you have the <stdarg.h> header file. */
380#undef HAVE_STDARG_H
381
382/* Define to 1 if you have the <stdint.h> header file. */
383#undef HAVE_STDINT_H
384
385/* Define to 1 if you have the <stdio.h> header file. */
386#undef HAVE_STDIO_H
387
388/* Define to 1 if you have the <stdlib.h> header file. */
389#undef HAVE_STDLIB_H
390
391/* Define to 1 if you have the <strings.h> header file. */
392#undef HAVE_STRINGS_H
393
394/* Define to 1 if you have the <string.h> header file. */
395#undef HAVE_STRING_H
396
397/* Define to 1 if you have the `strlcpy' function. */
398#undef HAVE_STRLCPY
399
400/* Define to 1 if you have the `strptime' function. */
401#undef HAVE_STRPTIME
402
403/* Define to 1 if you have the <sys/limits.h> header file. */
404#undef HAVE_SYS_LIMITS_H
405
406/* Define to 1 if you have the <sys/poll.h> header file. */
407#undef HAVE_SYS_POLL_H
408
409/* Define to 1 if you have the <sys/resource.h> header file. */
410#undef HAVE_SYS_RESOURCE_H
411
412/* Define to 1 if you have the <sys/select.h> header file. */
413#undef HAVE_SYS_SELECT_H
414
415/* Define to 1 if you have the <sys/sha2.h> header file. */
416#undef HAVE_SYS_SHA2_H
417
418/* Define to 1 if you have the <sys/socket.h> header file. */
419#undef HAVE_SYS_SOCKET_H
420
421/* Define to 1 if you have the <sys/stat.h> header file. */
422#undef HAVE_SYS_STAT_H
423
424/* Define to 1 if you have the <sys/sysctl.h> header file. */
425#undef HAVE_SYS_SYSCTL_H
426
427/* Define to 1 if you have the <sys/time.h> header file. */
428#undef HAVE_SYS_TIME_H
429
430/* Define to 1 if you have the <sys/types.h> header file. */
431#undef HAVE_SYS_TYPES_H
432
433/* Define to 1 if you have the <time.h> header file. */
434#undef HAVE_TIME_H
435
436/* Define to 1 if you have the `TLS_client_method' function. */
437#undef HAVE_TLS_CLIENT_METHOD
438
439/* Define if you have libssl with tls 1.2 */
440#undef HAVE_TLS_v1_2
441
442/* Define to 1 if you have the `ub_ctx_set_stub' function. */
443#undef HAVE_UB_CTX_SET_STUB
444
445/* Define this when libunbound is compiled with the --enable-event-api option.
446   */
447#undef HAVE_UNBOUND_EVENT_API
448
449/* Define to 1 if you have the <unbound-event.h> header file. */
450#undef HAVE_UNBOUND_EVENT_H
451
452/* Define to 1 if you have the <unistd.h> header file. */
453#undef HAVE_UNISTD_H
454
455/* Define to 1 if you have the <uv.h> header file. */
456#undef HAVE_UV_H
457
458/* Define to 1 if the system has the type `u_char'. */
459#undef HAVE_U_CHAR
460
461/* Define to 1 if you have the <windows.h> header file. */
462#undef HAVE_WINDOWS_H
463
464/* Define to 1 if you have the <winsock2.h> header file. */
465#undef HAVE_WINSOCK2_H
466
467/* Define to 1 if you have the <winsock.h> header file. */
468#undef HAVE_WINSOCK_H
469
470/* Define to 1 if you have the <ws2tcpip.h> header file. */
471#undef HAVE_WS2TCPIP_H
472
473/* Define to 1 if you have the `X509_check_host' function. */
474#undef HAVE_X509_CHECK_HOST
475
476/* Define to 1 if you have the `X509_get0_notAfter' function. */
477#undef HAVE_X509_GET0_NOTAFTER
478
479/* Define to 1 if you have the `X509_get_notAfter' function. */
480#undef HAVE_X509_GET_NOTAFTER
481
482/* Define to 1 if the system has the type `_sigset_t'. */
483#undef HAVE__SIGSET_T
484
485/* Whether the C compiler support the __func__ variable */
486#undef HAVE___FUNC__
487
488/* Do not set this */
489#undef KEEP_CONNECTIONS_OPEN_DEBUG
490
491/* Define to the sub-directory where libtool stores uninstalled libraries. */
492#undef LT_OBJDIR
493
494/* limit for dynamically-generated DNS options */
495#undef MAXIMUM_UPSTREAM_OPTION_SPACE
496
497/* The maximum number of cname referrals. */
498#undef MAX_CNAME_REFERRALS
499
500/* Algorithm AES in nettle library */
501#undef NETTLE_WITH_AES
502
503/* Algorithm ARCTWO in nettle library */
504#undef NETTLE_WITH_ARCTWO
505
506/* Algorithm BLOWFISH in nettle library */
507#undef NETTLE_WITH_BLOWFISH
508
509/* Algorithm CAST128 in nettle library */
510#undef NETTLE_WITH_CAST128
511
512/* Algorithm DES in nettle library */
513#undef NETTLE_WITH_DES
514
515/* Algorithm DES3 in nettle library */
516#undef NETTLE_WITH_DES3
517
518/* Algorithm MD2 in nettle library */
519#undef NETTLE_WITH_MD2
520
521/* Algorithm MD4 in nettle library */
522#undef NETTLE_WITH_MD4
523
524/* Algorithm MD5 in nettle library */
525#undef NETTLE_WITH_MD5
526
527/* Algorithm SERPENT in nettle library */
528#undef NETTLE_WITH_SERPENT
529
530/* Algorithm SHA1 in nettle library */
531#undef NETTLE_WITH_SHA1
532
533/* Algorithm SHA256 in nettle library */
534#undef NETTLE_WITH_SHA256
535
536/* Algorithm TWOFISH in nettle library */
537#undef NETTLE_WITH_TWOFISH
538
539/* Define to the address where bug reports for this package should be sent. */
540#undef PACKAGE_BUGREPORT
541
542/* Define to the full name of this package. */
543#undef PACKAGE_NAME
544
545/* Define to the full name and version of this package. */
546#undef PACKAGE_STRING
547
548/* Define to the one symbol short name of this package. */
549#undef PACKAGE_TARNAME
550
551/* Define to the home page for this package. */
552#undef PACKAGE_URL
553
554/* Define to the version of this package. */
555#undef PACKAGE_VERSION
556
557/* Define this to enable printing of request debugging messages. */
558#undef REQ_DEBUG
559
560/* Define as the return type of signal handlers (`int' or `void'). */
561#undef RETSIGTYPE
562
563/* Define this to enable printing of scheduling debugging messages. */
564#undef SCHED_DEBUG
565
566/* Define this to enable printing of dnssec debugging messages. */
567#undef SEC_DEBUG
568
569/* Define this enable printing of server debugging messages. */
570#undef SERVER_DEBUG
571
572/* Define to 1 if you have the ANSI C header files. */
573#undef STDC_HEADERS
574
575/* use default strptime. */
576#undef STRPTIME_WORKS
577
578/* Stubby package */
579#undef STUBBY_PACKAGE
580
581/* Stubby package string */
582#undef STUBBY_PACKAGE_STRING
583
584/* Define this to enable printing of stub debugging messages. */
585#undef STUB_DEBUG
586
587/* Define this to enable native stub DNSSEC support. */
588#undef STUB_NATIVE_DNSSEC
589
590/* System configuration dir */
591#undef SYSCONFDIR
592
593/* Default trust anchor file */
594#undef TRUST_ANCHOR_FILE
595
596/* Maximum number of queries an failed UDP upstream passes before it will
597   retry */
598#undef UDP_MAX_BACKOFF
599
600/* Define this to use DANE functions from the ssl_dane/danessl library. */
601#undef USE_DANESSL
602
603/* Define this to enable DSA support. */
604#undef USE_DSA
605
606/* Define this to enable ECDSA support. */
607#undef USE_ECDSA
608
609/* Define this to enable an EVP workaround for older openssl */
610#undef USE_ECDSA_EVP_WORKAROUND
611
612/* Define this to enable ED25519 support. */
613#undef USE_ED25519
614
615/* Define this to enable ED448 support. */
616#undef USE_ED448
617
618/* Use the GnuTLS library */
619#undef USE_GNUTLS
620
621/* Define this to enable GOST support. */
622#undef USE_GOST
623
624/* Define this to enable TCP fast open. */
625#undef USE_OSX_TCP_FASTOPEN
626
627/* Define this to enable a default eventloop based on poll(). */
628#undef USE_POLL_DEFAULT_EVENTLOOP
629
630/* Define this to enable SHA1 support. */
631#undef USE_SHA1
632
633/* Define this to enable SHA256 and SHA512 support. */
634#undef USE_SHA2
635
636/* Define this to enable TCP fast open. */
637#undef USE_TCP_FASTOPEN
638
639/* Whether the windows socket API is used */
640#undef USE_WINSOCK
641
642/* Define this to enable YAML config support. */
643#undef USE_YAML_CONFIG
644
645/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
646   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
647   #define below would cause a syntax error. */
648#undef _UINT32_T
649
650/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>,
651   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
652   #define below would cause a syntax error. */
653#undef _UINT64_T
654
655/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
656   <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
657   #define below would cause a syntax error. */
658#undef _UINT8_T
659
660/* Define to `unsigned int' if <sys/types.h> does not define. */
661#undef size_t
662
663/* Define to the type of an unsigned integer type of width exactly 16 bits if
664   such a type exists and the standard includes do not define it. */
665#undef uint16_t
666
667/* Define to the type of an unsigned integer type of width exactly 32 bits if
668   such a type exists and the standard includes do not define it. */
669#undef uint32_t
670
671/* Define to the type of an unsigned integer type of width exactly 64 bits if
672   such a type exists and the standard includes do not define it. */
673#undef uint64_t
674
675/* Define to the type of an unsigned integer type of width exactly 8 bits if
676   such a type exists and the standard includes do not define it. */
677#undef uint8_t
678
679
680
681#ifdef HAVE___FUNC__
682#define __FUNC__ __func__
683#else
684#define __FUNC__ __FUNCTION__
685#endif
686
687#ifdef GETDNS_ON_WINDOWS
688 /* On windows it is allowed to increase the FD_SETSIZE
689  * (and necessary to make our custom eventloop work)
690  * See: https://support.microsoft.com/en-us/kb/111855
691  */
692# ifndef FD_SETSIZE
693#  define FD_SETSIZE 1024
694# endif
695
696/* the version of the windows API enabled */
697# ifndef WINVER
698#  define WINVER 0x0600 // 0x0502
699# endif
700# ifndef _WIN32_WINNT
701#  define _WIN32_WINNT 0x0600 // 0x0502
702# endif
703# ifdef HAVE_WS2TCPIP_H
704#  include <ws2tcpip.h>
705# endif
706
707# ifdef _MSC_VER
708#  if _MSC_VER >= 1800
709#   define PRIsz "zu"
710#  else
711#   define PRIsz "Iu"
712#  endif
713# else
714#  define PRIsz "Iu"
715# endif
716
717# ifdef HAVE_WINSOCK2_H
718#  include <winsock2.h>
719# endif
720
721/* detect if we need to cast to unsigned int for FD_SET to avoid warnings */
722# ifdef HAVE_WINSOCK2_H
723#  define FD_SET_T (u_int)
724# else
725#  define FD_SET_T
726# endif
727
728 /* Windows wants us to use _strdup instead of strdup */
729# ifndef strdup
730#  define strdup _strdup
731# endif
732#else
733# define PRIsz "zu"
734#endif
735
736#include <stdint.h>
737#include <stdio.h>
738#include <unistd.h>
739#include <assert.h>
740#include <string.h>
741
742#ifdef __cplusplus
743extern "C" {
744#endif
745
746#if STDC_HEADERS
747#include <stdlib.h>
748#include <stddef.h>
749#endif
750
751#if !defined(HAVE_STRLCPY) || !HAVE_DECL_STRLCPY || !defined(strlcpy)
752size_t strlcpy(char *dst, const char *src, size_t siz);
753#else
754#ifndef __BSD_VISIBLE
755#define __BSD_VISIBLE 1
756#endif
757#endif
758#if !defined(HAVE_ARC4RANDOM) || !HAVE_DECL_ARC4RANDOM
759uint32_t arc4random(void);
760#endif
761#if !defined(HAVE_ARC4RANDOM_UNIFORM) || !HAVE_DECL_ARC4RANDOM_UNIFORM
762uint32_t arc4random_uniform(uint32_t upper_bound);
763#endif
764#ifndef HAVE_ARC4RANDOM
765void explicit_bzero(void* buf, size_t len);
766int getentropy(void* buf, size_t len);
767void arc4random_buf(void* buf, size_t n);
768void _ARC4_LOCK(void);
769void _ARC4_UNLOCK(void);
770#endif
771#ifdef COMPAT_SHA512
772#ifndef SHA512_DIGEST_LENGTH
773#define SHA512_BLOCK_LENGTH             128
774#define SHA512_DIGEST_LENGTH            64
775#define SHA512_DIGEST_STRING_LENGTH     (SHA512_DIGEST_LENGTH * 2 + 1)
776typedef struct _SHA512_CTX {
777        uint64_t        state[8];
778        uint64_t        bitcount[2];
779        uint8_t buffer[SHA512_BLOCK_LENGTH];
780} SHA512_CTX;
781#endif /* SHA512_DIGEST_LENGTH */
782void SHA512_Init(SHA512_CTX*);
783void SHA512_Update(SHA512_CTX*, void*, size_t);
784void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
785unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest);
786#endif /* COMPAT_SHA512 */
787
788#ifndef HAVE_DECL_INET_PTON
789int inet_pton(int af, const char* src, void* dst);
790#endif /* HAVE_INET_PTON */
791
792#ifndef HAVE_DECL_INET_NTOP
793const char *inet_ntop(int af, const void *src, char *dst, size_t size);
794#endif
795
796#ifdef USE_WINSOCK
797# ifndef  _CUSTOM_VSNPRINTF
798#  define _CUSTOM_VSNPRINTF
799static inline int _gldns_custom_vsnprintf(char *str, size_t size, const char *format, va_list ap)
800{ int r = vsnprintf(str, size, format, ap); return r == -1 ? _vscprintf(format, ap) : r; }
801#  define vsnprintf _gldns_custom_vsnprintf
802# endif
803#endif
804
805#ifdef __cplusplus
806}
807#endif
808
809/** Use on-board gldns */
810#define USE_GLDNS 1
811#ifdef HAVE_SSL
812#  define GLDNS_BUILD_CONFIG_HAVE_SSL 1
813#endif
814
815#ifdef HAVE_STDARG_H
816#include <stdarg.h>
817#endif
818
819#include <errno.h>
820
821#ifdef HAVE_SYS_SOCKET_H
822#include <sys/socket.h>
823#endif
824
825#ifdef HAVE_NETINET_TCP_H
826#include <netinet/tcp.h>
827#endif
828
829#ifdef HAVE_SYS_SELECT_H
830#include <sys/select.h>
831#endif
832
833#ifdef HAVE_SYS_TYPES_H
834#include <sys/types.h>
835#endif
836
837#ifdef HAVE_SYS_STAT_H
838#include <sys/stat.h>
839#endif
840
841#ifdef HAVE_NETINET_IN_H
842#include <netinet/in.h>
843#endif
844
845#ifdef HAVE_ARPA_INET_H
846#include <arpa/inet.h>
847#endif
848
849#ifdef HAVE_INTTYPES_H
850#include <inttypes.h>
851#endif
852
853#ifdef HAVE_LIMITS_H
854#include <limits.h>
855#endif
856
857#ifdef HAVE_SYS_LIMITS_H
858#include <sys/limits.h>
859#endif
860
861#ifdef PATH_MAX
862#define _GETDNS_PATH_MAX PATH_MAX
863#else
864#define _GETDNS_PATH_MAX 2048
865#endif
866
867#ifndef PRIu64
868#define PRIu64 "llu"
869#endif
870
871#ifdef HAVE_ATTR_FORMAT
872#  define ATTR_FORMAT(archetype, string_index, first_to_check) \
873    __attribute__ ((format (archetype, string_index, first_to_check)))
874#else /* !HAVE_ATTR_FORMAT */
875#  define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
876#endif /* !HAVE_ATTR_FORMAT */
877
878#if defined(DOXYGEN)
879#  define ATTR_UNUSED(x)  x
880#elif defined(__cplusplus)
881#  define ATTR_UNUSED(x)
882#elif defined(HAVE_ATTR_UNUSED)
883#  define ATTR_UNUSED(x)  x __attribute__((unused))
884#else /* !HAVE_ATTR_UNUSED */
885#  define ATTR_UNUSED(x)  x
886#endif /* !HAVE_ATTR_UNUSED */
887
888#ifdef TIME_WITH_SYS_TIME
889# include <sys/time.h>
890# include <time.h>
891#else
892# ifdef HAVE_SYS_TIME_H
893#  include <sys/time.h>
894# else
895#  include <time.h>
896# endif
897#endif
898
899#ifdef __cplusplus
900extern "C" {
901#endif
902
903#if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS)
904#define strptime unbound_strptime
905struct tm;
906char *strptime(const char *s, const char *format, struct tm *tm);
907#endif
908
909#if !defined(HAVE_SIGSET_T) && defined(HAVE__SIGSET_T)
910typedef _sigset_t sigset_t;
911#endif
912#if !defined(HAVE_SIGEMPTYSET)
913#  define sigemptyset(pset)    (*(pset) = 0)
914#endif
915#if !defined(HAVE_SIGFILLSET)
916#  define sigfillset(pset)     (*(pset) = (sigset_t)-1)
917#endif
918#if !defined(HAVE_SIGADDSET)
919#  define sigaddset(pset, num) (*(pset) |= (1L<<(num)))
920#endif
921
922#ifdef HAVE_LIBUNBOUND
923# include <unbound.h>
924# ifdef HAVE_UNBOUND_EVENT_H
925#  include <unbound-event.h>
926# else
927#  ifdef HAVE_UNBOUND_EVENT_API
928#   ifndef _UB_EVENT_PRIMITIVES
929#    define _UB_EVENT_PRIMITIVES
930struct ub_event_base;
931struct ub_ctx* ub_ctx_create_ub_event(struct ub_event_base* base);
932typedef void (*ub_event_callback_t)(void*, int, void*, int, int, char*);
933int ub_resolve_event(struct ub_ctx* ctx, const char* name, int rrtype,
934        int rrclass, void* mydata, ub_event_callback_t callback, int* async_id);
935#   endif
936#  endif
937# endif
938#endif
939
940#ifdef __cplusplus
941}
942#endif
943
944