config.h.win32 10.4 KB
Newer Older
Danny Mayer's avatar
Danny Mayer committed
1
/*
2
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
Danny Mayer's avatar
Danny Mayer committed
3
 *
4 5 6
 * 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/.
7 8 9
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
Danny Mayer's avatar
Danny Mayer committed
10 11 12 13 14 15 16 17
 */

/*
 * win32 configuration file
 * All definitions, declarations, macros and includes are
 * specific to the requirements of the Windows NT and Windows 2000
 * platforms
 */
David Lawrence's avatar
David Lawrence committed
18 19 20 21 22 23 24

/* 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

25
/* Define to `unsigned int/__int64' if <sys/types.h> doesn't define.  */
David Lawrence's avatar
David Lawrence committed
26 27
/* #undef size_t */

Danny Mayer's avatar
Danny Mayer committed
28 29 30 31 32
/*
 * ANSI C compliance enabled
 */
#define __STDC__ 1

Mark Andrews's avatar
Mark Andrews committed
33 34 35 36 37 38 39 40
/*
 * Silence compiler warnings about using strcpy and friends.
 */
#define _CRT_SECURE_NO_DEPRECATE 1

/*
 * Use 32 bit time.
 */
41
#ifndef _WIN64
Mark Andrews's avatar
Mark Andrews committed
42
#define _USE_32BIT_TIME_T 1
43
#endif
Mark Andrews's avatar
Mark Andrews committed
44

Danny Mayer's avatar
Danny Mayer committed
45
/*
46
 * Minimum version is Windows XP
Danny Mayer's avatar
Danny Mayer committed
47
 */
48
#ifndef _WIN32_WINNT
49
#define _WIN32_WINNT 0x0501
50 51 52 53 54 55 56 57 58 59
#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
60

David Lawrence's avatar
David Lawrence committed
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
/* Define if you have the ANSI C header files.  */
#define STDC_HEADERS 1

/* Define if you can safely include both <sys/time.h> and <time.h>.  */
#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 <fcntl.h> header file.  */
#define HAVE_FCNTL_H 1

/* Define if you have the <sys/sockio.h> header file.  */
#define HAVE_SYS_SOCKIO_H 1

/* Define if you have the <sys/time.h> header file.  */
#define HAVE_SYS_TIME_H 1

/* Define if you have the <unistd.h> 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 */

Danny Mayer's avatar
Danny Mayer committed
120 121 122
/* Define if you have h_errno */
#define HAVE_H_ERRNO

Mark Andrews's avatar
win32  
Mark Andrews committed
123 124 125 126 127 128 129 130 131
/* 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

Evan Hunt's avatar
Evan Hunt committed
132 133 134 135 136
/* Define if you have getpassphrase in the C library. */
#define HAVE_GETPASSPHRASE

char *getpassphrase(const char *);

137 138 139 140 141 142 143
/*
 * 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

144
#define WANT_IPV6
145

Danny Mayer's avatar
Danny Mayer committed
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
#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

Danny Mayer's avatar
Danny Mayer committed
163
/* open() under unix allows setting of read/write permissions
Danny Mayer's avatar
Danny Mayer committed
164
 * at the owner, group and other levels.  These don't exist in NT
Automatic Updater's avatar
Automatic Updater committed
165
 * We'll just map them all to the NT equivalent
Danny Mayer's avatar
Danny Mayer committed
166 167 168 169 170 171 172 173 174 175
 */

#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 */


David Lawrence's avatar
David Lawrence committed
176 177 178
/*
 * WIN32 specials until some other way of dealing with these is decided.
 */
Danny Mayer's avatar
Danny Mayer committed
179

180
#if _MSC_VER < 1900
Danny Mayer's avatar
Danny Mayer committed
181
#define snprintf _snprintf
182
#endif
183
#if _MSC_VER <= 1400
Danny Mayer's avatar
Danny Mayer committed
184
#define vsnprintf _vsnprintf
185
#endif
Danny Mayer's avatar
Danny Mayer committed
186 187 188 189 190
#define strcasecmp  _stricmp
#define strncasecmp _strnicmp
#define strdup _strdup
#define sopen _sopen
#define isascii __isascii
191
#ifndef _WIN64
Danny Mayer's avatar
Danny Mayer committed
192 193
#define stat _stat
#define fstat _fstat
194 195 196 197
#else
#define stat _stat64
#define fstat _fstat64
#endif
Danny Mayer's avatar
Danny Mayer committed
198 199 200 201
#define fileno _fileno
#define unlink _unlink
#define chdir _chdir
#define mkdir _mkdir
202
#define rmdir _rmdir
Danny Mayer's avatar
Danny Mayer committed
203 204 205
#define getcwd _getcwd
#define utime _utime
#define utimbuf _utimbuf
206
#ifndef _WIN64
207
#define lseek _lseek
208 209 210
#else
#define lseek _lseeki64
#endif
Danny Mayer's avatar
Danny Mayer committed
211

212
/* #define EAFNOSUPPORT EINVAL */
Danny Mayer's avatar
Danny Mayer committed
213 214 215 216 217
#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 */
David Lawrence's avatar
David Lawrence committed
218 219 220
/* for the config file */
typedef unsigned int    uid_t;          /* user id */
typedef unsigned int    gid_t;          /* group id */
Danny Mayer's avatar
Danny Mayer committed
221
typedef long pid_t;			/* PID */
222
#ifndef _WIN64
Danny Mayer's avatar
Danny Mayer committed
223 224
typedef int ssize_t;
typedef long off_t;
225 226 227 228 229 230 231
#else
typedef __int64 ssize_t;
#ifndef _AFX
/* BINDInstall defines it with another type but doesn't use it */
typedef __int64 off_t;
#endif
#endif
Danny Mayer's avatar
Danny Mayer committed
232 233

/*
Danny Mayer's avatar
Danny Mayer committed
234
 * Set up the Version Information
Danny Mayer's avatar
Danny Mayer committed
235 236 237
 */
#include <versions.h>

Automatic Updater's avatar
Automatic Updater committed
238
/* We actually are using the CryptAPI and not a device */
Danny Mayer's avatar
Danny Mayer committed
239 240 241 242 243 244
#define PATH_RANDOMDEV		"CryptAPI"

#include <stddef.h>
#include <stdio.h>
#include <stdarg.h>

Danny Mayer's avatar
Danny Mayer committed
245 246 247 248 249 250 251
/*
 * Applications may need to get the configuration path
 */
#ifndef _USRDLL
#include <isc/ntpaths.h>
#endif

Danny Mayer's avatar
Danny Mayer committed
252 253 254 255 256
#define fdopen	_fdopen
#define read	_read
#define open	_open
#define close	_close
#define write	_write
257
#include <io.h>
258
#define isatty	_isatty
Danny Mayer's avatar
Danny Mayer committed
259 260 261 262 263 264 265 266 267 268 269 270

#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.
 */

271
#ifndef FD_SETSIZE
Danny Mayer's avatar
Danny Mayer committed
272
#define FD_SETSIZE 16384
273
#endif
Danny Mayer's avatar
Danny Mayer committed
274
#include <windows.h>
Mark Andrews's avatar
Mark Andrews committed
275 276

/*
277 278 279 280 281 282
 * main() is hooked
 */
#define ISC_MAIN_HOOK 1

/*
 * Configure sensible arguments
Mark Andrews's avatar
Mark Andrews committed
283
 */
284
@CONFIGARGS@
285 286 287 288

/*
 * Define if libxml2 is present
 */
289
@HAVE_LIBXML2@
290

291 292 293 294 295 296 297 298 299
/** define if struct addrinfo exists */
#define HAVE_ADDRINFO

/** define if getaddrinfo() exists */
#define HAVE_GETADDRINFO

/** define if gai_strerror() exists */
#define HAVE_GAISTRERROR

300 301 302 303 304 305 306 307 308
/* 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

309 310 311
/* Define to the sockaddr length type used by getnameinfo(3). */
#define IRS_GETNAMEINFO_SOCKLEN_T socklen_t

312 313 314
/* Define to enable "rrset-order fixed" syntax. */
@DNS_RDATASET_FIXED@

315 316 317
/* Define if OpenSSL provides FIPS_mode() */
@HAVE_FIPS_MODE@

318 319 320 321 322 323
/* Define if OpenSSL includes DSA support */
@HAVE_OPENSSL_DSA@

/* Define if OpenSSL includes ECDSA support */
@HAVE_OPENSSL_ECDSA@

324 325 326 327 328 329
/* Define if OpenSSL includes Ed25519 support */
@HAVE_OPENSSL_ED25519@

/* Define if OpenSSL includes Ed448 support */
@HAVE_OPENSSL_ED448@

330 331 332 333 334 335 336 337 338 339 340 341
/* Define if your OpenSSL version supports DH functions. */
@HAVE_DH_GET0_KEY@

/* Define if your OpenSSL version supports DSA functions. */
@HAVE_DSA_GET0_PQG@

/* Define if your OpenSSL version supports ECDSA functions. */
@HAVE_ECDSA_SIG_GET0@

/* Define if your OpenSSL version supports RSA functions. */
@HAVE_RSA_SET0_KEY@

Ondřej Surý's avatar
Ondřej Surý committed
342 343 344
/* Define if native PKCS#11 is used as cryptographic library provider */
@HAVE_PKCS11@

Evan Hunt's avatar
Evan Hunt committed
345 346 347
/* Define if your PKCS11 provider supports ECDSA. */
@HAVE_PKCS11_ECDSA@

348 349 350 351 352 353
/* Define if your PKCS11 provider supports Ed25519. */
@HAVE_PKCS11_ED25519@

/* Define if your PKCS11 provider supports Ed448. */
@HAVE_PKCS11_ED448@

Ondřej Surý's avatar
Ondřej Surý committed
354 355 356
/* Define if OpenSSL is used as cryptographic library provider. */
@HAVE_OPENSSL@

357 358 359 360 361 362
/* Define if your OpenSSL version supports EVP AES */
@HAVE_OPENSSL_EVP_AES@

/* Define if your OpenSSL version supports AES */
@HAVE_OPENSSL_AES@

363 364 365
/* HMAC_*() return ints */
@HMAC_RETURN_INT@

Francis Dupont's avatar
Francis Dupont committed
366 367
/* Use AES for Client Cookie generation */
@AES_CC@
368

Francis Dupont's avatar
Francis Dupont committed
369 370
/* Use HMAC-SHA1 for Client Cookie generation */
@HMAC_SHA1_CC@
371

Francis Dupont's avatar
Francis Dupont committed
372 373
/* Use HMAC-SHA256 for Client Cookie generation */
@HMAC_SHA256_CC@
374

375 376 377 378 379 380 381 382 383 384 385 386 387 388
/* 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@
389

Francis Dupont's avatar
Francis Dupont committed
390 391 392
/* Define if zlib was found */
@HAVE_ZLIB@

393
/* Define to enable rpz-nsdname rules. */
394
@ENABLE_RPZ_NSDNAME@
395 396

/* Define to enable rpz-nsip rules. */
397 398 399 400 401
@ENABLE_RPZ_NSIP@

/* From enable developer */
@ISC_LIST_CHECKINIT@

402 403 404
/* Large system tuning */
@TUNE_LARGE@

405 406 407
/* Verbose query trace logging */
@WANT_QUERYTRACE@

408 409 410 411 412 413 414 415 416 417 418
/*
 * 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 /**/

419 420 421 422
/* Avoid warnings with strlen() */
#ifdef _WIN64
#define strlen(x)	(unsigned int) strlen(x)
#endif
423 424 425

/* Get SRCID */
#include "srcid.h"