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/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 "--enable-allsymbols --with-ssl=/usr --with-libevent=/usr --with-libexpat=/usr --without-pythonmodule --with-chroot-dir=/var/unbound --with-pidfile= --with-rootkey-file=/var/unbound/db/root.key --with-conf-file=/var/unbound/etc/unbound.conf --with-username=_unbound --disable-shared --disable-explicit-port-randomisation --without-pthreads" 21 22 /* Pathname to the Unbound configuration file */ 23 #define CONFIGFILE "/var/unbound/etc/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 #define DISABLE_EXPLICIT_PORT_RANDOMISATION 1 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 #define EXPORT_ALL_SYMBOLS 1 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 #define HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 1 93 94 /* Define to 1 if you have the `CRYPTO_THREADID_set_callback' function. */ 95 #define HAVE_CRYPTO_THREADID_SET_CALLBACK 1 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 #define HAVE_DECL_ARC4RANDOM 1 106 107 /* Define to 1 if you have the declaration of `arc4random_uniform', and to 0 108 if you don't. */ 109 #define HAVE_DECL_ARC4RANDOM_UNIFORM 1 110 111 /* Define to 1 if you have the declaration of `evsignal_assign', and to 0 if 112 you don't. */ 113 #define HAVE_DECL_EVSIGNAL_ASSIGN 0 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 0 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 #define HAVE_DECL_STRLCAT 1 166 167 /* Define to 1 if you have the declaration of `strlcpy', and to 0 if you 168 don't. */ 169 #define HAVE_DECL_STRLCPY 1 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 #define HAVE_ENGINE_CLEANUP 1 195 196 /* Define to 1 if you have the `ERR_free_strings' function. */ 197 #define HAVE_ERR_FREE_STRINGS 1 198 199 /* Define to 1 if you have the `ERR_load_crypto_strings' function. */ 200 #define HAVE_ERR_LOAD_CRYPTO_STRINGS 1 201 202 /* Define to 1 if you have the `event_assign' function. */ 203 /* #undef HAVE_EVENT_ASSIGN */ 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 #define HAVE_EVP_CLEANUP 1 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 #define HAVE_EXPLICIT_BZERO 1 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 #define HAVE_FIPS_MODE 1 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 #define HAVE_LIBRESSL 1 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 #define HAVE_OPENSSL_ADD_ALL_DIGESTS 1 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 /* #undef HAVE_PTHREAD */ 475 476 /* Have PTHREAD_PRIO_INHERIT. */ 477 /* #undef HAVE_PTHREAD_PRIO_INHERIT */ 478 479 /* Define to 1 if the system has the type `pthread_rwlock_t'. */ 480 /* #undef HAVE_PTHREAD_RWLOCK_T */ 481 482 /* Define to 1 if the system has the type `pthread_spinlock_t'. */ 483 /* #undef HAVE_PTHREAD_SPINLOCK_T */ 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 #define HAVE_RAND_CLEANUP 1 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 /* #undef HAVE_SETREGID */ 508 509 /* Define to 1 if you have the `setresgid' function. */ 510 #define HAVE_SETRESGID 1 511 512 /* Define to 1 if you have the `setresuid' function. */ 513 #define HAVE_SETRESUID 1 514 515 /* Define to 1 if you have the `setreuid' function. */ 516 /* #undef HAVE_SETREUID */ 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 /* #undef HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST */ 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.3" 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.3" 786 787 /* default pidfile location */ 788 #define PIDFILE "" 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 "/var/unbound/db/root.key" 803 804 /* default rootcert location */ 805 #define ROOT_CERT_FILE "/var/unbound/etc/icannbundle.pem" 806 807 /* version number for resource files */ 808 #define RSRC_PACKAGE_VERSION 1,19,3,0 809 810 /* Directory to chdir to */ 811 #define RUN_DIR "/var/unbound/etc" 812 813 /* Shared data */ 814 #define SHARE_DIR "/var/unbound/etc" 815 816 /* The size of `pthread_t', as computed by sizeof. */ 817 /* #undef SIZEOF_PTHREAD_T */ 818 819 /* The size of `size_t', as computed by sizeof. */ 820 #define SIZEOF_SIZE_T 8 821 822 /* The size of `time_t', as computed by sizeof. */ 823 #define SIZEOF_TIME_T 8 824 825 /* The size of `unsigned long', as computed by sizeof. */ 826 /* #undef SIZEOF_UNSIGNED_LONG */ 827 828 /* define if (v)snprintf does not return length needed, (but length used) */ 829 /* #undef SNPRINTF_RET_BROKEN */ 830 831 /* Define to 1 if libsodium supports sodium_set_misuse_handler */ 832 /* #undef SODIUM_MISUSE_HANDLER */ 833 834 /* Define to 1 if you have the ANSI C header files. */ 835 #define STDC_HEADERS 1 836 837 /* use default strptime. */ 838 #define STRPTIME_WORKS 1 839 840 /* Use win32 resources and API */ 841 /* #undef UB_ON_WINDOWS */ 842 843 /* the SYSLOG_FACILITY to use, default LOG_DAEMON */ 844 #define UB_SYSLOG_FACILITY LOG_DAEMON 845 846 /* default username */ 847 #define UB_USERNAME "_unbound" 848 849 /* use to enable lightweight alloc assertions, for debug use */ 850 /* #undef UNBOUND_ALLOC_LITE */ 851 852 /* use malloc not regions, for debug use */ 853 /* #undef UNBOUND_ALLOC_NONREGIONAL */ 854 855 /* use statistics for allocs and frees, for debug use */ 856 /* #undef UNBOUND_ALLOC_STATS */ 857 858 /* define this to enable debug checks. */ 859 /* #undef UNBOUND_DEBUG */ 860 861 /* Define to 1 to use cachedb support */ 862 /* #undef USE_CACHEDB */ 863 864 /* Define to 1 to enable dnscrypt support */ 865 /* #undef USE_DNSCRYPT */ 866 867 /* Define to 1 to enable dnscrypt with xchacha20 support */ 868 /* #undef USE_DNSCRYPT_XCHACHA20 */ 869 870 /* Define to 1 to enable dnstap support */ 871 /* #undef USE_DNSTAP */ 872 873 /* Define this to enable DSA support. */ 874 /* #undef USE_DSA */ 875 876 /* Define this to enable ECDSA support. */ 877 #define USE_ECDSA 1 878 879 /* Define this to enable an EVP workaround for older openssl */ 880 /* #undef USE_ECDSA_EVP_WORKAROUND */ 881 882 /* Define this to enable ED25519 support. */ 883 #define USE_ED25519 1 884 885 /* Define this to enable ED448 support. */ 886 /* #undef USE_ED448 */ 887 888 /* Define this to enable GOST support. */ 889 /* #undef USE_GOST */ 890 891 /* Define to 1 to use ipsecmod support. */ 892 /* #undef USE_IPSECMOD */ 893 894 /* Define to 1 to use ipset support */ 895 /* #undef USE_IPSET */ 896 897 /* Define if you enable libevent */ 898 #define USE_LIBEVENT 1 899 900 /* Define this to enable use of /proc/sys/net/ipv4/ip_local_port_range as a 901 default outgoing port range. This is only for the libunbound on Linux and 902 does not affect unbound resolving daemon itself. This may severely limit 903 the number of available outgoing ports and thus decrease randomness. Define 904 this only when the target system restricts (e.g. some of SELinux enabled 905 distributions) the use of non-ephemeral ports. */ 906 /* #undef USE_LINUX_IP_LOCAL_PORT_RANGE */ 907 908 /* Define if you want to use internal select based events */ 909 /* #undef USE_MINI_EVENT */ 910 911 /* Define this to enable client TCP Fast Open. */ 912 /* #undef USE_MSG_FASTOPEN */ 913 914 /* Define this to enable client TCP Fast Open. */ 915 /* #undef USE_OSX_MSG_FASTOPEN */ 916 917 /* Define this to use hiredis client. */ 918 /* #undef USE_REDIS */ 919 920 /* Define this to enable SHA1 support. */ 921 #define USE_SHA1 1 922 923 /* Define this to enable SHA256 and SHA512 support. */ 924 #define USE_SHA2 1 925 926 /* Enable extensions on AIX 3, Interix. */ 927 #ifndef _ALL_SOURCE 928 # define _ALL_SOURCE 1 929 #endif 930 /* Enable GNU extensions on systems that have them. */ 931 #ifndef _GNU_SOURCE 932 # define _GNU_SOURCE 1 933 #endif 934 /* Enable threading extensions on Solaris. */ 935 #ifndef _POSIX_PTHREAD_SEMANTICS 936 # define _POSIX_PTHREAD_SEMANTICS 1 937 #endif 938 /* Enable extensions on HP NonStop. */ 939 #ifndef _TANDEM_SOURCE 940 # define _TANDEM_SOURCE 1 941 #endif 942 /* Enable general extensions on Solaris. */ 943 #ifndef __EXTENSIONS__ 944 # define __EXTENSIONS__ 1 945 #endif 946 947 948 /* Define this to enable server TCP Fast Open. */ 949 /* #undef USE_TCP_FASTOPEN */ 950 951 /* Whether the windows socket API is used */ 952 /* #undef USE_WINSOCK */ 953 954 /* the version of the windows API enabled */ 955 #define WINVER 0x0502 956 957 /* Define if you want dynlib module. */ 958 /* #undef WITH_DYNLIBMODULE */ 959 960 /* Define if you want Python module. */ 961 /* #undef WITH_PYTHONMODULE */ 962 963 /* Define if you want PyUnbound. */ 964 /* #undef WITH_PYUNBOUND */ 965 966 /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a 967 `char[]'. */ 968 #define YYTEXT_POINTER 1 969 970 /* Enable large inode numbers on Mac OS X 10.5. */ 971 #ifndef _DARWIN_USE_64_BIT_INODE 972 # define _DARWIN_USE_64_BIT_INODE 1 973 #endif 974 975 /* Number of bits in a file offset, on hosts where this is settable. */ 976 /* #undef _FILE_OFFSET_BITS */ 977 978 /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ 979 /* #undef _LARGEFILE_SOURCE */ 980 981 /* Define for large files, on AIX-style hosts. */ 982 /* #undef _LARGE_FILES */ 983 984 /* Define to 1 if on MINIX. */ 985 /* #undef _MINIX */ 986 987 /* Enable for compile on Minix */ 988 /* #undef _NETBSD_SOURCE */ 989 990 /* Define to 2 if the system does not provide POSIX.1 features except with 991 this defined. */ 992 /* #undef _POSIX_1_SOURCE */ 993 994 /* Define to 1 if you need to in order for `stat' and other things to work. */ 995 /* #undef _POSIX_SOURCE */ 996 997 /* defined to use gcc ansi snprintf and sscanf that understands %lld when 998 compiled for windows. */ 999 /* #undef __USE_MINGW_ANSI_STDIO */ 1000 1001 /* Define to empty if `const' does not conform to ANSI C. */ 1002 /* #undef const */ 1003 1004 /* Define to `int' if <sys/types.h> doesn't define. */ 1005 /* #undef gid_t */ 1006 1007 /* in_addr_t */ 1008 /* #undef in_addr_t */ 1009 1010 /* in_port_t */ 1011 /* #undef in_port_t */ 1012 1013 /* Define to `__inline__' or `__inline' if that's what the C compiler 1014 calls it, or to nothing if 'inline' is not supported under any name. */ 1015 #ifndef __cplusplus 1016 /* #undef inline */ 1017 #endif 1018 1019 /* Define to `short' if <sys/types.h> does not define. */ 1020 /* #undef int16_t */ 1021 1022 /* Define to `int' if <sys/types.h> does not define. */ 1023 /* #undef int32_t */ 1024 1025 /* Define to `long long' if <sys/types.h> does not define. */ 1026 /* #undef int64_t */ 1027 1028 /* Define to `signed char' if <sys/types.h> does not define. */ 1029 /* #undef int8_t */ 1030 1031 /* Define if replacement function should be used. */ 1032 /* #undef malloc */ 1033 1034 /* Define to `long int' if <sys/types.h> does not define. */ 1035 /* #undef off_t */ 1036 1037 /* Define to `int' if <sys/types.h> does not define. */ 1038 /* #undef pid_t */ 1039 1040 /* Define to 'int' if not defined */ 1041 /* #undef rlim_t */ 1042 1043 /* Define to `unsigned int' if <sys/types.h> does not define. */ 1044 /* #undef size_t */ 1045 1046 /* Define to 'int' if not defined */ 1047 /* #undef socklen_t */ 1048 1049 /* Define to `int' if <sys/types.h> does not define. */ 1050 /* #undef ssize_t */ 1051 1052 /* Define to 'unsigned char if not defined */ 1053 /* #undef u_char */ 1054 1055 /* Define to `int' if <sys/types.h> doesn't define. */ 1056 /* #undef uid_t */ 1057 1058 /* Define to `unsigned short' if <sys/types.h> does not define. */ 1059 /* #undef uint16_t */ 1060 1061 /* Define to `unsigned int' if <sys/types.h> does not define. */ 1062 /* #undef uint32_t */ 1063 1064 /* Define to `unsigned long long' if <sys/types.h> does not define. */ 1065 /* #undef uint64_t */ 1066 1067 /* Define to `unsigned char' if <sys/types.h> does not define. */ 1068 /* #undef uint8_t */ 1069 1070 /* Define as `fork' if `vfork' does not work. */ 1071 /* #undef vfork */ 1072 1073 #if defined(OMITTED__D_GNU_SOURCE) && !defined(_GNU_SOURCE) 1074 #define _GNU_SOURCE 1 1075 #endif 1076 1077 #if defined(OMITTED__D_BSD_SOURCE) && !defined(_BSD_SOURCE) 1078 #define _BSD_SOURCE 1 1079 #endif 1080 1081 #if defined(OMITTED__D_DEFAULT_SOURCE) && !defined(_DEFAULT_SOURCE) 1082 #define _DEFAULT_SOURCE 1 1083 #endif 1084 1085 #if defined(OMITTED__D__EXTENSIONS__) && !defined(__EXTENSIONS__) 1086 #define __EXTENSIONS__ 1 1087 #endif 1088 1089 #if defined(OMITTED__D_POSIX_C_SOURCE_200112) && !defined(_POSIX_C_SOURCE) 1090 #define _POSIX_C_SOURCE 200112 1091 #endif 1092 1093 #if defined(OMITTED__D_XOPEN_SOURCE_600) && !defined(_XOPEN_SOURCE) 1094 #define _XOPEN_SOURCE 600 1095 #endif 1096 1097 #if defined(OMITTED__D_XOPEN_SOURCE_EXTENDED_1) && !defined(_XOPEN_SOURCE_EXTENDED) 1098 #define _XOPEN_SOURCE_EXTENDED 1 1099 #endif 1100 1101 #if defined(OMITTED__D_ALL_SOURCE) && !defined(_ALL_SOURCE) 1102 #define _ALL_SOURCE 1 1103 #endif 1104 1105 #if defined(OMITTED__D_LARGEFILE_SOURCE_1) && !defined(_LARGEFILE_SOURCE) 1106 #define _LARGEFILE_SOURCE 1 1107 #endif 1108 1109 1110 1111 1112 #ifndef _OPENBSD_SOURCE 1113 #define _OPENBSD_SOURCE 1 1114 #endif 1115 1116 #ifndef UNBOUND_DEBUG 1117 # ifndef NDEBUG 1118 # define NDEBUG 1119 # endif 1120 #endif 1121 1122 /** Use small-ldns codebase */ 1123 #define USE_SLDNS 1 1124 #ifdef HAVE_SSL 1125 # define LDNS_BUILD_CONFIG_HAVE_SSL 1 1126 #endif 1127 1128 #include <stdio.h> 1129 #include <string.h> 1130 #include <unistd.h> 1131 #include <assert.h> 1132 1133 #if STDC_HEADERS 1134 #include <stdlib.h> 1135 #include <stddef.h> 1136 #endif 1137 1138 #ifdef HAVE_STDARG_H 1139 #include <stdarg.h> 1140 #endif 1141 1142 #ifdef HAVE_STDINT_H 1143 #include <stdint.h> 1144 #endif 1145 1146 #include <errno.h> 1147 1148 #if HAVE_SYS_PARAM_H 1149 #include <sys/param.h> 1150 #endif 1151 1152 #ifdef HAVE_SYS_SOCKET_H 1153 #include <sys/socket.h> 1154 #endif 1155 1156 #ifdef HAVE_SYS_UIO_H 1157 #include <sys/uio.h> 1158 #endif 1159 1160 #ifdef HAVE_NETINET_IN_H 1161 #include <netinet/in.h> 1162 #endif 1163 1164 #ifdef HAVE_NETINET_TCP_H 1165 #include <netinet/tcp.h> 1166 #endif 1167 1168 #ifdef HAVE_ARPA_INET_H 1169 #include <arpa/inet.h> 1170 #endif 1171 1172 #ifdef HAVE_WINSOCK2_H 1173 #include <winsock2.h> 1174 #endif 1175 1176 #ifdef HAVE_WS2TCPIP_H 1177 #include <ws2tcpip.h> 1178 #endif 1179 1180 #if !defined(USE_WINSOCK) || !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN) || defined(__USE_MINGW_ANSI_STDIO) 1181 #define ARG_LL "%ll" 1182 #else 1183 #define ARG_LL "%I64" 1184 #endif 1185 1186 #ifndef AF_LOCAL 1187 #define AF_LOCAL AF_UNIX 1188 #endif 1189 1190 1191 1192 #ifdef HAVE_ATTR_FORMAT 1193 # define ATTR_FORMAT(archetype, string_index, first_to_check) \ 1194 __attribute__ ((format (archetype, string_index, first_to_check))) 1195 #else /* !HAVE_ATTR_FORMAT */ 1196 # define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */ 1197 #endif /* !HAVE_ATTR_FORMAT */ 1198 1199 1200 #if defined(DOXYGEN) 1201 # define ATTR_UNUSED(x) x 1202 #elif defined(__cplusplus) 1203 # define ATTR_UNUSED(x) 1204 #elif defined(HAVE_ATTR_UNUSED) 1205 # define ATTR_UNUSED(x) x __attribute__((unused)) 1206 #else /* !HAVE_ATTR_UNUSED */ 1207 # define ATTR_UNUSED(x) x 1208 #endif /* !HAVE_ATTR_UNUSED */ 1209 1210 1211 #ifndef HAVE_FSEEKO 1212 #define fseeko fseek 1213 #define ftello ftell 1214 #endif /* HAVE_FSEEKO */ 1215 1216 1217 #ifndef MAXHOSTNAMELEN 1218 #define MAXHOSTNAMELEN 256 1219 #endif 1220 1221 #if !defined(HAVE_SNPRINTF) || defined(SNPRINTF_RET_BROKEN) 1222 #define snprintf snprintf_unbound 1223 #define vsnprintf vsnprintf_unbound 1224 #include <stdarg.h> 1225 int snprintf (char *str, size_t count, const char *fmt, ...); 1226 int vsnprintf (char *str, size_t count, const char *fmt, va_list arg); 1227 #endif /* HAVE_SNPRINTF or SNPRINTF_RET_BROKEN */ 1228 1229 #ifndef HAVE_INET_PTON 1230 #define inet_pton inet_pton_unbound 1231 int inet_pton(int af, const char* src, void* dst); 1232 #endif /* HAVE_INET_PTON */ 1233 1234 1235 #ifndef HAVE_INET_NTOP 1236 #define inet_ntop inet_ntop_unbound 1237 const char *inet_ntop(int af, const void *src, char *dst, size_t size); 1238 #endif 1239 1240 1241 #ifndef HAVE_INET_ATON 1242 #define inet_aton inet_aton_unbound 1243 int inet_aton(const char *cp, struct in_addr *addr); 1244 #endif 1245 1246 1247 #ifndef HAVE_MEMMOVE 1248 #define memmove memmove_unbound 1249 void *memmove(void *dest, const void *src, size_t n); 1250 #endif 1251 1252 1253 #ifndef HAVE_STRLCAT 1254 #define strlcat strlcat_unbound 1255 size_t strlcat(char *dst, const char *src, size_t siz); 1256 #endif 1257 1258 1259 #ifndef HAVE_STRLCPY 1260 #define strlcpy strlcpy_unbound 1261 size_t strlcpy(char *dst, const char *src, size_t siz); 1262 #endif 1263 1264 1265 #ifndef HAVE_GMTIME_R 1266 #define gmtime_r gmtime_r_unbound 1267 struct tm *gmtime_r(const time_t *timep, struct tm *result); 1268 #endif 1269 1270 1271 #ifndef HAVE_REALLOCARRAY 1272 #define reallocarray reallocarrayunbound 1273 void* reallocarray(void *ptr, size_t nmemb, size_t size); 1274 #endif 1275 1276 1277 #if !defined(HAVE_SLEEP) || defined(HAVE_WINDOWS_H) 1278 #define sleep(x) Sleep((x)*1000) /* on win32 */ 1279 #endif /* HAVE_SLEEP */ 1280 1281 1282 #ifndef HAVE_USLEEP 1283 #define usleep(x) Sleep((x)/1000 + 1) /* on win32 */ 1284 #endif /* HAVE_USLEEP */ 1285 1286 1287 #ifndef HAVE_RANDOM 1288 #define random rand /* on win32, for tests only (bad random) */ 1289 #endif /* HAVE_RANDOM */ 1290 1291 1292 #ifndef HAVE_SRANDOM 1293 #define srandom(x) srand(x) /* on win32, for tests only (bad random) */ 1294 #endif /* HAVE_SRANDOM */ 1295 1296 1297 /* detect if we need to cast to unsigned int for FD_SET to avoid warnings */ 1298 #ifdef HAVE_WINSOCK2_H 1299 #define FD_SET_T (u_int) 1300 #else 1301 #define FD_SET_T 1302 #endif 1303 1304 1305 #ifndef IPV6_MIN_MTU 1306 #define IPV6_MIN_MTU 1280 1307 #endif /* IPV6_MIN_MTU */ 1308 1309 1310 #ifdef MEMCMP_IS_BROKEN 1311 #include "compat/memcmp.h" 1312 #define memcmp memcmp_unbound 1313 int memcmp(const void *x, const void *y, size_t n); 1314 #endif 1315 1316 1317 1318 #ifndef HAVE_CTIME_R 1319 #define ctime_r unbound_ctime_r 1320 char *ctime_r(const time_t *timep, char *buf); 1321 #endif 1322 1323 #ifndef HAVE_STRSEP 1324 #define strsep unbound_strsep 1325 char *strsep(char **stringp, const char *delim); 1326 #endif 1327 1328 #ifndef HAVE_ISBLANK 1329 #define isblank unbound_isblank 1330 int isblank(int c); 1331 #endif 1332 1333 #ifndef HAVE_EXPLICIT_BZERO 1334 #define explicit_bzero unbound_explicit_bzero 1335 void explicit_bzero(void* buf, size_t len); 1336 #endif 1337 1338 #if defined(HAVE_INET_NTOP) && !HAVE_DECL_INET_NTOP 1339 const char *inet_ntop(int af, const void *src, char *dst, size_t size); 1340 #endif 1341 1342 #if defined(HAVE_INET_PTON) && !HAVE_DECL_INET_PTON 1343 int inet_pton(int af, const char* src, void* dst); 1344 #endif 1345 1346 #if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS) 1347 #define strptime unbound_strptime 1348 struct tm; 1349 char *strptime(const char *s, const char *format, struct tm *tm); 1350 #endif 1351 1352 #if !HAVE_DECL_REALLOCARRAY 1353 void *reallocarray(void *ptr, size_t nmemb, size_t size); 1354 #endif 1355 1356 #ifdef HAVE_LIBBSD 1357 #include <bsd/string.h> 1358 #include <bsd/stdlib.h> 1359 #endif 1360 1361 #ifdef HAVE_LIBRESSL 1362 # if !HAVE_DECL_STRLCPY 1363 size_t strlcpy(char *dst, const char *src, size_t siz); 1364 # endif 1365 # if !HAVE_DECL_STRLCAT 1366 size_t strlcat(char *dst, const char *src, size_t siz); 1367 # endif 1368 # if !HAVE_DECL_ARC4RANDOM && defined(HAVE_ARC4RANDOM) 1369 uint32_t arc4random(void); 1370 # endif 1371 # if !HAVE_DECL_ARC4RANDOM_UNIFORM && defined(HAVE_ARC4RANDOM_UNIFORM) 1372 uint32_t arc4random_uniform(uint32_t upper_bound); 1373 # endif 1374 #endif /* HAVE_LIBRESSL */ 1375 #ifndef HAVE_ARC4RANDOM 1376 int getentropy(void* buf, size_t len); 1377 uint32_t arc4random(void); 1378 void arc4random_buf(void* buf, size_t n); 1379 void _ARC4_LOCK(void); 1380 void _ARC4_UNLOCK(void); 1381 void _ARC4_LOCK_DESTROY(void); 1382 #endif 1383 #ifndef HAVE_ARC4RANDOM_UNIFORM 1384 uint32_t arc4random_uniform(uint32_t upper_bound); 1385 #endif 1386 #ifdef COMPAT_SHA512 1387 #ifndef SHA512_DIGEST_LENGTH 1388 #define SHA512_BLOCK_LENGTH 128 1389 #define SHA512_DIGEST_LENGTH 64 1390 #define SHA512_DIGEST_STRING_LENGTH (SHA512_DIGEST_LENGTH * 2 + 1) 1391 typedef struct _SHA512_CTX { 1392 uint64_t state[8]; 1393 uint64_t bitcount[2]; 1394 uint8_t buffer[SHA512_BLOCK_LENGTH]; 1395 } SHA512_CTX; 1396 #endif /* SHA512_DIGEST_LENGTH */ 1397 void SHA512_Init(SHA512_CTX*); 1398 void SHA512_Update(SHA512_CTX*, void*, size_t); 1399 void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*); 1400 unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest); 1401 #endif /* COMPAT_SHA512 */ 1402 1403 1404 1405 #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)) 1406 /* using version of libevent that is not threadsafe. */ 1407 # define LIBEVENT_SIGNAL_PROBLEM 1 1408 #endif 1409 1410 #ifndef CHECKED_INET6 1411 # define CHECKED_INET6 1412 # ifdef AF_INET6 1413 # define INET6 1414 # else 1415 # define AF_INET6 28 1416 # endif 1417 #endif /* CHECKED_INET6 */ 1418 1419 #ifndef HAVE_GETADDRINFO 1420 struct sockaddr_storage; 1421 #include "compat/fake-rfc2553.h" 1422 #endif 1423 1424 #ifdef UNBOUND_ALLOC_STATS 1425 # define malloc(s) unbound_stat_malloc_log(s, __FILE__, __LINE__, __func__) 1426 # define calloc(n,s) unbound_stat_calloc_log(n, s, __FILE__, __LINE__, __func__) 1427 # define free(p) unbound_stat_free_log(p, __FILE__, __LINE__, __func__) 1428 # define realloc(p,s) unbound_stat_realloc_log(p, s, __FILE__, __LINE__, __func__) 1429 void *unbound_stat_malloc(size_t size); 1430 void *unbound_stat_calloc(size_t nmemb, size_t size); 1431 void unbound_stat_free(void *ptr); 1432 void *unbound_stat_realloc(void *ptr, size_t size); 1433 void *unbound_stat_malloc_log(size_t size, const char* file, int line, 1434 const char* func); 1435 void *unbound_stat_calloc_log(size_t nmemb, size_t size, const char* file, 1436 int line, const char* func); 1437 void unbound_stat_free_log(void *ptr, const char* file, int line, 1438 const char* func); 1439 void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file, 1440 int line, const char* func); 1441 #elif defined(UNBOUND_ALLOC_LITE) 1442 # include "util/alloc.h" 1443 #endif /* UNBOUND_ALLOC_LITE and UNBOUND_ALLOC_STATS */ 1444 1445 /** default port for DNS traffic. */ 1446 #define UNBOUND_DNS_PORT 53 1447 /** default port for DNS over TLS traffic. */ 1448 #define UNBOUND_DNS_OVER_TLS_PORT 853 1449 /** default port for DNS over HTTPS traffic. */ 1450 #define UNBOUND_DNS_OVER_HTTPS_PORT 443 1451 /** default port for unbound control traffic, registered port with IANA, 1452 ub-dns-control 8953/tcp unbound dns nameserver control */ 1453 #define UNBOUND_CONTROL_PORT 8953 1454 /** the version of unbound-control that this software implements */ 1455 #define UNBOUND_CONTROL_VERSION 1 1456 1457 1458