/* config.h.in.  Generated from configure.ac by autoheader.  */

/* in-kernel NAT-T is broken */
#undef BROKEN_NATT

/* If printf doesn't support %zu. */
#undef BROKEN_PRINTF

/* Enable admin port */
#undef ENABLE_ADMINPORT

/* Enable dead peer detection */
#undef ENABLE_DPD

/* Enable fast SA flush code */
#undef ENABLE_FASTQUIT

/* IKE fragmentation support */
#undef ENABLE_FRAG

/* Hybrid authentication support */
#undef ENABLE_HYBRID

/* Enable NAT-Traversal */
#undef ENABLE_NATT

/* Enable NAT-Traversal draft 00 */
#undef ENABLE_NATT_00

/* Enable NAT-Traversal draft 01 */
#undef ENABLE_NATT_01

/* Enable NAT-Traversal draft 02 */
#undef ENABLE_NATT_02

/* Enable NAT-Traversal draft 03 */
#undef ENABLE_NATT_03

/* Enable NAT-Traversal draft 04 */
#undef ENABLE_NATT_04

/* Enable NAT-Traversal draft 05 */
#undef ENABLE_NATT_05

/* Enable NAT-Traversal draft 06 */
#undef ENABLE_NATT_06

/* Enable NAT-Traversal draft 07 */
#undef ENABLE_NATT_07

/* Enable NAT-Traversal draft 08 */
#undef ENABLE_NATT_08

/* Enable NAT-Traversal RFC version */
#undef ENABLE_NATT_RFC

/* Enable samode-unspec */
#undef ENABLE_SAMODE_UNSPECIFIED

/* Enable statictics */
#undef ENABLE_STATS

/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H

/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
#undef HAVE_DOPRNT

/* Have __func__ macro */
#undef HAVE_FUNC_MACRO

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Enable GSS API */
#undef HAVE_GSSAPI

/* Have iconv using const */
#undef HAVE_ICONV_2ND_CONST

/* Define to 1 if you have the `iconv_open' function. */
#undef HAVE_ICONV_OPEN

/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H

/* Have ipsec_policy_t */
#undef HAVE_IPSEC_POLICY_T

/* Hybrid authentication uses LDAP */
#undef HAVE_LIBLDAP

/* Hybrid authentication uses PAM */
#undef HAVE_LIBPAM

/* Hybrid authentication uses RADIUS */
#undef HAVE_LIBRADIUS

/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H

/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H

/* Define to 1 if you have the <openssl/aes.h> header file. */
#undef HAVE_OPENSSL_AES_H

/* Define to 1 if you have the <openssl/camellia.h> header file. */
#undef HAVE_OPENSSL_CAMELLIA_H

/* Define to 1 if you have the <openssl/engine.h> header file. */
#undef HAVE_OPENSSL_ENGINE_H

/* Define to 1 if you have the <openssl/idea.h> header file. */
#undef HAVE_OPENSSL_IDEA_H

/* Define to 1 if you have the <openssl/rc5.h> header file. */
#undef HAVE_OPENSSL_RC5_H

/* Define to 1 if you have the `pam_start' function. */
#undef HAVE_PAM_START

/* Are PF_KEY policy priorities supported? */
#undef HAVE_PFKEY_POLICY_PRIORITY

/* Have forward policy */
#undef HAVE_POLICY_FWD

/* Define to 1 if you have the `rad_create_request' function. */
#undef HAVE_RAD_CREATE_REQUEST

/* Is readline available? */
#undef HAVE_READLINE

/* Enable Security Context */
#undef HAVE_SECCTX

/* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT

/* sha2 is defined in sha.h */
#undef HAVE_SHA2_IN_SHA_H

/* Define to 1 if you have the <shadow.h> header file. */
#undef HAVE_SHADOW_H

/* Define to 1 if you have the `socket' function. */
#undef HAVE_SOCKET

/* Define to 1 if you have the <stdarg.h> header file. */
#undef HAVE_STDARG_H

/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H

/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H

/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP

/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR

/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H

/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H

/* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT

/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY

/* Define to 1 if you have the `strtol' function. */
#undef HAVE_STRTOL

/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL

/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H

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

/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H

/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H

/* Define to 1 if you have the <varargs.h> header file. */
#undef HAVE_VARARGS_H

/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF

/* Support IPv6 */
#undef INET6

/* Use advanced IPv6 API */
#undef INET6_ADVAPI

/* Name of package */
#undef PACKAGE

/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT

/* Define to the full name of this package. */
#undef PACKAGE_NAME

/* Define to the full name and version of this package. */
#undef PACKAGE_STRING

/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME

/* Define to the version of this package. */
#undef PACKAGE_VERSION

/* Path to ipsec.h */
#undef PATH_IPSEC_H

/* Define as the return type of signal handlers (`int' or `void'). */
#undef RETSIGTYPE

/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS

/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#undef TIME_WITH_SYS_TIME

/* Define to 1 if your <sys/time.h> declares `struct tm'. */
#undef TM_IN_SYS_TIME

/* A 'va_copy' style function */
#undef VA_COPY

/* Version number of package */
#undef VERSION

/* SHA2 support */
#undef WITH_SHA2

/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
   `char[]'. */
#undef YYTEXT_POINTER

/* Define to empty if `const' does not conform to ANSI C. */
#undef const

/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t

/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
