/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ /* * win32 configuration file * All definitions, declarations, macros and includes are * specific to the requirements of the Windows NT and Windows 2000 * platforms */ /* Define to empty if the keyword does not work. */ /* #undef const */ /* Define as __inline if that's what the C compiler calls it. */ #define inline __inline /* Define to `unsigned int/__int64' if doesn't define. */ /* #undef size_t */ /* * ANSI C compliance enabled */ #define __STDC__ 1 /* * Silence compiler warnings about using strcpy and friends. */ #define _CRT_SECURE_NO_DEPRECATE 1 /* * Use 32 bit time. */ #ifndef _WIN64 #define _USE_32BIT_TIME_T 1 #endif /* * Minimum version is Windows XP */ #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0501 #endif #if _WIN32_WINNT < 0x0501 #error Minimum Target environment is Windows XP and Windows Server 2003 #endif #ifndef NTDDI_VERSION #define NTDDI_VERSION 0x05010100 #endif #if NTDDI_VERSION < 0x05010100 #error Minimum Target environment is Windows XP SP1 and Windows Server 2003 #endif /* Define if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* define on DEC OSF to enable 4.4BSD style sa_len support */ /* #undef _SOCKADDR_LEN */ /* define if your system needs pthread_init() before using pthreads */ /* #undef NEED_PTHREAD_INIT */ /* define if your system has sigwait() */ /* #undef HAVE_SIGWAIT */ /* define on Solaris to get sigwait() to work using pthreads semantics */ /* #undef _POSIX_PTHREAD_SEMANTICS */ /* define if LinuxThreads is in use */ /* #undef HAVE_LINUXTHREADS */ /* define if catgets() is available */ /* #undef HAVE_CATGETS */ /* define if you have the NET_RT_IFLIST sysctl variable. */ #define HAVE_IFLIST_SYSCTL 1 /* define if you need to #define _XPG4_2 before including sys/socket.h */ /* #undef NEED_XPG4_2_BEFORE_SOCKET_H */ /* define if you need to #define _XOPEN_SOURCE_ENTENDED before including * sys/socket.h */ /* #undef NEED_XSE_BEFORE_SOCKET_H */ /* Define if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define if you have the header file. */ #define HAVE_SYS_SOCKIO_H 1 /* Define if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define if you have the c_r library (-lc_r). */ /* #undef HAVE_LIBC_R */ /* Define if you have the nsl library (-lnsl). */ /* #undef HAVE_LIBNSL */ /* Define if you have the pthread library (-lpthread). */ /* #undef HAVE_LIBPTHREAD */ /* Define if you have the socket library (-lsocket). */ /* #undef HAVE_LIBSOCKET */ /* Define if you have h_errno */ #define HAVE_H_ERRNO /* Define if you have RSA_generate_key(). */ #define HAVE_RSA_GENERATE_KEY /* Define if you have DSA_generate_parameters(). */ #define HAVE_DSA_GENERATE_PARAMETERS /* Define if you have DH_generate_parameters(). */ #define HAVE_DH_GENERATE_PARAMETERS /* Define if you have getpassphrase in the C library. */ #define HAVE_GETPASSPHRASE char *getpassphrase(const char *); /* * Define to 1 if you want to use the DLZ "dlopen" driver * (which has the same name on windows even though it uses * LoadLibrary() instead of dlopen()). */ #define ISC_DLZ_DLOPEN 1 #define WANT_IPV6 #define S_IFMT _S_IFMT /* file type mask */ #define S_IFDIR _S_IFDIR /* directory */ #define S_IFCHR _S_IFCHR /* character special */ #define S_IFIFO _S_IFIFO /* pipe */ #define S_IFREG _S_IFREG /* regular */ #define S_IREAD _S_IREAD /* read permission, owner */ #define S_IWRITE _S_IWRITE /* write permission, owner */ #define S_IEXEC _S_IEXEC /* execute/search permission, owner */ #define O_RDONLY _O_RDONLY #define O_WRONLY _O_WRONLY #define O_RDWR _O_RDWR #define O_APPEND _O_APPEND #define O_CREAT _O_CREAT #define O_TRUNC _O_TRUNC #define O_EXCL _O_EXCL /* open() under unix allows setting of read/write permissions * at the owner, group and other levels. These don't exist in NT * We'll just map them all to the NT equivalent */ #define S_IRUSR _S_IREAD /* Owner read permission */ #define S_IWUSR _S_IWRITE /* Owner write permission */ #define S_IRGRP _S_IREAD /* Group read permission */ #define S_IWGRP _S_IWRITE /* Group write permission */ #define S_IROTH _S_IREAD /* Other read permission */ #define S_IWOTH _S_IWRITE /* Other write permission */ /* * WIN32 specials until some other way of dealing with these is decided. */ #if _MSC_VER < 1900 #define snprintf _snprintf #endif #if _MSC_VER <= 1400 #define vsnprintf _vsnprintf #endif #define strcasecmp _stricmp #define strncasecmp _strnicmp #define strdup _strdup #define sopen _sopen #define isascii __isascii #ifndef _WIN64 #define stat _stat #define fstat _fstat #else #define stat _stat64 #define fstat _fstat64 #endif #define fileno _fileno #define unlink _unlink #define chdir _chdir #define mkdir _mkdir #define rmdir _rmdir #define getcwd _getcwd #define utime _utime #define utimbuf _utimbuf #ifndef _WIN64 #define lseek _lseek #else #define lseek _lseeki64 #endif /* #define EAFNOSUPPORT EINVAL */ #define chmod _chmod #define getpid _getpid #define getppid _getpid /* WARNING!!! For now this gets the same pid */ #define random rand /* Random number generator */ #define srandom srand /* Random number generator seeding */ /* for the config file */ typedef unsigned int uid_t; /* user id */ typedef unsigned int gid_t; /* group id */ typedef long pid_t; /* PID */ #ifndef _WIN64 typedef int ssize_t; typedef long off_t; #else typedef __int64 ssize_t; #ifndef _AFX /* BINDInstall defines it with another type but doesn't use it */ typedef __int64 off_t; #endif #endif /* * Set up the Version Information */ #include /* We actually are using the CryptAPI and not a device */ #define PATH_RANDOMDEV "CryptAPI" #include #include #include /* * Applications may need to get the configuration path */ #ifndef _USRDLL #include #endif #define fdopen _fdopen #define read _read #define open _open #define close _close #define write _write #include #define isatty _isatty #ifndef _WINSOCKAPI_ #define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */ #endif /* * Make the number of available sockets large * The number of sockets needed can get large and memory's cheap * This must be defined before winsock2.h gets included as the * macro is used there. */ #ifndef FD_SETSIZE #define FD_SETSIZE 16384 #endif #include /* * main() is hooked */ #define ISC_MAIN_HOOK 1 /* * Configure sensible arguments */ @CONFIGARGS@ /* * Define if libxml2 is present */ @HAVE_LIBXML2@ /** define if struct addrinfo exists */ #define HAVE_ADDRINFO /** define if getaddrinfo() exists */ #define HAVE_GETADDRINFO /** define if gai_strerror() exists */ #define HAVE_GAISTRERROR /* return type of gai_strerror */ #define IRS_GAISTRERROR_RETURN_T char * /* Define to the buffer length type used by getnameinfo(3). */ #define IRS_GETNAMEINFO_BUFLEN_T DWORD /* Define to the flags type used by getnameinfo(3). */ #define IRS_GETNAMEINFO_FLAGS_T int /* Define to the sockaddr length type used by getnameinfo(3). */ #define IRS_GETNAMEINFO_SOCKLEN_T socklen_t /* Define to enable the "filter-aaaa-on-v4" and "filter-aaaa-on-v6" options. */ @ALLOW_FILTER_AAAA@ /* Define to enable "rrset-order fixed" syntax. */ @DNS_RDATASET_FIXED@ /* Define to 1 if you have the `EVP_sha256' function. */ @HAVE_EVP_SHA256@ /* Define to 1 if you have the `EVP_sha384' function. */ @HAVE_EVP_SHA384@ /* Define to 1 if you have the `EVP_sha512' function. */ @HAVE_EVP_SHA512@ /* Define if OpenSSL provides FIPS_mode() */ @HAVE_FIPS_MODE@ /* Define if OpenSSL includes DSA support */ @HAVE_OPENSSL_DSA@ /* Define if OpenSSL includes ECDSA support */ @HAVE_OPENSSL_ECDSA@ /* Define if OpenSSL includes Ed25519 support */ @HAVE_OPENSSL_ED25519@ /* Define if OpenSSL includes Ed448 support */ @HAVE_OPENSSL_ED448@ /* Define if your OpenSSL version supports GOST. */ @HAVE_OPENSSL_GOST@ /* Define if your PKCS11 provider supports ECDSA. */ @HAVE_PKCS11_ECDSA@ /* Define if your PKCS11 provider supports Ed25519. */ @HAVE_PKCS11_ED25519@ /* Define if your PKCS11 provider supports Ed448. */ @HAVE_PKCS11_ED448@ /* Define if your PKCS11 provider supports GOST. */ @HAVE_PKCS11_GOST@ /* Define if GOST private keys are encoded in ASN.1. */ @PREFER_GOSTASN1@ /* Define if your OpenSSL version supports EVP AES */ @HAVE_OPENSSL_EVP_AES@ /* Define if your OpenSSL version supports AES */ @HAVE_OPENSSL_AES@ /* HMAC_*() return ints */ @HMAC_RETURN_INT@ /* Use AES for Client Cookie generation */ @AES_CC@ /* Use HMAC-SHA1 for Client Cookie generation */ @HMAC_SHA1_CC@ /* Use HMAC-SHA256 for Client Cookie generation */ @HMAC_SHA256_CC@ /* Define to 1 if you have the `readline' function. */ @HAVE_READLINE@ /* Build with GeoIP support */ @HAVE_GEOIP@ /* define if idnkit support is to be included. */ @WITH_IDN@ /* Build with GeoIP City IPv6 support */ @HAVE_GEOIP_CITY_V6@ /* Build with GeoIP Country IPv6 support */ @HAVE_GEOIP_V6@ /* Define if zlib was found */ @HAVE_ZLIB@ /* Define to enable rpz-nsdname rules. */ @ENABLE_RPZ_NSDNAME@ /* Define to enable rpz-nsip rules. */ @ENABLE_RPZ_NSIP@ /* From enable developer */ @ISC_LIST_CHECKINIT@ /* Large system tuning */ @TUNE_LARGE@ /* Verbose query trace logging */ @WANT_QUERYTRACE@ /* * Define to nothing if C supports flexible array members, and to 1 if it does * not. That way, with a declaration like `struct s { int n; double * d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99 * compilers. When computing the size of such an object, don't use 'sizeof * (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)' * instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with * MSVC and with C++ compilers. */ #define FLEXIBLE_ARRAY_MEMBER /**/ /* Avoid warnings with strlen() */ #ifdef _WIN64 #define strlen(x) (unsigned int) strlen(x) #endif /* Get SRCID */ #include "srcid.h"