config.h revision 1.6.2.3 1 /* config.h. Generated from config.h.in by configure. */
2 /* config.h.in. Generated from configure.ac by autoheader. */
3
4 /* apply the noreturn attribute to a function that exits the program */
5 #define ATTR_NORETURN __attribute__((__noreturn__))
6
7 /* apply the weak attribute to a symbol */
8 #define ATTR_WEAK __attribute__((__weak__))
9
10 /* Directory to chroot to */
11 #define CHROOT_DIR "/var/chroot/unbound"
12
13 /* Define this to enable client subnet option. */
14 /* #undef CLIENT_SUBNET */
15
16 /* Do sha512 definitions in config.h */
17 /* #undef COMPAT_SHA512 */
18
19 /* Command line arguments used with configure */
20 #define CONFCMDLINE ""
21
22 /* Pathname to the Unbound configuration file */
23 #define CONFIGFILE CHROOT_DIR "/etc/unbound/unbound.conf"
24
25 /* Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work
26 */
27 /* #undef DARWIN_BROKEN_SETREUID */
28
29 /* Whether daemon is deprecated */
30 /* #undef DEPRECATED_DAEMON */
31
32 /* Deprecate RSA 1024 bit length, makes that an unsupported key */
33 /* #undef DEPRECATE_RSA_1024 */
34
35 /* Define this to enable kernel based UDP source port randomization. */
36 /* #undef DISABLE_EXPLICIT_PORT_RANDOMISATION */
37
38 /* default dnstap socket path */
39 /* #undef DNSTAP_SOCKET_PATH */
40
41 /* Define if you want to use debug lock checking (slow). */
42 /* #undef ENABLE_LOCK_CHECKS */
43
44 /* Define this if you enabled-allsymbols from libunbound to link binaries to
45 it for smaller install size, but the libunbound export table is polluted by
46 internal symbols */
47 /* #undef EXPORT_ALL_SYMBOLS */
48
49 /* Define to 1 if you have the `accept4' function. */
50 #define HAVE_ACCEPT4 1
51
52 /* Define to 1 if you have the `arc4random' function. */
53 #define HAVE_ARC4RANDOM 1
54
55 /* Define to 1 if you have the `arc4random_uniform' function. */
56 #define HAVE_ARC4RANDOM_UNIFORM 1
57
58 /* Define to 1 if you have the <arpa/inet.h> header file. */
59 #define HAVE_ARPA_INET_H 1
60
61 /* Whether the C compiler accepts the "format" attribute */
62 #define HAVE_ATTR_FORMAT 1
63
64 /* Whether the C compiler accepts the "noreturn" attribute */
65 #define HAVE_ATTR_NORETURN 1
66
67 /* Whether the C compiler accepts the "unused" attribute */
68 #define HAVE_ATTR_UNUSED 1
69
70 /* Whether the C compiler accepts the "weak" attribute */
71 #define HAVE_ATTR_WEAK 1
72
73 /* If we have be64toh */
74 #define HAVE_BE64TOH 1
75
76 /* Define to 1 if you have the `BIO_set_callback_ex' function. */
77 #define HAVE_BIO_SET_CALLBACK_EX 1
78
79 /* Define to 1 if you have the <bsd/stdlib.h> header file. */
80 /* #undef HAVE_BSD_STDLIB_H */
81
82 /* Define to 1 if you have the <bsd/string.h> header file. */
83 /* #undef HAVE_BSD_STRING_H */
84
85 /* Define to 1 if you have the `chown' function. */
86 #define HAVE_CHOWN 1
87
88 /* Define to 1 if you have the `chroot' function. */
89 #define HAVE_CHROOT 1
90
91 /* Define to 1 if you have the `CRYPTO_cleanup_all_ex_data' function. */
92 /* #undef HAVE_CRYPTO_CLEANUP_ALL_EX_DATA */
93
94 /* Define to 1 if you have the `CRYPTO_THREADID_set_callback' function. */
95 /* #undef HAVE_CRYPTO_THREADID_SET_CALLBACK */
96
97 /* Define to 1 if you have the `ctime_r' function. */
98 #define HAVE_CTIME_R 1
99
100 /* Define to 1 if you have the `daemon' function. */
101 #define HAVE_DAEMON 1
102
103 /* Define to 1 if you have the declaration of `arc4random', and to 0 if you
104 don't. */
105 /* #undef HAVE_DECL_ARC4RANDOM */
106
107 /* Define to 1 if you have the declaration of `arc4random_uniform', and to 0
108 if you don't. */
109 /* #undef HAVE_DECL_ARC4RANDOM_UNIFORM */
110
111 /* Define to 1 if you have the declaration of `evsignal_assign', and to 0 if
112 you don't. */
113 /* #undef HAVE_DECL_EVSIGNAL_ASSIGN */
114
115 /* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you
116 don't. */
117 #define HAVE_DECL_INET_NTOP 1
118
119 /* Define to 1 if you have the declaration of `inet_pton', and to 0 if you
120 don't. */
121 #define HAVE_DECL_INET_PTON 1
122
123 /* Define to 1 if you have the declaration of `nghttp2_session_server_new',
124 and to 0 if you don't. */
125 /* #undef HAVE_DECL_NGHTTP2_SESSION_SERVER_NEW */
126
127 /* Define to 1 if you have the declaration of `NID_ED25519', and to 0 if you
128 don't. */
129 #define HAVE_DECL_NID_ED25519 1
130
131 /* Define to 1 if you have the declaration of `NID_ED448', and to 0 if you
132 don't. */
133 #define HAVE_DECL_NID_ED448 1
134
135 /* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
136 don't. */
137 #define HAVE_DECL_NID_SECP384R1 1
138
139 /* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
140 if you don't. */
141 #define HAVE_DECL_NID_X9_62_PRIME256V1 1
142
143 /* Define to 1 if you have the declaration of `reallocarray', and to 0 if you
144 don't. */
145 #define HAVE_DECL_REALLOCARRAY 1
146
147 /* Define to 1 if you have the declaration of `redisConnect', and to 0 if you
148 don't. */
149 /* #undef HAVE_DECL_REDISCONNECT */
150
151 /* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0
152 if you don't. */
153 #define HAVE_DECL_SK_SSL_COMP_POP_FREE 1
154
155 /* Define to 1 if you have the declaration of
156 `SSL_COMP_get_compression_methods', and to 0 if you don't. */
157 #define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS 1
158
159 /* Define to 1 if you have the declaration of `SSL_CTX_set_ecdh_auto', and to
160 0 if you don't. */
161 #define HAVE_DECL_SSL_CTX_SET_ECDH_AUTO 1
162
163 /* Define to 1 if you have the declaration of `strlcat', and to 0 if you
164 don't. */
165 /* #undef HAVE_DECL_STRLCAT */
166
167 /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
168 don't. */
169 /* #undef HAVE_DECL_STRLCPY */
170
171 /* Define to 1 if you have the declaration of `XML_StopParser', and to 0 if
172 you don't. */
173 #define HAVE_DECL_XML_STOPPARSER 1
174
175 /* Define to 1 if you have the <dlfcn.h> header file. */
176 #define HAVE_DLFCN_H 1
177
178 /* Define to 1 if you have the `DSA_SIG_set0' function. */
179 #define HAVE_DSA_SIG_SET0 1
180
181 /* Define to 1 if you have the <endian.h> header file. */
182 #define HAVE_ENDIAN_H 1
183
184 /* Define to 1 if you have the `endprotoent' function. */
185 #define HAVE_ENDPROTOENT 1
186
187 /* Define to 1 if you have the `endpwent' function. */
188 #define HAVE_ENDPWENT 1
189
190 /* Define to 1 if you have the `endservent' function. */
191 #define HAVE_ENDSERVENT 1
192
193 /* Define to 1 if you have the `ENGINE_cleanup' function. */
194 /* #undef HAVE_ENGINE_CLEANUP */
195
196 /* Define to 1 if you have the `ERR_free_strings' function. */
197 /* #undef HAVE_ERR_FREE_STRINGS */
198
199 /* Define to 1 if you have the `ERR_load_crypto_strings' function. */
200 /* #undef HAVE_ERR_LOAD_CRYPTO_STRINGS */
201
202 /* Define to 1 if you have the `event_assign' function. */
203 #define HAVE_EVENT_ASSIGN 1
204
205 /* Define to 1 if you have the `event_base_free' function. */
206 #define HAVE_EVENT_BASE_FREE 1
207
208 /* Define to 1 if you have the `event_base_get_method' function. */
209 #define HAVE_EVENT_BASE_GET_METHOD 1
210
211 /* Define to 1 if you have the `event_base_new' function. */
212 #define HAVE_EVENT_BASE_NEW 1
213
214 /* Define to 1 if you have the `event_base_once' function. */
215 #define HAVE_EVENT_BASE_ONCE 1
216
217 /* Define to 1 if you have the <event.h> header file. */
218 #define HAVE_EVENT_H 1
219
220 /* Define to 1 if you have the `EVP_aes_256_cbc' function. */
221 #define HAVE_EVP_AES_256_CBC 1
222
223 /* Define to 1 if you have the `EVP_cleanup' function. */
224 /* #undef HAVE_EVP_CLEANUP */
225
226 /* Define to 1 if you have the `EVP_default_properties_is_fips_enabled'
227 function. */
228 /* #undef HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED */
229
230 /* Define to 1 if you have the `EVP_DigestVerify' function. */
231 #define HAVE_EVP_DIGESTVERIFY 1
232
233 /* Define to 1 if you have the `EVP_dss1' function. */
234 /* #undef HAVE_EVP_DSS1 */
235
236 /* Define to 1 if you have the `EVP_EncryptInit_ex' function. */
237 #define HAVE_EVP_ENCRYPTINIT_EX 1
238
239 /* Define to 1 if you have the `EVP_MAC_CTX_set_params' function. */
240 /* #undef HAVE_EVP_MAC_CTX_SET_PARAMS */
241
242 /* Define to 1 if you have the `EVP_MD_CTX_new' function. */
243 #define HAVE_EVP_MD_CTX_NEW 1
244
245 /* Define to 1 if you have the `EVP_sha1' function. */
246 #define HAVE_EVP_SHA1 1
247
248 /* Define to 1 if you have the `EVP_sha256' function. */
249 #define HAVE_EVP_SHA256 1
250
251 /* Define to 1 if you have the `EVP_sha512' function. */
252 #define HAVE_EVP_SHA512 1
253
254 /* Define to 1 if you have the `ev_default_loop' function. */
255 /* #undef HAVE_EV_DEFAULT_LOOP */
256
257 /* Define to 1 if you have the `ev_loop' function. */
258 /* #undef HAVE_EV_LOOP */
259
260 /* Define to 1 if you have the <expat.h> header file. */
261 #define HAVE_EXPAT_H 1
262
263 /* Define to 1 if you have the `explicit_bzero' function. */
264 /* #undef HAVE_EXPLICIT_BZERO */
265
266 /* Define to 1 if you have the `fcntl' function. */
267 #define HAVE_FCNTL 1
268
269 /* Define to 1 if you have the `FIPS_mode' function. */
270 /* #undef HAVE_FIPS_MODE */
271
272 /* Define to 1 if you have the `fork' function. */
273 #define HAVE_FORK 1
274
275 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
276 #define HAVE_FSEEKO 1
277
278 /* Define to 1 if you have the `fsync' function. */
279 #define HAVE_FSYNC 1
280
281 /* Whether getaddrinfo is available */
282 #define HAVE_GETADDRINFO 1
283
284 /* Define to 1 if you have the `getauxval' function. */
285 /* #undef HAVE_GETAUXVAL */
286
287 /* Define to 1 if you have the `getentropy' function. */
288 /* #undef HAVE_GETENTROPY */
289
290 /* Define to 1 if you have the `getifaddrs' function. */
291 #define HAVE_GETIFADDRS 1
292
293 /* Define to 1 if you have the <getopt.h> header file. */
294 #define HAVE_GETOPT_H 1
295
296 /* Define to 1 if you have the `getpwnam' function. */
297 #define HAVE_GETPWNAM 1
298
299 /* Define to 1 if you have the `getrlimit' function. */
300 #define HAVE_GETRLIMIT 1
301
302 /* Define to 1 if you have the `gettid' function. */
303 /* #undef HAVE_GETTID */
304
305 /* Define to 1 if you have the `glob' function. */
306 #define HAVE_GLOB 1
307
308 /* Define to 1 if you have the <glob.h> header file. */
309 #define HAVE_GLOB_H 1
310
311 /* Define to 1 if you have the `gmtime_r' function. */
312 #define HAVE_GMTIME_R 1
313
314 /* Define to 1 if you have the <grp.h> header file. */
315 #define HAVE_GRP_H 1
316
317 /* Define to 1 if you have the <hiredis/hiredis.h> header file. */
318 /* #undef HAVE_HIREDIS_HIREDIS_H */
319
320 /* Define to 1 if you have the `HMAC_Init_ex' function. */
321 #define HAVE_HMAC_INIT_EX 1
322
323 /* If we have htobe64 */
324 #define HAVE_HTOBE64 1
325
326 /* Define to 1 if you have the <ifaddrs.h> header file. */
327 #define HAVE_IFADDRS_H 1
328
329 /* Define to 1 if you have the `if_nametoindex' function. */
330 #define HAVE_IF_NAMETOINDEX 1
331
332 /* Define to 1 if you have the `inet_aton' function. */
333 #define HAVE_INET_ATON 1
334
335 /* Define to 1 if you have the `inet_ntop' function. */
336 #define HAVE_INET_NTOP 1
337
338 /* Define to 1 if you have the `inet_pton' function. */
339 #define HAVE_INET_PTON 1
340
341 /* Define to 1 if you have the `initgroups' function. */
342 #define HAVE_INITGROUPS 1
343
344 /* Define to 1 if you have the <inttypes.h> header file. */
345 #define HAVE_INTTYPES_H 1
346
347 /* if the function 'ioctlsocket' is available */
348 /* #undef HAVE_IOCTLSOCKET */
349
350 /* Define to 1 if you have the <iphlpapi.h> header file. */
351 /* #undef HAVE_IPHLPAPI_H */
352
353 /* Define to 1 if you have the `isblank' function. */
354 #define HAVE_ISBLANK 1
355
356 /* Define to 1 if you have the `kill' function. */
357 #define HAVE_KILL 1
358
359 /* Use portable libbsd functions */
360 /* #undef HAVE_LIBBSD */
361
362 /* Define to 1 if you have the <libkern/OSByteOrder.h> header file. */
363 /* #undef HAVE_LIBKERN_OSBYTEORDER_H */
364
365 /* Define if we have LibreSSL */
366 /* #undef HAVE_LIBRESSL */
367
368 /* Define to 1 if you have the <linux/net_tstamp.h> header file. */
369 /* #undef HAVE_LINUX_NET_TSTAMP_H */
370
371 /* Define to 1 if you have the `localtime_r' function. */
372 #define HAVE_LOCALTIME_R 1
373
374 /* Define to 1 if you have the <login_cap.h> header file. */
375 #define HAVE_LOGIN_CAP_H 1
376
377 /* If have GNU libc compatible malloc */
378 #define HAVE_MALLOC 1
379
380 /* Define to 1 if you have the `memmove' function. */
381 #define HAVE_MEMMOVE 1
382
383 /* Define to 1 if you have the <memory.h> header file. */
384 #define HAVE_MEMORY_H 1
385
386 /* Define to 1 if you have the <netdb.h> header file. */
387 #define HAVE_NETDB_H 1
388
389 /* Define to 1 if you have the <netinet/in.h> header file. */
390 #define HAVE_NETINET_IN_H 1
391
392 /* Define to 1 if you have the <netinet/tcp.h> header file. */
393 #define HAVE_NETINET_TCP_H 1
394
395 /* Define to 1 if you have the <netioapi.h> header file. */
396 /* #undef HAVE_NETIOAPI_H */
397
398 /* Use libnettle for crypto */
399 /* #undef HAVE_NETTLE */
400
401 /* Define to 1 if you have the <nettle/dsa-compat.h> header file. */
402 /* #undef HAVE_NETTLE_DSA_COMPAT_H */
403
404 /* Define to 1 if you have the <nettle/eddsa.h> header file. */
405 /* #undef HAVE_NETTLE_EDDSA_H */
406
407 /* Define to 1 if you have the <net/if.h> header file. */
408 #define HAVE_NET_IF_H 1
409
410 /* Define this to use nghttp2 client. */
411 /* #undef HAVE_NGHTTP2 */
412
413 /* Define to 1 if you have the <nghttp2/nghttp2.h> header file. */
414 /* #undef HAVE_NGHTTP2_NGHTTP2_H */
415
416 /* Use libnss for crypto */
417 /* #undef HAVE_NSS */
418
419 /* Define to 1 if you have the `OpenSSL_add_all_digests' function. */
420 /* #undef HAVE_OPENSSL_ADD_ALL_DIGESTS */
421
422 /* Define to 1 if you have the <openssl/bn.h> header file. */
423 #define HAVE_OPENSSL_BN_H 1
424
425 /* Define to 1 if you have the `OPENSSL_config' function. */
426 #define HAVE_OPENSSL_CONFIG 1
427
428 /* Define to 1 if you have the <openssl/conf.h> header file. */
429 #define HAVE_OPENSSL_CONF_H 1
430
431 /* Define to 1 if you have the <openssl/core_names.h> header file. */
432 /* #undef HAVE_OPENSSL_CORE_NAMES_H */
433
434 /* Define to 1 if you have the <openssl/dh.h> header file. */
435 #define HAVE_OPENSSL_DH_H 1
436
437 /* Define to 1 if you have the <openssl/dsa.h> header file. */
438 #define HAVE_OPENSSL_DSA_H 1
439
440 /* Define to 1 if you have the <openssl/engine.h> header file. */
441 #define HAVE_OPENSSL_ENGINE_H 1
442
443 /* Define to 1 if you have the <openssl/err.h> header file. */
444 #define HAVE_OPENSSL_ERR_H 1
445
446 /* Define to 1 if you have the `OPENSSL_init_crypto' function. */
447 #define HAVE_OPENSSL_INIT_CRYPTO 1
448
449 /* Define to 1 if you have the `OPENSSL_init_ssl' function. */
450 #define HAVE_OPENSSL_INIT_SSL 1
451
452 /* Define to 1 if you have the <openssl/param_build.h> header file. */
453 /* #undef HAVE_OPENSSL_PARAM_BUILD_H */
454
455 /* Define to 1 if you have the <openssl/rand.h> header file. */
456 #define HAVE_OPENSSL_RAND_H 1
457
458 /* Define to 1 if you have the <openssl/rsa.h> header file. */
459 #define HAVE_OPENSSL_RSA_H 1
460
461 /* Define to 1 if you have the <openssl/ssl.h> header file. */
462 #define HAVE_OPENSSL_SSL_H 1
463
464 /* Define to 1 if you have the `OSSL_PARAM_BLD_new' function. */
465 /* #undef HAVE_OSSL_PARAM_BLD_NEW */
466
467 /* Define to 1 if you have the `poll' function. */
468 #define HAVE_POLL 1
469
470 /* Define to 1 if you have the <poll.h> header file. */
471 #define HAVE_POLL_H 1
472
473 /* Define if you have POSIX threads libraries and header files. */
474 #define HAVE_PTHREAD 1
475
476 /* Have PTHREAD_PRIO_INHERIT. */
477 #define HAVE_PTHREAD_PRIO_INHERIT 1
478
479 /* Define to 1 if the system has the type `pthread_rwlock_t'. */
480 #define HAVE_PTHREAD_RWLOCK_T 1
481
482 /* Define to 1 if the system has the type `pthread_spinlock_t'. */
483 #define HAVE_PTHREAD_SPINLOCK_T 1
484
485 /* Define to 1 if you have the <pwd.h> header file. */
486 #define HAVE_PWD_H 1
487
488 /* Define if you have Python libraries and header files. */
489 /* #undef HAVE_PYTHON */
490
491 /* Define to 1 if you have the `random' function. */
492 #define HAVE_RANDOM 1
493
494 /* Define to 1 if you have the `RAND_cleanup' function. */
495 /* #undef HAVE_RAND_CLEANUP */
496
497 /* If we have reallocarray(3) */
498 #define HAVE_REALLOCARRAY 1
499
500 /* Define to 1 if you have the `recvmsg' function. */
501 #define HAVE_RECVMSG 1
502
503 /* Define to 1 if you have the `sendmsg' function. */
504 #define HAVE_SENDMSG 1
505
506 /* Define to 1 if you have the `setregid' function. */
507 #define HAVE_SETREGID 1
508
509 /* Define to 1 if you have the `setresgid' function. */
510 /* #undef HAVE_SETRESGID */
511
512 /* Define to 1 if you have the `setresuid' function. */
513 /* #undef HAVE_SETRESUID */
514
515 /* Define to 1 if you have the `setreuid' function. */
516 #define HAVE_SETREUID 1
517
518 /* Define to 1 if you have the `setrlimit' function. */
519 #define HAVE_SETRLIMIT 1
520
521 /* Define to 1 if you have the `setsid' function. */
522 #define HAVE_SETSID 1
523
524 /* Define to 1 if you have the `setusercontext' function. */
525 #define HAVE_SETUSERCONTEXT 1
526
527 /* Define to 1 if you have the `SHA512_Update' function. */
528 /* #undef HAVE_SHA512_UPDATE */
529
530 /* Define to 1 if you have the `shmget' function. */
531 #define HAVE_SHMGET 1
532
533 /* Define to 1 if you have the `sigprocmask' function. */
534 #define HAVE_SIGPROCMASK 1
535
536 /* Define to 1 if you have the `sleep' function. */
537 #define HAVE_SLEEP 1
538
539 /* Define to 1 if you have the `snprintf' function. */
540 #define HAVE_SNPRINTF 1
541
542 /* Define to 1 if you have the `socketpair' function. */
543 #define HAVE_SOCKETPAIR 1
544
545 /* Using Solaris threads */
546 /* #undef HAVE_SOLARIS_THREADS */
547
548 /* Define to 1 if you have the `srandom' function. */
549 #define HAVE_SRANDOM 1
550
551 /* Define if you have the SSL libraries installed. */
552 #define HAVE_SSL /**/
553
554 /* Define to 1 if you have the `SSL_CTX_set_alpn_protos' function. */
555 #define HAVE_SSL_CTX_SET_ALPN_PROTOS 1
556
557 /* Define to 1 if you have the `SSL_CTX_set_alpn_select_cb' function. */
558 #define HAVE_SSL_CTX_SET_ALPN_SELECT_CB 1
559
560 /* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function. */
561 #define HAVE_SSL_CTX_SET_CIPHERSUITES 1
562
563 /* Define to 1 if you have the `SSL_CTX_set_security_level' function. */
564 #define HAVE_SSL_CTX_SET_SECURITY_LEVEL 1
565
566 /* Define to 1 if you have the `SSL_CTX_set_tlsext_ticket_key_evp_cb'
567 function. */
568 /* #undef HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB */
569
570 /* Define to 1 if you have the `SSL_get0_alpn_selected' function. */
571 #define HAVE_SSL_GET0_ALPN_SELECTED 1
572
573 /* Define to 1 if you have the `SSL_get0_peername' function. */
574 #define HAVE_SSL_GET0_PEERNAME 1
575
576 /* Define to 1 if you have the `SSL_get1_peer_certificate' function. */
577 /* #undef HAVE_SSL_GET1_PEER_CERTIFICATE */
578
579 /* Define to 1 if you have the `SSL_set1_host' function. */
580 #define HAVE_SSL_SET1_HOST 1
581
582 /* Define to 1 if you have the <stdarg.h> header file. */
583 #define HAVE_STDARG_H 1
584
585 /* Define to 1 if you have the <stdbool.h> header file. */
586 #define HAVE_STDBOOL_H 1
587
588 /* Define to 1 if you have the <stdint.h> header file. */
589 #define HAVE_STDINT_H 1
590
591 /* Define to 1 if you have the <stdlib.h> header file. */
592 #define HAVE_STDLIB_H 1
593
594 /* Define to 1 if you have the `strftime' function. */
595 #define HAVE_STRFTIME 1
596
597 /* Define to 1 if you have the <strings.h> header file. */
598 #define HAVE_STRINGS_H 1
599
600 /* Define to 1 if you have the <string.h> header file. */
601 #define HAVE_STRING_H 1
602
603 /* Define to 1 if you have the `strlcat' function. */
604 #define HAVE_STRLCAT 1
605
606 /* Define to 1 if you have the `strlcpy' function. */
607 #define HAVE_STRLCPY 1
608
609 /* Define to 1 if you have the `strptime' function. */
610 #define HAVE_STRPTIME 1
611
612 /* Define to 1 if you have the `strsep' function. */
613 #define HAVE_STRSEP 1
614
615 /* Define to 1 if `ipi_spec_dst' is a member of `struct in_pktinfo'. */
616 #define HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST 1
617
618 /* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */
619 #define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1
620
621 /* Define if you have Swig libraries and header files. */
622 /* #undef HAVE_SWIG */
623
624 /* Define to 1 if you have the <syslog.h> header file. */
625 #define HAVE_SYSLOG_H 1
626
627 /* Define to 1 if systemd should be used */
628 /* #undef HAVE_SYSTEMD */
629
630 /* Define to 1 if you have the <sys/endian.h> header file. */
631 #define HAVE_SYS_ENDIAN_H 1
632
633 /* Define to 1 if you have the <sys/ipc.h> header file. */
634 #define HAVE_SYS_IPC_H 1
635
636 /* Define to 1 if you have the <sys/param.h> header file. */
637 #define HAVE_SYS_PARAM_H 1
638
639 /* Define to 1 if you have the <sys/resource.h> header file. */
640 #define HAVE_SYS_RESOURCE_H 1
641
642 /* Define to 1 if you have the <sys/select.h> header file. */
643 #define HAVE_SYS_SELECT_H 1
644
645 /* Define to 1 if you have the <sys/sha2.h> header file. */
646 /* #undef HAVE_SYS_SHA2_H */
647
648 /* Define to 1 if you have the <sys/shm.h> header file. */
649 #define HAVE_SYS_SHM_H 1
650
651 /* Define to 1 if you have the <sys/socket.h> header file. */
652 #define HAVE_SYS_SOCKET_H 1
653
654 /* Define to 1 if you have the <sys/stat.h> header file. */
655 #define HAVE_SYS_STAT_H 1
656
657 /* Define to 1 if you have the <sys/sysctl.h> header file. */
658 /* #undef HAVE_SYS_SYSCTL_H */
659
660 /* Define to 1 if you have the <sys/types.h> header file. */
661 #define HAVE_SYS_TYPES_H 1
662
663 /* Define to 1 if you have the <sys/uio.h> header file. */
664 #define HAVE_SYS_UIO_H 1
665
666 /* Define to 1 if you have the <sys/un.h> header file. */
667 #define HAVE_SYS_UN_H 1
668
669 /* Define to 1 if you have the <sys/wait.h> header file. */
670 #define HAVE_SYS_WAIT_H 1
671
672 /* Define to 1 if you have the <TargetConditionals.h> header file. */
673 /* #undef HAVE_TARGETCONDITIONALS_H */
674
675 /* Define to 1 if you have the <time.h> header file. */
676 #define HAVE_TIME_H 1
677
678 /* Define to 1 if you have the `tzset' function. */
679 #define HAVE_TZSET 1
680
681 /* Define to 1 if you have the <unistd.h> header file. */
682 #define HAVE_UNISTD_H 1
683
684 /* Define to 1 if you have the `usleep' function. */
685 #define HAVE_USLEEP 1
686
687 /* Define to 1 if you have the `vfork' function. */
688 #define HAVE_VFORK 1
689
690 /* Define to 1 if you have the <vfork.h> header file. */
691 /* #undef HAVE_VFORK_H */
692
693 /* Define to 1 if you have the <windows.h> header file. */
694 /* #undef HAVE_WINDOWS_H */
695
696 /* Using Windows threads */
697 /* #undef HAVE_WINDOWS_THREADS */
698
699 /* Define to 1 if you have the <winsock2.h> header file. */
700 /* #undef HAVE_WINSOCK2_H */
701
702 /* Define to 1 if `fork' works. */
703 #define HAVE_WORKING_FORK 1
704
705 /* Define to 1 if `vfork' works. */
706 #define HAVE_WORKING_VFORK 1
707
708 /* Define to 1 if you have the `writev' function. */
709 #define HAVE_WRITEV 1
710
711 /* Define to 1 if you have the <ws2tcpip.h> header file. */
712 /* #undef HAVE_WS2TCPIP_H */
713
714 /* Define to 1 if you have the `X509_VERIFY_PARAM_set1_host' function. */
715 #define HAVE_X509_VERIFY_PARAM_SET1_HOST 1
716
717 /* Define to 1 if you have the `_beginthreadex' function. */
718 /* #undef HAVE__BEGINTHREADEX */
719
720 /* If HMAC_Init_ex() returns void */
721 /* #undef HMAC_INIT_EX_RETURNS_VOID */
722
723 /* if lex has yylex_destroy */
724 #define LEX_HAS_YYLEX_DESTROY 1
725
726 /* Define to the sub-directory where libtool stores uninstalled libraries. */
727 #define LT_OBJDIR ".libs/"
728
729 /* Define to the maximum message length to pass to syslog. */
730 #define MAXSYSLOGMSGLEN 10240
731
732 /* Define if memcmp() does not compare unsigned bytes */
733 /* #undef MEMCMP_IS_BROKEN */
734
735 /* Define if mkdir has one argument. */
736 /* #undef MKDIR_HAS_ONE_ARG */
737
738 /* Define if the network stack does not fully support nonblocking io (causes
739 lower performance). */
740 /* #undef NONBLOCKING_IS_BROKEN */
741
742 /* Put -D_ALL_SOURCE define in config.h */
743 /* #undef OMITTED__D_ALL_SOURCE */
744
745 /* Put -D_BSD_SOURCE define in config.h */
746 /* #undef OMITTED__D_BSD_SOURCE */
747
748 /* Put -D_DEFAULT_SOURCE define in config.h */
749 /* #undef OMITTED__D_DEFAULT_SOURCE */
750
751 /* Put -D_GNU_SOURCE define in config.h */
752 /* #undef OMITTED__D_GNU_SOURCE */
753
754 /* Put -D_LARGEFILE_SOURCE=1 define in config.h */
755 /* #undef OMITTED__D_LARGEFILE_SOURCE_1 */
756
757 /* Put -D_POSIX_C_SOURCE=200112 define in config.h */
758 /* #undef OMITTED__D_POSIX_C_SOURCE_200112 */
759
760 /* Put -D_XOPEN_SOURCE=600 define in config.h */
761 /* #undef OMITTED__D_XOPEN_SOURCE_600 */
762
763 /* Put -D_XOPEN_SOURCE_EXTENDED=1 define in config.h */
764 /* #undef OMITTED__D_XOPEN_SOURCE_EXTENDED_1 */
765
766 /* Put -D__EXTENSIONS__ define in config.h */
767 /* #undef OMITTED__D__EXTENSIONS__ */
768
769 /* Define to the address where bug reports for this package should be sent. */
770 #define PACKAGE_BUGREPORT "unbound-bugs (at) nlnetlabs.nl or https://github.com/NLnetLabs/unbound/issues"
771
772 /* Define to the full name of this package. */
773 #define PACKAGE_NAME "unbound"
774
775 /* Define to the full name and version of this package. */
776 #define PACKAGE_STRING "unbound 1.19.1"
777
778 /* Define to the one symbol short name of this package. */
779 #define PACKAGE_TARNAME "unbound"
780
781 /* Define to the home page for this package. */
782 #define PACKAGE_URL ""
783
784 /* Define to the version of this package. */
785 #define PACKAGE_VERSION "1.19.1"
786
787 /* default pidfile location */
788 #define PIDFILE "/var/run/unbound.pid"
789
790 /* Define to necessary symbol if this constant uses a non-standard name on
791 your system. */
792 /* #undef PTHREAD_CREATE_JOINABLE */
793
794 /* Return type of signal handlers, but autoconf 2.70 says 'your code may
795 safely assume C89 semantics that RETSIGTYPE is void.' */
796 #define RETSIGTYPE void
797
798 /* if REUSEPORT is enabled by default */
799 #define REUSEPORT_DEFAULT 0
800
801 /* default rootkey location */
802 #define ROOT_ANCHOR_FILE CHROOT_DIR "/etc/unbound/root.key"
803
804 /* default rootcert location */
805 #define ROOT_CERT_FILE CHROOT_DIR "/etc/unbound/icannbundle.pem"
806
807 /* version number for resource files */
808 #define RSRC_PACKAGE_VERSION 1,19,1,0
809
810 /* Directory to chdir to */
811 #define RUN_DIR CHROOT_DIR "/etc/unbound"
812
813 /* Shared data */
814 #define SHARE_DIR CHROOT_DIR "/etc/unbound"
815
816 #ifdef _LP64
817 /* The size of `pthread_t', as computed by sizeof. */
818 #define SIZEOF_PTHREAD_T 8
819
820 /* The size of `size_t', as computed by sizeof. */
821 #define SIZEOF_SIZE_T 8
822 #else
823 /* The size of `pthread_t', as computed by sizeof. */
824 #define SIZEOF_PTHREAD_T 4
825
826 /* The size of `size_t', as computed by sizeof. */
827 #define SIZEOF_SIZE_T 4
828 #endif
829
830 /* The size of `time_t', as computed by sizeof. */
831 #define SIZEOF_TIME_T 8
832
833 #ifdef _LP64
834 /* The size of `unsigned long', as computed by sizeof. */
835 #define SIZEOF_UNSIGNED_LONG 8
836 #else
837 /* The size of `unsigned long', as computed by sizeof. */
838 #define SIZEOF_UNSIGNED_LONG 4
839 #endif
840
841 /* define if (v)snprintf does not return length needed, (but length used) */
842 /* #undef SNPRINTF_RET_BROKEN */
843
844 /* Define to 1 if libsodium supports sodium_set_misuse_handler */
845 /* #undef SODIUM_MISUSE_HANDLER */
846
847 /* Define to 1 if you have the ANSI C header files. */
848 #define STDC_HEADERS 1
849
850 /* use default strptime. */
851 #define STRPTIME_WORKS 1
852
853 /* Use win32 resources and API */
854 /* #undef UB_ON_WINDOWS */
855
856 /* the SYSLOG_FACILITY to use, default LOG_DAEMON */
857 #define UB_SYSLOG_FACILITY LOG_DAEMON
858
859 /* default username */
860 #define UB_USERNAME "_unbound"
861
862 /* use to enable lightweight alloc assertions, for debug use */
863 /* #undef UNBOUND_ALLOC_LITE */
864
865 /* use malloc not regions, for debug use */
866 /* #undef UNBOUND_ALLOC_NONREGIONAL */
867
868 /* use statistics for allocs and frees, for debug use */
869 /* #undef UNBOUND_ALLOC_STATS */
870
871 /* define this to enable debug checks. */
872 /* #undef UNBOUND_DEBUG */
873
874 /* Define to 1 to use cachedb support */
875 /* #undef USE_CACHEDB */
876
877 /* Define to 1 to enable dnscrypt support */
878 /* #undef USE_DNSCRYPT */
879
880 /* Define to 1 to enable dnscrypt with xchacha20 support */
881 /* #undef USE_DNSCRYPT_XCHACHA20 */
882
883 /* Define to 1 to enable dnstap support */
884 /* #undef USE_DNSTAP */
885
886 /* Define this to enable DSA support. */
887 /* #undef USE_DSA */
888
889 /* Define this to enable ECDSA support. */
890 #define USE_ECDSA 1
891
892 /* Define this to enable an EVP workaround for older openssl */
893 /* #undef USE_ECDSA_EVP_WORKAROUND */
894
895 /* Define this to enable ED25519 support. */
896 #define USE_ED25519 1
897
898 /* Define this to enable ED448 support. */
899 #define USE_ED448 1
900
901 /* Define this to enable GOST support. */
902 /* #undef USE_GOST */
903
904 /* Define to 1 to use ipsecmod support. */
905 /* #undef USE_IPSECMOD */
906
907 /* Define to 1 to use ipset support */
908 /* #undef USE_IPSET */
909
910 /* Define if you enable libevent */
911 #define USE_LIBEVENT 1
912
913 /* Define this to enable use of /proc/sys/net/ipv4/ip_local_port_range as a
914 default outgoing port range. This is only for the libunbound on Linux and
915 does not affect unbound resolving daemon itself. This may severely limit
916 the number of available outgoing ports and thus decrease randomness. Define
917 this only when the target system restricts (e.g. some of SELinux enabled
918 distributions) the use of non-ephemeral ports. */
919 /* #undef USE_LINUX_IP_LOCAL_PORT_RANGE */
920
921 /* Define if you want to use internal select based events */
922 /* #undef USE_MINI_EVENT */
923
924 /* Define this to enable client TCP Fast Open. */
925 /* #undef USE_MSG_FASTOPEN */
926
927 /* Define this to enable client TCP Fast Open. */
928 /* #undef USE_OSX_MSG_FASTOPEN */
929
930 /* Define this to use hiredis client. */
931 /* #undef USE_REDIS */
932
933 /* Define this to enable SHA1 support. */
934 #define USE_SHA1 1
935
936 /* Define this to enable SHA256 and SHA512 support. */
937 #define USE_SHA2 1
938
939 /* Enable extensions on AIX 3, Interix. */
940 #ifndef _ALL_SOURCE
941 # define _ALL_SOURCE 1
942 #endif
943 /* Enable GNU extensions on systems that have them. */
944 #ifndef _GNU_SOURCE
945 # define _GNU_SOURCE 1
946 #endif
947 /* Enable threading extensions on Solaris. */
948 #ifndef _POSIX_PTHREAD_SEMANTICS
949 # define _POSIX_PTHREAD_SEMANTICS 1
950 #endif
951 /* Enable extensions on HP NonStop. */
952 #ifndef _TANDEM_SOURCE
953 # define _TANDEM_SOURCE 1
954 #endif
955 /* Enable general extensions on Solaris. */
956 #ifndef __EXTENSIONS__
957 # define __EXTENSIONS__ 1
958 #endif
959
960
961 /* Define this to enable server TCP Fast Open. */
962 /* #undef USE_TCP_FASTOPEN */
963
964 /* Whether the windows socket API is used */
965 /* #undef USE_WINSOCK */
966
967 /* the version of the windows API enabled */
968 #define WINVER 0x0502
969
970 /* Define if you want dynlib module. */
971 /* #undef WITH_DYNLIBMODULE */
972
973 /* Define if you want Python module. */
974 /* #undef WITH_PYTHONMODULE */
975
976 /* Define if you want PyUnbound. */
977 /* #undef WITH_PYUNBOUND */
978
979 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
980 `char[]'. */
981 #define YYTEXT_POINTER 1
982
983 /* Enable large inode numbers on Mac OS X 10.5. */
984 #ifndef _DARWIN_USE_64_BIT_INODE
985 # define _DARWIN_USE_64_BIT_INODE 1
986 #endif
987
988 /* Number of bits in a file offset, on hosts where this is settable. */
989 /* #undef _FILE_OFFSET_BITS */
990
991 /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
992 /* #undef _LARGEFILE_SOURCE */
993
994 /* Define for large files, on AIX-style hosts. */
995 /* #undef _LARGE_FILES */
996
997 /* Define to 1 if on MINIX. */
998 /* #undef _MINIX */
999
1000 /* Enable for compile on Minix */
1001 /* #undef _NETBSD_SOURCE */
1002
1003 /* Define to 2 if the system does not provide POSIX.1 features except with
1004 this defined. */
1005 /* #undef _POSIX_1_SOURCE */
1006
1007 /* Define to 1 if you need to in order for `stat' and other things to work. */
1008 /* #undef _POSIX_SOURCE */
1009
1010 /* defined to use gcc ansi snprintf and sscanf that understands %lld when
1011 compiled for windows. */
1012 /* #undef __USE_MINGW_ANSI_STDIO */
1013
1014 /* Define to 1 if you need to in order for `stat' and other things to work. */
1015 /* #undef _POSIX_SOURCE */
1016
1017 /* Define to empty if `const' does not conform to ANSI C. */
1018 /* #undef const */
1019
1020 /* Define to `int' if <sys/types.h> doesn't define. */
1021 /* #undef gid_t */
1022
1023 /* in_addr_t */
1024 /* #undef in_addr_t */
1025
1026 /* in_port_t */
1027 /* #undef in_port_t */
1028
1029 /* Define to `__inline__' or `__inline' if that's what the C compiler
1030 calls it, or to nothing if 'inline' is not supported under any name. */
1031 #ifndef __cplusplus
1032 /* #undef inline */
1033 #endif
1034
1035 /* Define to `short' if <sys/types.h> does not define. */
1036 /* #undef int16_t */
1037
1038 /* Define to `int' if <sys/types.h> does not define. */
1039 /* #undef int32_t */
1040
1041 /* Define to `long long' if <sys/types.h> does not define. */
1042 /* #undef int64_t */
1043
1044 /* Define to `signed char' if <sys/types.h> does not define. */
1045 /* #undef int8_t */
1046
1047 /* Define if replacement function should be used. */
1048 /* #undef malloc */
1049
1050 /* Define to `long int' if <sys/types.h> does not define. */
1051 /* #undef off_t */
1052
1053 /* Define to `int' if <sys/types.h> does not define. */
1054 /* #undef pid_t */
1055
1056 /* Define to 'int' if not defined */
1057 /* #undef rlim_t */
1058
1059 /* Define to `unsigned int' if <sys/types.h> does not define. */
1060 /* #undef size_t */
1061
1062 /* Define to 'int' if not defined */
1063 /* #undef socklen_t */
1064
1065 /* Define to `int' if <sys/types.h> does not define. */
1066 /* #undef ssize_t */
1067
1068 /* Define to 'unsigned char if not defined */
1069 /* #undef u_char */
1070
1071 /* Define to `int' if <sys/types.h> doesn't define. */
1072 /* #undef uid_t */
1073
1074 /* Define to `unsigned short' if <sys/types.h> does not define. */
1075 /* #undef uint16_t */
1076
1077 /* Define to `unsigned int' if <sys/types.h> does not define. */
1078 /* #undef uint32_t */
1079
1080 /* Define to `unsigned long long' if <sys/types.h> does not define. */
1081 /* #undef uint64_t */
1082
1083 /* Define to `unsigned char' if <sys/types.h> does not define. */
1084 /* #undef uint8_t */
1085
1086 /* Define as `fork' if `vfork' does not work. */
1087 /* #undef vfork */
1088
1089 #if defined(OMITTED__D_GNU_SOURCE) && !defined(_GNU_SOURCE)
1090 #define _GNU_SOURCE 1
1091 #endif
1092
1093 #if defined(OMITTED__D_BSD_SOURCE) && !defined(_BSD_SOURCE)
1094 #define _BSD_SOURCE 1
1095 #endif
1096
1097 #if defined(OMITTED__D_DEFAULT_SOURCE) && !defined(_DEFAULT_SOURCE)
1098 #define _DEFAULT_SOURCE 1
1099 #endif
1100
1101 #if defined(OMITTED__D__EXTENSIONS__) && !defined(__EXTENSIONS__)
1102 #define __EXTENSIONS__ 1
1103 #endif
1104
1105 #if defined(OMITTED__D_POSIX_C_SOURCE_200112) && !defined(_POSIX_C_SOURCE)
1106 #define _POSIX_C_SOURCE 200112
1107 #endif
1108
1109 #if defined(OMITTED__D_XOPEN_SOURCE_600) && !defined(_XOPEN_SOURCE)
1110 #define _XOPEN_SOURCE 600
1111 #endif
1112
1113 #if defined(OMITTED__D_XOPEN_SOURCE_EXTENDED_1) && !defined(_XOPEN_SOURCE_EXTENDED)
1114 #define _XOPEN_SOURCE_EXTENDED 1
1115 #endif
1116
1117 #if defined(OMITTED__D_ALL_SOURCE) && !defined(_ALL_SOURCE)
1118 #define _ALL_SOURCE 1
1119 #endif
1120
1121 #if defined(OMITTED__D_LARGEFILE_SOURCE_1) && !defined(_LARGEFILE_SOURCE)
1122 #define _LARGEFILE_SOURCE 1
1123 #endif
1124
1125
1126
1127
1128 #ifndef _OPENBSD_SOURCE
1129 #define _OPENBSD_SOURCE 1
1130 #endif
1131
1132 #ifndef UNBOUND_DEBUG
1133 # ifndef NDEBUG
1134 # define NDEBUG
1135 # endif
1136 #endif
1137
1138 /** Use small-ldns codebase */
1139 #define USE_SLDNS 1
1140 #ifdef HAVE_SSL
1141 # define LDNS_BUILD_CONFIG_HAVE_SSL 1
1142 #endif
1143
1144 #include <stdio.h>
1145 #include <string.h>
1146 #include <unistd.h>
1147 #include <assert.h>
1148
1149 #if STDC_HEADERS
1150 #include <stdlib.h>
1151 #include <stddef.h>
1152 #endif
1153
1154 #ifdef HAVE_STDARG_H
1155 #include <stdarg.h>
1156 #endif
1157
1158 #ifdef HAVE_STDINT_H
1159 #include <stdint.h>
1160 #endif
1161
1162 #include <errno.h>
1163
1164 #if HAVE_SYS_PARAM_H
1165 #include <sys/param.h>
1166 #endif
1167
1168 #ifdef HAVE_SYS_SOCKET_H
1169 #include <sys/socket.h>
1170 #endif
1171
1172 #ifdef HAVE_SYS_UIO_H
1173 #include <sys/uio.h>
1174 #endif
1175
1176 #ifdef HAVE_NETINET_IN_H
1177 #include <netinet/in.h>
1178 #endif
1179
1180 #ifdef HAVE_NETINET_TCP_H
1181 #include <netinet/tcp.h>
1182 #endif
1183
1184 #ifdef HAVE_ARPA_INET_H
1185 #include <arpa/inet.h>
1186 #endif
1187
1188 #ifdef HAVE_WINSOCK2_H
1189 #include <winsock2.h>
1190 #endif
1191
1192 #ifdef HAVE_WS2TCPIP_H
1193 #include <ws2tcpip.h>
1194 #endif
1195
1196 #if !defined(USE_WINSOCK) || !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN) || defined(__USE_MINGW_ANSI_STDIO)
1197 #define ARG_LL "%ll"
1198 #else
1199 #define ARG_LL "%I64"
1200 #endif
1201
1202 #ifndef AF_LOCAL
1203 #define AF_LOCAL AF_UNIX
1204 #endif
1205
1206
1207
1208 #ifdef HAVE_ATTR_FORMAT
1209 # define ATTR_FORMAT(archetype, string_index, first_to_check) \
1210 __attribute__ ((format (archetype, string_index, first_to_check)))
1211 #else /* !HAVE_ATTR_FORMAT */
1212 # define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
1213 #endif /* !HAVE_ATTR_FORMAT */
1214
1215
1216 #if defined(DOXYGEN)
1217 # define ATTR_UNUSED(x) x
1218 #elif defined(__cplusplus)
1219 # define ATTR_UNUSED(x)
1220 #elif defined(HAVE_ATTR_UNUSED)
1221 # define ATTR_UNUSED(x) x __attribute__((unused))
1222 #else /* !HAVE_ATTR_UNUSED */
1223 # define ATTR_UNUSED(x) x
1224 #endif /* !HAVE_ATTR_UNUSED */
1225
1226
1227 #ifndef HAVE_FSEEKO
1228 #define fseeko fseek
1229 #define ftello ftell
1230 #endif /* HAVE_FSEEKO */
1231
1232
1233 #ifndef MAXHOSTNAMELEN
1234 #define MAXHOSTNAMELEN 256
1235 #endif
1236
1237 #if !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN)
1238 #define snprintf snprintf_unbound
1239 #define vsnprintf vsnprintf_unbound
1240 #include <stdarg.h>
1241 int snprintf (char *str, size_t count, const char *fmt, ...);
1242 int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
1243 #endif /* HAVE_SNPRINTF or SNPRINTF_RET_BROKEN */
1244
1245 #ifndef HAVE_INET_PTON
1246 #define inet_pton inet_pton_unbound
1247 int inet_pton(int af, const char* src, void* dst);
1248 #endif /* HAVE_INET_PTON */
1249
1250
1251 #ifndef HAVE_INET_NTOP
1252 #define inet_ntop inet_ntop_unbound
1253 const char *inet_ntop(int af, const void *src, char *dst, size_t size);
1254 #endif
1255
1256
1257 #ifndef HAVE_INET_ATON
1258 #define inet_aton inet_aton_unbound
1259 int inet_aton(const char *cp, struct in_addr *addr);
1260 #endif
1261
1262
1263 #ifndef HAVE_MEMMOVE
1264 #define memmove memmove_unbound
1265 void *memmove(void *dest, const void *src, size_t n);
1266 #endif
1267
1268
1269 #ifndef HAVE_STRLCAT
1270 #define strlcat strlcat_unbound
1271 size_t strlcat(char *dst, const char *src, size_t siz);
1272 #endif
1273
1274
1275 #ifndef HAVE_STRLCPY
1276 #define strlcpy strlcpy_unbound
1277 size_t strlcpy(char *dst, const char *src, size_t siz);
1278 #endif
1279
1280
1281 #ifndef HAVE_GMTIME_R
1282 #define gmtime_r gmtime_r_unbound
1283 struct tm *gmtime_r(const time_t *timep, struct tm *result);
1284 #endif
1285
1286
1287 #ifndef HAVE_REALLOCARRAY
1288 #define reallocarray reallocarrayunbound
1289 void* reallocarray(void *ptr, size_t nmemb, size_t size);
1290 #endif
1291
1292
1293 #if !defined(HAVE_SLEEP) || defined(HAVE_WINDOWS_H)
1294 #define sleep(x) Sleep((x)*1000) /* on win32 */
1295 #endif /* HAVE_SLEEP */
1296
1297
1298 #ifndef HAVE_USLEEP
1299 #define usleep(x) Sleep((x)/1000 + 1) /* on win32 */
1300 #endif /* HAVE_USLEEP */
1301
1302
1303 #ifndef HAVE_RANDOM
1304 #define random rand /* on win32, for tests only (bad random) */
1305 #endif /* HAVE_RANDOM */
1306
1307
1308 #ifndef HAVE_SRANDOM
1309 #define srandom(x) srand(x) /* on win32, for tests only (bad random) */
1310 #endif /* HAVE_SRANDOM */
1311
1312
1313 /* detect if we need to cast to unsigned int for FD_SET to avoid warnings */
1314 #ifdef HAVE_WINSOCK2_H
1315 #define FD_SET_T (u_int)
1316 #else
1317 #define FD_SET_T
1318 #endif
1319
1320
1321 #ifndef IPV6_MIN_MTU
1322 #define IPV6_MIN_MTU 1280
1323 #endif /* IPV6_MIN_MTU */
1324
1325
1326 #ifdef MEMCMP_IS_BROKEN
1327 #include "compat/memcmp.h"
1328 #define memcmp memcmp_unbound
1329 int memcmp(const void *x, const void *y, size_t n);
1330 #endif
1331
1332
1333
1334 #ifndef HAVE_CTIME_R
1335 #define ctime_r unbound_ctime_r
1336 char *ctime_r(const time_t *timep, char *buf);
1337 #endif
1338
1339 #ifndef HAVE_STRSEP
1340 #define strsep unbound_strsep
1341 char *strsep(char **stringp, const char *delim);
1342 #endif
1343
1344 #ifndef HAVE_ISBLANK
1345 #define isblank unbound_isblank
1346 int isblank(int c);
1347 #endif
1348
1349 #ifndef HAVE_EXPLICIT_BZERO
1350 // #define explicit_bzero unbound_explicit_bzero
1351 #define explicit_bzero(a, b) explicit_memset(a, 0, b)
1352 // void explicit_bzero(void* buf, size_t len);
1353 #endif
1354
1355 #if defined(HAVE_INET_NTOP) && !HAVE_DECL_INET_NTOP
1356 const char *inet_ntop(int af, const void *src, char *dst, size_t size);
1357 #endif
1358
1359 #if defined(HAVE_INET_PTON) && !HAVE_DECL_INET_PTON
1360 int inet_pton(int af, const char* src, void* dst);
1361 #endif
1362
1363 #if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS)
1364 #define strptime unbound_strptime
1365 struct tm;
1366 char *strptime(const char *s, const char *format, struct tm *tm);
1367 #endif
1368
1369 #if !HAVE_DECL_REALLOCARRAY
1370 void *reallocarray(void *ptr, size_t nmemb, size_t size);
1371 #endif
1372
1373 #ifdef HAVE_LIBBSD
1374 #include <bsd/string.h>
1375 #include <bsd/stdlib.h>
1376 #endif
1377
1378 #ifdef HAVE_LIBRESSL
1379 # if !HAVE_DECL_STRLCPY
1380 size_t strlcpy(char *dst, const char *src, size_t siz);
1381 # endif
1382 # if !HAVE_DECL_STRLCAT
1383 size_t strlcat(char *dst, const char *src, size_t siz);
1384 # endif
1385 # if !HAVE_DECL_ARC4RANDOM && defined(HAVE_ARC4RANDOM)
1386 uint32_t arc4random(void);
1387 # endif
1388 # if !HAVE_DECL_ARC4RANDOM_UNIFORM && defined(HAVE_ARC4RANDOM_UNIFORM)
1389 uint32_t arc4random_uniform(uint32_t upper_bound);
1390 # endif
1391 #endif /* HAVE_LIBRESSL */
1392 #ifndef HAVE_ARC4RANDOM
1393 int getentropy(void* buf, size_t len);
1394 uint32_t arc4random(void);
1395 void arc4random_buf(void* buf, size_t n);
1396 void _ARC4_LOCK(void);
1397 void _ARC4_UNLOCK(void);
1398 void _ARC4_LOCK_DESTROY(void);
1399 #endif
1400 #ifndef HAVE_ARC4RANDOM_UNIFORM
1401 uint32_t arc4random_uniform(uint32_t upper_bound);
1402 #endif
1403 #ifdef COMPAT_SHA512
1404 #ifndef SHA512_DIGEST_LENGTH
1405 #define SHA512_BLOCK_LENGTH 128
1406 #define SHA512_DIGEST_LENGTH 64
1407 #define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1)
1408 typedef struct _SHA512_CTX {
1409 uint64_t state[8];
1410 uint64_t bitcount[2];
1411 uint8_t buffer[SHA512_BLOCK_LENGTH];
1412 } SHA512_CTX;
1413 #endif /* SHA512_DIGEST_LENGTH */
1414 void SHA512_Init(SHA512_CTX*);
1415 void SHA512_Update(SHA512_CTX*, void*, size_t);
1416 void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
1417 unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest);
1418 #endif /* COMPAT_SHA512 */
1419
1420
1421
1422 #if defined(HAVE_EVENT_H) && !defined(HAVE_EVENT_BASE_ONCE) && !(defined(HAVE_EV_LOOP) || defined(HAVE_EV_DEFAULT_LOOP)) && (defined(HAVE_PTHREAD) || defined(HAVE_SOLARIS_THREADS))
1423 /* using version of libevent that is not threadsafe. */
1424 # define LIBEVENT_SIGNAL_PROBLEM 1
1425 #endif
1426
1427 #ifndef CHECKED_INET6
1428 # define CHECKED_INET6
1429 # ifdef AF_INET6
1430 # define INET6
1431 # else
1432 # define AF_INET6 28
1433 # endif
1434 #endif /* CHECKED_INET6 */
1435
1436 #ifndef HAVE_GETADDRINFO
1437 struct sockaddr_storage;
1438 #include "compat/fake-rfc2553.h"
1439 #endif
1440
1441 #ifdef UNBOUND_ALLOC_STATS
1442 # define malloc(s) unbound_stat_malloc_log(s, __FILE__, __LINE__, __func__)
1443 # define calloc(n,s) unbound_stat_calloc_log(n, s, __FILE__, __LINE__, __func__)
1444 # define free(p) unbound_stat_free_log(p, __FILE__, __LINE__, __func__)
1445 # define realloc(p,s) unbound_stat_realloc_log(p, s, __FILE__, __LINE__, __func__)
1446 void *unbound_stat_malloc(size_t size);
1447 void *unbound_stat_calloc(size_t nmemb, size_t size);
1448 void unbound_stat_free(void *ptr);
1449 void *unbound_stat_realloc(void *ptr, size_t size);
1450 void *unbound_stat_malloc_log(size_t size, const char* file, int line,
1451 const char* func);
1452 void *unbound_stat_calloc_log(size_t nmemb, size_t size, const char* file,
1453 int line, const char* func);
1454 void unbound_stat_free_log(void *ptr, const char* file, int line,
1455 const char* func);
1456 void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file,
1457 int line, const char* func);
1458 #elif defined(UNBOUND_ALLOC_LITE)
1459 # include "util/alloc.h"
1460 #endif /* UNBOUND_ALLOC_LITE and UNBOUND_ALLOC_STATS */
1461
1462 /** default port for DNS traffic. */
1463 #define UNBOUND_DNS_PORT 53
1464 /** default port for DNS over TLS traffic. */
1465 #define UNBOUND_DNS_OVER_TLS_PORT 853
1466 /** default port for DNS over HTTPS traffic. */
1467 #define UNBOUND_DNS_OVER_HTTPS_PORT 443
1468 /** default port for unbound control traffic, registered port with IANA,
1469 ub-dns-control 8953/tcp unbound dns nameserver control */
1470 #define UNBOUND_CONTROL_PORT 8953
1471 /** the version of unbound-control that this software implements */
1472 #define UNBOUND_CONTROL_VERSION 1
1473
1474
1475