config.h revision 285206
1/* config.h.  Generated from config.h.in by configure.  */
2/* config.h.in.  Generated from configure.ac by autoheader.  */
3
4/* Directory to chroot to */
5#define CHROOT_DIR "/var/unbound"
6
7/* Do sha512 definitions in config.h */
8/* #undef COMPAT_SHA512 */
9
10/* Pathname to the Unbound configuration file */
11#define CONFIGFILE "/var/unbound/unbound.conf"
12
13/* Define this if on macOSX10.4-darwin8 and setreuid and setregid do not work
14   */
15/* #undef DARWIN_BROKEN_SETREUID */
16
17/* Whether daemon is deprecated */
18/* #undef DEPRECATED_DAEMON */
19
20/* default dnstap socket path */
21/* #undef DNSTAP_SOCKET_PATH */
22
23/* Define if you want to use debug lock checking (slow). */
24/* #undef ENABLE_LOCK_CHECKS */
25
26/* Define this if you enabled-allsymbols from libunbound to link binaries to
27   it for smaller install size, but the libunbound export table is polluted by
28   internal symbols */
29/* #undef EXPORT_ALL_SYMBOLS */
30
31/* Define to 1 if you have the `arc4random' function. */
32#define HAVE_ARC4RANDOM 1
33
34/* Define to 1 if you have the `arc4random_uniform' function. */
35#define HAVE_ARC4RANDOM_UNIFORM 1
36
37/* Define to 1 if you have the <arpa/inet.h> header file. */
38#define HAVE_ARPA_INET_H 1
39
40/* Whether the C compiler accepts the "format" attribute */
41#define HAVE_ATTR_FORMAT 1
42
43/* Whether the C compiler accepts the "unused" attribute */
44#define HAVE_ATTR_UNUSED 1
45
46/* Define to 1 if you have the `chown' function. */
47#define HAVE_CHOWN 1
48
49/* Define to 1 if you have the `chroot' function. */
50#define HAVE_CHROOT 1
51
52/* Define to 1 if you have the `ctime_r' function. */
53#define HAVE_CTIME_R 1
54
55/* Define to 1 if you have the `daemon' function. */
56#define HAVE_DAEMON 1
57
58/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
59   don't. */
60/* #undef HAVE_DECL_ARC4RANDOM */
61
62/* Define to 1 if you have the declaration of `arc4random_uniform', and to 0
63   if you don't. */
64/* #undef HAVE_DECL_ARC4RANDOM_UNIFORM */
65
66/* Define to 1 if you have the declaration of `NID_secp384r1', and to 0 if you
67   don't. */
68#define HAVE_DECL_NID_SECP384R1 1
69
70/* Define to 1 if you have the declaration of `NID_X9_62_prime256v1', and to 0
71   if you don't. */
72#define HAVE_DECL_NID_X9_62_PRIME256V1 1
73
74/* Define to 1 if you have the declaration of `sk_SSL_COMP_pop_free', and to 0
75   if you don't. */
76#define HAVE_DECL_SK_SSL_COMP_POP_FREE 1
77
78/* Define to 1 if you have the declaration of
79   `SSL_COMP_get_compression_methods', and to 0 if you don't. */
80#define HAVE_DECL_SSL_COMP_GET_COMPRESSION_METHODS 1
81
82/* Define to 1 if you have the declaration of `strlcat', and to 0 if you
83   don't. */
84/* #undef HAVE_DECL_STRLCAT */
85
86/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
87   don't. */
88/* #undef HAVE_DECL_STRLCPY */
89
90/* Define to 1 if you have the <dlfcn.h> header file. */
91#define HAVE_DLFCN_H 1
92
93/* Define to 1 if you have the <endian.h> header file. */
94/* #undef HAVE_ENDIAN_H */
95
96/* Define to 1 if you have the `endprotoent' function. */
97#define HAVE_ENDPROTOENT 1
98
99/* Define to 1 if you have the `endservent' function. */
100#define HAVE_ENDSERVENT 1
101
102/* Define to 1 if you have the `event_base_free' function. */
103/* #undef HAVE_EVENT_BASE_FREE */
104
105/* Define to 1 if you have the `event_base_get_method' function. */
106/* #undef HAVE_EVENT_BASE_GET_METHOD */
107
108/* Define to 1 if you have the `event_base_new' function. */
109/* #undef HAVE_EVENT_BASE_NEW */
110
111/* Define to 1 if you have the `event_base_once' function. */
112/* #undef HAVE_EVENT_BASE_ONCE */
113
114/* Define to 1 if you have the <event.h> header file. */
115/* #undef HAVE_EVENT_H */
116
117/* Define to 1 if you have the `EVP_sha1' function. */
118#define HAVE_EVP_SHA1 1
119
120/* Define to 1 if you have the `EVP_sha256' function. */
121#define HAVE_EVP_SHA256 1
122
123/* Define to 1 if you have the `EVP_sha512' function. */
124#define HAVE_EVP_SHA512 1
125
126/* Define to 1 if you have the `ev_default_loop' function. */
127/* #undef HAVE_EV_DEFAULT_LOOP */
128
129/* Define to 1 if you have the `ev_loop' function. */
130/* #undef HAVE_EV_LOOP */
131
132/* Define to 1 if you have the <expat.h> header file. */
133#define HAVE_EXPAT_H 1
134
135/* Define to 1 if you have the `fcntl' function. */
136#define HAVE_FCNTL 1
137
138/* Define to 1 if you have the `FIPS_mode' function. */
139#define HAVE_FIPS_MODE 1
140
141/* Define to 1 if you have the `fork' function. */
142#define HAVE_FORK 1
143
144/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
145#define HAVE_FSEEKO 1
146
147/* Whether getaddrinfo is available */
148#define HAVE_GETADDRINFO 1
149
150/* Define to 1 if you have the `getauxval' function. */
151/* #undef HAVE_GETAUXVAL */
152
153/* Define to 1 if you have the `getentropy' function. */
154/* #undef HAVE_GETENTROPY */
155
156/* Define to 1 if you have the <getopt.h> header file. */
157#define HAVE_GETOPT_H 1
158
159/* Define to 1 if you have the `getpwnam' function. */
160#define HAVE_GETPWNAM 1
161
162/* Define to 1 if you have the `getrlimit' function. */
163#define HAVE_GETRLIMIT 1
164
165/* Define to 1 if you have the `glob' function. */
166#define HAVE_GLOB 1
167
168/* Define to 1 if you have the <glob.h> header file. */
169#define HAVE_GLOB_H 1
170
171/* Define to 1 if you have the `gmtime_r' function. */
172#define HAVE_GMTIME_R 1
173
174/* Define to 1 if you have the <grp.h> header file. */
175#define HAVE_GRP_H 1
176
177/* If you have HMAC_CTX_init */
178#define HAVE_HMAC_CTX_INIT 1
179
180/* Define to 1 if you have the `inet_aton' function. */
181#define HAVE_INET_ATON 1
182
183/* Define to 1 if you have the `inet_ntop' function. */
184#define HAVE_INET_NTOP 1
185
186/* Define to 1 if you have the `inet_pton' function. */
187#define HAVE_INET_PTON 1
188
189/* Define to 1 if you have the `initgroups' function. */
190#define HAVE_INITGROUPS 1
191
192/* Define to 1 if you have the <inttypes.h> header file. */
193#define HAVE_INTTYPES_H 1
194
195/* if the function 'ioctlsocket' is available */
196/* #undef HAVE_IOCTLSOCKET */
197
198/* Define to 1 if you have the <iphlpapi.h> header file. */
199/* #undef HAVE_IPHLPAPI_H */
200
201/* Define to 1 if you have the `kill' function. */
202#define HAVE_KILL 1
203
204/* Define if we have LibreSSL */
205/* #undef HAVE_LIBRESSL */
206
207/* Define to 1 if you have the `localtime_r' function. */
208#define HAVE_LOCALTIME_R 1
209
210/* Define to 1 if you have the <login_cap.h> header file. */
211#define HAVE_LOGIN_CAP_H 1
212
213/* If have GNU libc compatible malloc */
214#define HAVE_MALLOC 1
215
216/* Define to 1 if you have the `memmove' function. */
217#define HAVE_MEMMOVE 1
218
219/* Define to 1 if you have the <memory.h> header file. */
220#define HAVE_MEMORY_H 1
221
222/* Define to 1 if you have the <netdb.h> header file. */
223#define HAVE_NETDB_H 1
224
225/* Define to 1 if you have the <netinet/in.h> header file. */
226#define HAVE_NETINET_IN_H 1
227
228/* Use libnss for crypto */
229/* #undef HAVE_NSS */
230
231/* Define to 1 if you have the `OPENSSL_config' function. */
232#define HAVE_OPENSSL_CONFIG 1
233
234/* Define to 1 if you have the <openssl/conf.h> header file. */
235#define HAVE_OPENSSL_CONF_H 1
236
237/* Define to 1 if you have the <openssl/engine.h> header file. */
238#define HAVE_OPENSSL_ENGINE_H 1
239
240/* Define to 1 if you have the <openssl/err.h> header file. */
241#define HAVE_OPENSSL_ERR_H 1
242
243/* Define to 1 if you have the <openssl/rand.h> header file. */
244#define HAVE_OPENSSL_RAND_H 1
245
246/* Define to 1 if you have the <openssl/ssl.h> header file. */
247#define HAVE_OPENSSL_SSL_H 1
248
249/* Define if you have POSIX threads libraries and header files. */
250#define HAVE_PTHREAD 1
251
252/* Have PTHREAD_PRIO_INHERIT. */
253#define HAVE_PTHREAD_PRIO_INHERIT 1
254
255/* Define to 1 if the system has the type `pthread_rwlock_t'. */
256#define HAVE_PTHREAD_RWLOCK_T 1
257
258/* Define to 1 if the system has the type `pthread_spinlock_t'. */
259#define HAVE_PTHREAD_SPINLOCK_T 1
260
261/* Define to 1 if you have the <pwd.h> header file. */
262#define HAVE_PWD_H 1
263
264/* Define if you have Python libraries and header files. */
265/* #undef HAVE_PYTHON */
266
267/* Define to 1 if you have the `random' function. */
268#define HAVE_RANDOM 1
269
270/* Define to 1 if you have the `recvmsg' function. */
271#define HAVE_RECVMSG 1
272
273/* Define to 1 if you have the `sbrk' function. */
274/* #undef HAVE_SBRK */
275
276/* Define to 1 if you have the `sendmsg' function. */
277#define HAVE_SENDMSG 1
278
279/* Define to 1 if you have the `setregid' function. */
280/* #undef HAVE_SETREGID */
281
282/* Define to 1 if you have the `setresgid' function. */
283#define HAVE_SETRESGID 1
284
285/* Define to 1 if you have the `setresuid' function. */
286#define HAVE_SETRESUID 1
287
288/* Define to 1 if you have the `setreuid' function. */
289/* #undef HAVE_SETREUID */
290
291/* Define to 1 if you have the `setrlimit' function. */
292#define HAVE_SETRLIMIT 1
293
294/* Define to 1 if you have the `setsid' function. */
295#define HAVE_SETSID 1
296
297/* Define to 1 if you have the `setusercontext' function. */
298#define HAVE_SETUSERCONTEXT 1
299
300/* Define to 1 if you have the `SHA512_Update' function. */
301/* #undef HAVE_SHA512_UPDATE */
302
303/* Define to 1 if you have the `sigprocmask' function. */
304#define HAVE_SIGPROCMASK 1
305
306/* Define to 1 if you have the `sleep' function. */
307#define HAVE_SLEEP 1
308
309/* Define to 1 if you have the `snprintf' function. */
310#define HAVE_SNPRINTF 1
311
312/* Define to 1 if you have the `socketpair' function. */
313#define HAVE_SOCKETPAIR 1
314
315/* Using Solaris threads */
316/* #undef HAVE_SOLARIS_THREADS */
317
318/* Define to 1 if you have the `srandom' function. */
319#define HAVE_SRANDOM 1
320
321/* Define if you have the SSL libraries installed. */
322#define HAVE_SSL /**/
323
324/* Define to 1 if you have the <stdarg.h> header file. */
325#define HAVE_STDARG_H 1
326
327/* Define to 1 if you have the <stdbool.h> header file. */
328#define HAVE_STDBOOL_H 1
329
330/* Define to 1 if you have the <stdint.h> header file. */
331#define HAVE_STDINT_H 1
332
333/* Define to 1 if you have the <stdlib.h> header file. */
334#define HAVE_STDLIB_H 1
335
336/* Define to 1 if you have the `strftime' function. */
337#define HAVE_STRFTIME 1
338
339/* Define to 1 if you have the <strings.h> header file. */
340#define HAVE_STRINGS_H 1
341
342/* Define to 1 if you have the <string.h> header file. */
343#define HAVE_STRING_H 1
344
345/* Define to 1 if you have the `strlcat' function. */
346#define HAVE_STRLCAT 1
347
348/* Define to 1 if you have the `strlcpy' function. */
349#define HAVE_STRLCPY 1
350
351/* Define to 1 if you have the `strptime' function. */
352#define HAVE_STRPTIME 1
353
354/* Define to 1 if `ipi_spec_dst' is a member of `struct in_pktinfo'. */
355/* #undef HAVE_STRUCT_IN_PKTINFO_IPI_SPEC_DST */
356
357/* Define to 1 if `sun_len' is a member of `struct sockaddr_un'. */
358#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1
359
360/* Define if you have Swig libraries and header files. */
361/* #undef HAVE_SWIG */
362
363/* Define to 1 if you have the <syslog.h> header file. */
364#define HAVE_SYSLOG_H 1
365
366/* Define to 1 if you have the <sys/param.h> header file. */
367#define HAVE_SYS_PARAM_H 1
368
369/* Define to 1 if you have the <sys/resource.h> header file. */
370#define HAVE_SYS_RESOURCE_H 1
371
372/* Define to 1 if you have the <sys/sha2.h> header file. */
373/* #undef HAVE_SYS_SHA2_H */
374
375/* Define to 1 if you have the <sys/socket.h> header file. */
376#define HAVE_SYS_SOCKET_H 1
377
378/* Define to 1 if you have the <sys/stat.h> header file. */
379#define HAVE_SYS_STAT_H 1
380
381/* Define to 1 if you have the <sys/sysctl.h> header file. */
382/* #undef HAVE_SYS_SYSCTL_H */
383
384/* Define to 1 if you have the <sys/types.h> header file. */
385#define HAVE_SYS_TYPES_H 1
386
387/* Define to 1 if you have the <sys/uio.h> header file. */
388#define HAVE_SYS_UIO_H 1
389
390/* Define to 1 if you have the <sys/un.h> header file. */
391#define HAVE_SYS_UN_H 1
392
393/* Define to 1 if you have the <sys/wait.h> header file. */
394#define HAVE_SYS_WAIT_H 1
395
396/* Define to 1 if you have the <time.h> header file. */
397#define HAVE_TIME_H 1
398
399/* Define to 1 if you have the `tzset' function. */
400#define HAVE_TZSET 1
401
402/* Define to 1 if you have the <unistd.h> header file. */
403#define HAVE_UNISTD_H 1
404
405/* Define to 1 if you have the `usleep' function. */
406#define HAVE_USLEEP 1
407
408/* Define to 1 if you have the `vfork' function. */
409#define HAVE_VFORK 1
410
411/* Define to 1 if you have the <vfork.h> header file. */
412/* #undef HAVE_VFORK_H */
413
414/* Define to 1 if you have the <windows.h> header file. */
415/* #undef HAVE_WINDOWS_H */
416
417/* Using Windows threads */
418/* #undef HAVE_WINDOWS_THREADS */
419
420/* Define to 1 if you have the <winsock2.h> header file. */
421/* #undef HAVE_WINSOCK2_H */
422
423/* Define to 1 if `fork' works. */
424#define HAVE_WORKING_FORK 1
425
426/* Define to 1 if `vfork' works. */
427#define HAVE_WORKING_VFORK 1
428
429/* Define to 1 if you have the `writev' function. */
430#define HAVE_WRITEV 1
431
432/* Define to 1 if you have the <ws2tcpip.h> header file. */
433/* #undef HAVE_WS2TCPIP_H */
434
435/* Define to 1 if you have the `_beginthreadex' function. */
436/* #undef HAVE__BEGINTHREADEX */
437
438/* if lex has yylex_destroy */
439#define LEX_HAS_YYLEX_DESTROY 1
440
441/* Define to the sub-directory in which libtool stores uninstalled libraries.
442   */
443#define LT_OBJDIR ".libs/"
444
445/* Define to the maximum message length to pass to syslog. */
446#define MAXSYSLOGMSGLEN 10240
447
448/* Define if memcmp() does not compare unsigned bytes */
449/* #undef MEMCMP_IS_BROKEN */
450
451/* Define if mkdir has one argument. */
452/* #undef MKDIR_HAS_ONE_ARG */
453
454/* Define if the network stack does not fully support nonblocking io (causes
455   lower performance). */
456/* #undef NONBLOCKING_IS_BROKEN */
457
458/* Put -D_ALL_SOURCE define in config.h */
459/* #undef OMITTED__D_ALL_SOURCE */
460
461/* Put -D_BSD_SOURCE define in config.h */
462/* #undef OMITTED__D_BSD_SOURCE */
463
464/* Put -D_GNU_SOURCE define in config.h */
465/* #undef OMITTED__D_GNU_SOURCE */
466
467/* Put -D_LARGEFILE_SOURCE=1 define in config.h */
468/* #undef OMITTED__D_LARGEFILE_SOURCE_1 */
469
470/* Put -D_POSIX_C_SOURCE=200112 define in config.h */
471/* #undef OMITTED__D_POSIX_C_SOURCE_200112 */
472
473/* Put -D_XOPEN_SOURCE=600 define in config.h */
474/* #undef OMITTED__D_XOPEN_SOURCE_600 */
475
476/* Put -D_XOPEN_SOURCE_EXTENDED=1 define in config.h */
477/* #undef OMITTED__D_XOPEN_SOURCE_EXTENDED_1 */
478
479/* Put -D__EXTENSIONS__ define in config.h */
480/* #undef OMITTED__D__EXTENSIONS__ */
481
482/* Define to the address where bug reports for this package should be sent. */
483#define PACKAGE_BUGREPORT "unbound-bugs@nlnetlabs.nl"
484
485/* Define to the full name of this package. */
486#define PACKAGE_NAME "unbound"
487
488/* Define to the full name and version of this package. */
489#define PACKAGE_STRING "unbound 1.5.3"
490
491/* Define to the one symbol short name of this package. */
492#define PACKAGE_TARNAME "unbound"
493
494/* Define to the home page for this package. */
495#define PACKAGE_URL ""
496
497/* Define to the version of this package. */
498#define PACKAGE_VERSION "1.5.3"
499
500/* default pidfile location */
501#define PIDFILE "/var/unbound/unbound.pid"
502
503/* Define to necessary symbol if this constant uses a non-standard name on
504   your system. */
505/* #undef PTHREAD_CREATE_JOINABLE */
506
507/* Define as the return type of signal handlers (`int' or `void'). */
508#define RETSIGTYPE void
509
510/* default rootkey location */
511#define ROOT_ANCHOR_FILE "/var/unbound/root.key"
512
513/* default rootcert location */
514#define ROOT_CERT_FILE "/var/unbound/icannbundle.pem"
515
516/* version number for resource files */
517#define RSRC_PACKAGE_VERSION 1,5,3,0
518
519/* Directory to chdir to */
520#define RUN_DIR "/var/unbound"
521
522/* Shared data */
523#define SHARE_DIR "/var/unbound"
524
525/* The size of `time_t', as computed by sizeof. */
526#define SIZEOF_TIME_T 8
527
528/* Define to 1 if you have the ANSI C header files. */
529#define STDC_HEADERS 1
530
531/* use default strptime. */
532#define STRPTIME_WORKS 1
533
534/* Use win32 resources and API */
535/* #undef UB_ON_WINDOWS */
536
537/* default username */
538#define UB_USERNAME "unbound"
539
540/* use to enable lightweight alloc assertions, for debug use */
541/* #undef UNBOUND_ALLOC_LITE */
542
543/* use malloc not regions, for debug use */
544/* #undef UNBOUND_ALLOC_NONREGIONAL */
545
546/* use statistics for allocs and frees, for debug use */
547/* #undef UNBOUND_ALLOC_STATS */
548
549/* define this to enable debug checks. */
550/* #undef UNBOUND_DEBUG */
551
552/* Define to 1 to enable dnstap support */
553/* #undef USE_DNSTAP */
554
555/* Define this to enable ECDSA support. */
556#define USE_ECDSA 1
557
558/* Define this to enable an EVP workaround for older openssl */
559/* #undef USE_ECDSA_EVP_WORKAROUND */
560
561/* Define this to enable GOST support. */
562/* #undef USE_GOST */
563
564/* Define if you want to use internal select based events */
565#define USE_MINI_EVENT 1
566
567/* Define this to enable SHA256 and SHA512 support. */
568#define USE_SHA2 1
569
570/* Enable extensions on AIX 3, Interix.  */
571#ifndef _ALL_SOURCE
572# define _ALL_SOURCE 1
573#endif
574/* Enable GNU extensions on systems that have them.  */
575#ifndef _GNU_SOURCE
576# define _GNU_SOURCE 1
577#endif
578/* Enable threading extensions on Solaris.  */
579#ifndef _POSIX_PTHREAD_SEMANTICS
580# define _POSIX_PTHREAD_SEMANTICS 1
581#endif
582/* Enable extensions on HP NonStop.  */
583#ifndef _TANDEM_SOURCE
584# define _TANDEM_SOURCE 1
585#endif
586/* Enable general extensions on Solaris.  */
587#ifndef __EXTENSIONS__
588# define __EXTENSIONS__ 1
589#endif
590
591
592/* Whether the windows socket API is used */
593/* #undef USE_WINSOCK */
594
595/* the version of the windows API enabled */
596#define WINVER 0x0502
597
598/* Define if you want Python module. */
599/* #undef WITH_PYTHONMODULE */
600
601/* Define if you want PyUnbound. */
602/* #undef WITH_PYUNBOUND */
603
604/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
605   `char[]'. */
606#define YYTEXT_POINTER 1
607
608/* Enable large inode numbers on Mac OS X 10.5.  */
609#ifndef _DARWIN_USE_64_BIT_INODE
610# define _DARWIN_USE_64_BIT_INODE 1
611#endif
612
613/* Number of bits in a file offset, on hosts where this is settable. */
614/* #undef _FILE_OFFSET_BITS */
615
616/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
617/* #undef _LARGEFILE_SOURCE */
618
619/* Define for large files, on AIX-style hosts. */
620/* #undef _LARGE_FILES */
621
622/* Define to 1 if on MINIX. */
623/* #undef _MINIX */
624
625/* Enable for compile on Minix */
626/* #undef _NETBSD_SOURCE */
627
628/* Define to 2 if the system does not provide POSIX.1 features except with
629   this defined. */
630/* #undef _POSIX_1_SOURCE */
631
632/* Define to 1 if you need to in order for `stat' and other things to work. */
633/* #undef _POSIX_SOURCE */
634
635/* Define to empty if `const' does not conform to ANSI C. */
636/* #undef const */
637
638/* Define to `int' if <sys/types.h> doesn't define. */
639/* #undef gid_t */
640
641/* in_addr_t */
642/* #undef in_addr_t */
643
644/* in_port_t */
645/* #undef in_port_t */
646
647/* Define to `__inline__' or `__inline' if that's what the C compiler
648   calls it, or to nothing if 'inline' is not supported under any name.  */
649#ifndef __cplusplus
650/* #undef inline */
651#endif
652
653/* Define to `short' if <sys/types.h> does not define. */
654/* #undef int16_t */
655
656/* Define to `int' if <sys/types.h> does not define. */
657/* #undef int32_t */
658
659/* Define to `long long' if <sys/types.h> does not define. */
660/* #undef int64_t */
661
662/* Define to `signed char' if <sys/types.h> does not define. */
663/* #undef int8_t */
664
665/* Define if replacement function should be used. */
666/* #undef malloc */
667
668/* Define to `long int' if <sys/types.h> does not define. */
669/* #undef off_t */
670
671/* Define to `int' if <sys/types.h> does not define. */
672/* #undef pid_t */
673
674/* Define to 'int' if not defined */
675/* #undef rlim_t */
676
677/* Define to `unsigned int' if <sys/types.h> does not define. */
678/* #undef size_t */
679
680/* Define to 'int' if not defined */
681/* #undef socklen_t */
682
683/* Define to `int' if <sys/types.h> does not define. */
684/* #undef ssize_t */
685
686/* Define to 'unsigned char if not defined */
687/* #undef u_char */
688
689/* Define to `int' if <sys/types.h> doesn't define. */
690/* #undef uid_t */
691
692/* Define to `unsigned short' if <sys/types.h> does not define. */
693/* #undef uint16_t */
694
695/* Define to `unsigned int' if <sys/types.h> does not define. */
696/* #undef uint32_t */
697
698/* Define to `unsigned long long' if <sys/types.h> does not define. */
699/* #undef uint64_t */
700
701/* Define to `unsigned char' if <sys/types.h> does not define. */
702/* #undef uint8_t */
703
704/* Define as `fork' if `vfork' does not work. */
705/* #undef vfork */
706
707#if defined(OMITTED__D_GNU_SOURCE) && !defined(_GNU_SOURCE)
708#define _GNU_SOURCE 1
709#endif
710
711#if defined(OMITTED__D_BSD_SOURCE) && !defined(_BSD_SOURCE)
712#define _BSD_SOURCE 1
713#endif
714
715#if defined(OMITTED__D__EXTENSIONS__) && !defined(__EXTENSIONS__)
716#define __EXTENSIONS__ 1
717#endif
718
719#if defined(OMITTED__D_POSIX_C_SOURCE_200112) && !defined(_POSIX_C_SOURCE)
720#define _POSIX_C_SOURCE 200112
721#endif
722
723#if defined(OMITTED__D_XOPEN_SOURCE_600) && !defined(_XOPEN_SOURCE)
724#define _XOPEN_SOURCE 600
725#endif
726
727#if defined(OMITTED__D_XOPEN_SOURCE_EXTENDED_1) && !defined(_XOPEN_SOURCE_EXTENDED)
728#define _XOPEN_SOURCE_EXTENDED 1
729#endif
730
731#if defined(OMITTED__D_ALL_SOURCE) && !defined(_ALL_SOURCE)
732#define _ALL_SOURCE 1
733#endif
734
735#if defined(OMITTED__D_LARGEFILE_SOURCE_1) && !defined(_LARGEFILE_SOURCE)
736#define _LARGEFILE_SOURCE 1
737#endif
738
739
740
741
742#ifndef UNBOUND_DEBUG
743#  define NDEBUG
744#endif
745
746/** Use small-ldns codebase */
747#define USE_SLDNS 1
748#ifdef HAVE_SSL
749#  define LDNS_BUILD_CONFIG_HAVE_SSL 1
750#endif
751
752#include <stdio.h>
753#include <string.h>
754#include <unistd.h>
755#include <assert.h>
756
757#if STDC_HEADERS
758#include <stdlib.h>
759#include <stddef.h>
760#endif
761
762#ifdef HAVE_STDARG_H
763#include <stdarg.h>
764#endif
765
766#ifdef HAVE_STDINT_H
767#include <stdint.h>
768#endif
769
770#include <errno.h>
771
772#if HAVE_SYS_PARAM_H
773#include <sys/param.h>
774#endif
775
776#ifdef HAVE_SYS_SOCKET_H
777#include <sys/socket.h>
778#endif
779
780#ifdef HAVE_SYS_UIO_H
781#include <sys/uio.h>
782#endif
783
784#ifdef HAVE_NETINET_IN_H
785#include <netinet/in.h>
786#endif
787
788#ifdef HAVE_ARPA_INET_H
789#include <arpa/inet.h>
790#endif
791
792#ifdef HAVE_WINSOCK2_H
793#include <winsock2.h>
794#endif
795
796#ifdef HAVE_WS2TCPIP_H
797#include <ws2tcpip.h>
798#endif
799
800#ifndef USE_WINSOCK
801#define ARG_LL "%ll"
802#else
803#define ARG_LL "%I64"
804#endif
805
806#ifndef AF_LOCAL
807#define AF_LOCAL AF_UNIX
808#endif
809
810
811
812#ifdef HAVE_ATTR_FORMAT
813#  define ATTR_FORMAT(archetype, string_index, first_to_check) \
814    __attribute__ ((format (archetype, string_index, first_to_check)))
815#else /* !HAVE_ATTR_FORMAT */
816#  define ATTR_FORMAT(archetype, string_index, first_to_check) /* empty */
817#endif /* !HAVE_ATTR_FORMAT */
818
819
820#if defined(DOXYGEN)
821#  define ATTR_UNUSED(x)  x
822#elif defined(__cplusplus)
823#  define ATTR_UNUSED(x)
824#elif defined(HAVE_ATTR_UNUSED)
825#  define ATTR_UNUSED(x)  x __attribute__((unused))
826#else /* !HAVE_ATTR_UNUSED */
827#  define ATTR_UNUSED(x)  x
828#endif /* !HAVE_ATTR_UNUSED */
829
830
831#ifndef HAVE_FSEEKO
832#define fseeko fseek
833#define ftello ftell
834#endif /* HAVE_FSEEKO */
835
836
837#ifndef MAXHOSTNAMELEN
838#define MAXHOSTNAMELEN 256
839#endif
840
841
842#ifndef HAVE_SNPRINTF
843#define snprintf snprintf_unbound
844#define vsnprintf vsnprintf_unbound
845#include <stdarg.h>
846int snprintf (char *str, size_t count, const char *fmt, ...);
847int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
848#endif /* HAVE_SNPRINTF */
849
850
851#ifndef HAVE_INET_PTON
852#define inet_pton inet_pton_unbound
853int inet_pton(int af, const char* src, void* dst);
854#endif /* HAVE_INET_PTON */
855
856
857#ifndef HAVE_INET_NTOP
858#define inet_ntop inet_ntop_unbound
859const char *inet_ntop(int af, const void *src, char *dst, size_t size);
860#endif
861
862
863#ifndef HAVE_INET_ATON
864#define inet_aton inet_aton_unbound
865int inet_aton(const char *cp, struct in_addr *addr);
866#endif
867
868
869#ifndef HAVE_MEMMOVE
870#define memmove memmove_unbound
871void *memmove(void *dest, const void *src, size_t n);
872#endif
873
874
875#ifndef HAVE_STRLCAT
876#define strlcat strlcat_unbound
877size_t strlcat(char *dst, const char *src, size_t siz);
878#endif
879
880
881#ifndef HAVE_STRLCPY
882#define strlcpy strlcpy_unbound
883size_t strlcpy(char *dst, const char *src, size_t siz);
884#endif
885
886
887#ifndef HAVE_GMTIME_R
888#define gmtime_r gmtime_r_unbound
889struct tm *gmtime_r(const time_t *timep, struct tm *result);
890#endif
891
892
893#if !defined(HAVE_SLEEP) || defined(HAVE_WINDOWS_H)
894#define sleep(x) Sleep((x)*1000) /* on win32 */
895#endif /* HAVE_SLEEP */
896
897
898#ifndef HAVE_USLEEP
899#define usleep(x) Sleep((x)/1000 + 1) /* on win32 */
900#endif /* HAVE_USLEEP */
901
902
903#ifndef HAVE_RANDOM
904#define random rand /* on win32, for tests only (bad random) */
905#endif /* HAVE_RANDOM */
906
907
908#ifndef HAVE_SRANDOM
909#define srandom(x) srand(x) /* on win32, for tests only (bad random) */
910#endif /* HAVE_SRANDOM */
911
912
913/* detect if we need to cast to unsigned int for FD_SET to avoid warnings */
914#ifdef HAVE_WINSOCK2_H
915#define FD_SET_T (u_int)
916#else
917#define FD_SET_T
918#endif
919
920
921#ifndef IPV6_MIN_MTU
922#define IPV6_MIN_MTU 1280
923#endif /* IPV6_MIN_MTU */
924
925
926#ifdef MEMCMP_IS_BROKEN
927#include "compat/memcmp.h"
928#define memcmp memcmp_unbound
929int memcmp(const void *x, const void *y, size_t n);
930#endif
931
932
933
934#ifndef HAVE_CTIME_R
935#define ctime_r unbound_ctime_r
936char *ctime_r(const time_t *timep, char *buf);
937#endif
938
939#if !defined(HAVE_STRPTIME) || !defined(STRPTIME_WORKS)
940#define strptime unbound_strptime
941struct tm;
942char *strptime(const char *s, const char *format, struct tm *tm);
943#endif
944
945#ifdef HAVE_LIBRESSL
946#  if !HAVE_DECL_STRLCPY
947size_t strlcpy(char *dst, const char *src, size_t siz);
948#  endif
949#  if !HAVE_DECL_STRLCAT
950size_t strlcat(char *dst, const char *src, size_t siz);
951#  endif
952#  if !HAVE_DECL_ARC4RANDOM && defined(HAVE_ARC4RANDOM)
953uint32_t arc4random(void);
954#  endif
955#  if !HAVE_DECL_ARC4RANDOM_UNIFORM && defined(HAVE_ARC4RANDOM_UNIFORM)
956uint32_t arc4random_uniform(uint32_t upper_bound);
957#  endif
958#endif /* HAVE_LIBRESSL */
959#ifndef HAVE_ARC4RANDOM
960void explicit_bzero(void* buf, size_t len);
961int getentropy(void* buf, size_t len);
962uint32_t arc4random(void);
963void arc4random_buf(void* buf, size_t n);
964void _ARC4_LOCK(void);
965void _ARC4_UNLOCK(void);
966#endif
967#ifndef HAVE_ARC4RANDOM_UNIFORM
968uint32_t arc4random_uniform(uint32_t upper_bound);
969#endif
970#ifdef COMPAT_SHA512
971#ifndef SHA512_DIGEST_LENGTH
972#define SHA512_BLOCK_LENGTH		128
973#define SHA512_DIGEST_LENGTH		64
974#define SHA512_DIGEST_STRING_LENGTH	(SHA512_DIGEST_LENGTH * 2 + 1)
975typedef struct _SHA512_CTX {
976	uint64_t	state[8];
977	uint64_t	bitcount[2];
978	uint8_t	buffer[SHA512_BLOCK_LENGTH];
979} SHA512_CTX;
980#endif /* SHA512_DIGEST_LENGTH */
981void SHA512_Init(SHA512_CTX*);
982void SHA512_Update(SHA512_CTX*, void*, size_t);
983void SHA512_Final(uint8_t[SHA512_DIGEST_LENGTH], SHA512_CTX*);
984unsigned char *SHA512(void* data, unsigned int data_len, unsigned char *digest);
985#endif /* COMPAT_SHA512 */
986
987
988
989#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))
990   /* using version of libevent that is not threadsafe. */
991#  define LIBEVENT_SIGNAL_PROBLEM 1
992#endif
993
994#ifndef CHECKED_INET6
995#  define CHECKED_INET6
996#  ifdef AF_INET6
997#    define INET6
998#  else
999#    define AF_INET6        28
1000#  endif
1001#endif /* CHECKED_INET6 */
1002
1003#ifndef HAVE_GETADDRINFO
1004struct sockaddr_storage;
1005#include "compat/fake-rfc2553.h"
1006#endif
1007
1008#ifdef UNBOUND_ALLOC_STATS
1009#  define malloc(s) unbound_stat_malloc_log(s, __FILE__, __LINE__, __func__)
1010#  define calloc(n,s) unbound_stat_calloc_log(n, s, __FILE__, __LINE__, __func__)
1011#  define free(p) unbound_stat_free_log(p, __FILE__, __LINE__, __func__)
1012#  define realloc(p,s) unbound_stat_realloc_log(p, s, __FILE__, __LINE__, __func__)
1013void *unbound_stat_malloc(size_t size);
1014void *unbound_stat_calloc(size_t nmemb, size_t size);
1015void unbound_stat_free(void *ptr);
1016void *unbound_stat_realloc(void *ptr, size_t size);
1017void *unbound_stat_malloc_log(size_t size, const char* file, int line,
1018	const char* func);
1019void *unbound_stat_calloc_log(size_t nmemb, size_t size, const char* file,
1020	int line, const char* func);
1021void unbound_stat_free_log(void *ptr, const char* file, int line,
1022	const char* func);
1023void *unbound_stat_realloc_log(void *ptr, size_t size, const char* file,
1024	int line, const char* func);
1025#elif defined(UNBOUND_ALLOC_LITE)
1026#  include "util/alloc.h"
1027#endif /* UNBOUND_ALLOC_LITE and UNBOUND_ALLOC_STATS */
1028
1029/** default port for DNS traffic. */
1030#define UNBOUND_DNS_PORT 53
1031/** default port for unbound control traffic, registered port with IANA,
1032    ub-dns-control  8953/tcp    unbound dns nameserver control */
1033#define UNBOUND_CONTROL_PORT 8953
1034/** the version of unbound-control that this software implements */
1035#define UNBOUND_CONTROL_VERSION 1
1036
1037
1038