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 #define HAVE_EVP_DEFAULT_PROPERTIES_IS_FIPS_ENABLED 1 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 #define HAVE_EVP_MAC_CTX_SET_PARAMS 1 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 #define HAVE_OPENSSL_CORE_NAMES_H 1 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 #define HAVE_OPENSSL_PARAM_BUILD_H 1 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 #define HAVE_OSSL_PARAM_BLD_NEW 1 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 #define HAVE_SSL_CTX_SET_TLSEXT_TICKET_KEY_EVP_CB 1 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 #define HAVE_SSL_GET1_PEER_CERTIFICATE 1 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@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