/* source: config.h.in */
/* Copyright Gerhard Rieger and contributors (see file CHANGES) */
/* Published under the GNU General Public License V.2, see file COPYING */

#ifndef __config_h_included
#define __config_h_included 1

/* Define to empty if the keyword does not work.  */
#undef const

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef gid_t

/* Define if your struct stat has st_blksize.  */
#undef HAVE_ST_BLKSIZE

/* Define if your struct stat has st_blocks.  */
#undef HAVE_ST_BLOCKS

/* Define if your struct stat has st_rdev.  */
#undef HAVE_ST_RDEV

/* Define if you have the strftime function.  */
#undef HAVE_STRFTIME

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

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef mode_t

/* Define to `long' if <sys/types.h> doesn't define.  */
#undef off_t

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

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

/* Define to `unsigned' if <sys/types.h> doesn't define.  */
#undef size_t

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

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

/* Define to `int' if <sys/types.h> doesn't define.  */
#undef uid_t

/* Define if you have the putenv function.  */
#undef HAVE_PUTENV

/* Define if your cc provides char **environ declaration.
   This implies HAVE_VAR_ENVIRON */
#undef HAVE_DECL_ENVIRON

/* Define if you have the char **environ variable */
#undef HAVE_VAR_ENVIRON

/* Define if you have the select function.  */
#undef HAVE_SELECT

/* Define if you have the pselect function.  */
#undef HAVE_PSELECT

/* Define if you have the poll function.  */
#undef HAVE_POLL

/* Define if you have the socket function.  */
#undef HAVE_SOCKET

/* Define if you have the posix_memalign function.  */
#undef HAVE_PROTOTYPE_LIB_posix_memalign

/* Define if you have the strdup function.  */
#undef HAVE_PROTOTYPE_LIB_strdup

/* Define if you have the strerror function.  */
#undef HAVE_PROTOTYPE_LIB_strerror

/* Define if you have the strstr function.  */
#undef HAVE_PROTOTYPE_LIB_strstr

/* Define if you have the strtod function.  */
#undef HAVE_STRTOD

/* Define if you have the strtol function.  */
#undef HAVE_STRTOL

/* Define if you have the strtoul function.  */
#undef HAVE_STRTOUL

/* Define if you have the uname function.  */
#undef HAVE_UNAME

/* Define if you have the getpgid function.  */
#undef HAVE_GETPGID

/* Define if you have the getsid function.  */
#undef HAVE_GETSID

/* Define if you have the nanosleep function.  */
#undef HAVE_NANOSLEEP

/* Define if you have the gethostbyname function.  */
#undef HAVE_GETHOSTBYNAME

/* Define if you have the getaddrinfo function.  */
#undef HAVE_GETADDRINFO

/* Define if you have the getipnodebyname function.  */
#undef HAVE_PROTOTYPE_LIB_getipnodebyname

/* Define if you have the getprotobynumber_r function. */
#undef HAVE_GETPROTOBYNUMBER_R

/* Define if you have the getprotobynumber function. */
#undef HAVE_GETPROTOBYNUMBER

/* Define if you have the setgroups function. */
#undef HAVE_SETGROUPS

/* Define if you have the inet_aton function. */
#undef HAVE_INET_ATON

/* Define if you have the strndup function. */
#undef HAVE_PROTOTYPE_LIB_strndup

/* Define if you have the memrchr function. */
#undef HAVE_PROTOTYPE_LIB_memrchr

/* Define if you have the if_indextoname function. */
#undef HAVE_PROTOTYPE_LIB_if_indextoname

/* Define if you have the sigaction function */
#undef HAVE_SIGACTION

/* Define if you have the stat64 function */
#undef HAVE_STAT64

/* Define if you have the fstat64 function */
#undef HAVE_FSTAT64

/* Define if you have the lstat64 function */
#undef HAVE_LSTAT64

/* Define if you have the lseek64 function */
#undef HAVE_LSEEK64

/* Define if you have the truncate64 function */
#undef HAVE_TRUNCATE64

/* Define if you have the ftruncate64 function */
#undef HAVE_FTRUNCATE64

/* Define if you have the gettimeofday function */
#undef HAVE_PROTOTYPE_LIB_gettimeofday

/* Define if you have the clock_gettime function */
#undef HAVE_CLOCK_GETTIME

/* Define if you have the strtoll function */
#undef HAVE_STRTOLL

/* Define if you have the hstrerror function */
#undef HAVE_HSTRERROR

/* Define if you have the inet_ntop function */
#undef HAVE_INET_NTOP

/* Define if you have the hstrerror prototype */
#undef HAVE_PROTOTYPE_HSTRERROR

/* Define if you have the <stdbool.h> header file.  */
#undef HAVE_STDBOOL_H

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

/* Define if you have the <fcntl.h> header file.  */
#undef HAVE_FCNTL_H

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

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

/* Define if you have the <sys/param.h> header file.  */
#undef HAVE_SYS_PARAM_H

/* Define if you have the <sys/ioctl.h> header file.  */
#undef HAVE_SYS_IOCTL_H

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

/* Define if you have the <syslog.h> header file.  */
#undef HAVE_SYSLOG_H

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

/* Define if you have the <pwd.h> header file.  */
#undef HAVE_PWD_H

/* Define if you have the <grp.h> header file.  */
#undef HAVE_GRP_H

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

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

/* Define if you have the <poll.h> header file.  */
#undef HAVE_POLL_H

/* Define if you have the <sys/poll.h> header file.  */
#undef HAVE_SYS_POLL_H

/* Define if you have the <sys/socket.h> header file.  */
#undef HAVE_SYS_SOCKET_H

/* Define if you have the <sys/uio.h> header file.  */
#undef HAVE_SYS_UIO_H

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

/* Define if you have the <netdb.h> header file.  */
#undef HAVE_NETDB_H

/* Define if you have the <sys/un.h> header file.  */
#undef HAVE_SYS_UN_H

/* Define if you have the <pty.h> header file.  */
#undef HAVE_PTY_H

/* Define if you have the <netinet/in.h> header file.  */
#undef HAVE_NETINET_IN_H

/* Define if you have the <netinet/in_systm.h> header file.  */
#undef HAVE_NETINET_IN_SYSTM_H

/* Define if you have the <netinet/ip.h> header file.  */
#undef HAVE_NETINET_IP_H

/* Define if you have the <netinet/tcp.h> header file.  */
#undef HAVE_NETINET_TCP_H

/* Define if you have the <netinet/ip6.h> header file.  */
#undef HAVE_NETINET_IP6_H

/* Define if you have the <netinet6/in6.h> header file.  */
#undef HAVE_NETINET6_IN6_H

/* Define if you have the <arpa/nameser.h> header file.  */
#undef HAVE_ARPA_NAMESER_H

/* Define if you have the <resolv.h> header file.  */
#undef HAVE_RESOLV_H

/* Define if you have the <termios.h> header file.  */
#undef HAVE_TERMIOS_H

/* Define if you have the <net/if.h> header file.  */
#undef HAVE_NET_IF_H

/* Define if you have the <net/if_dl.h> header file.  */
#undef HAVE_NET_IF_DL_H

/* Define if you have the <linux/types.h> header file.  */
#undef HAVE_LINUX_TYPES_H

/* Define if you have the <linux/errqueue.h> header file.  */
#undef HAVE_LINUX_ERRQUEUE_H

/* Define if you have the <linux/if_tun.h> header file.  */
#undef HAVE_LINUX_IF_TUN_H

/* Define if you have the <linux/vm_sockets.h> header file.  */
#undef HAVE_LINUX_VM_SOCKETS_H

/* Define if you have the <netpacket/packet.h> header file.  */
#undef HAVE_NETPACKET_PACKET_H

/* Define if you have the <netinet/if_ether.h> header file.  */
#undef HAVE_NETINET_IF_ETHER_H

/* Define if you have the <sys/utsname.h> header file.  */
#undef HAVE_SYS_UTSNAME_H

/* Define if you have the <sys/select.h> header file. (AIX) */
#undef HAVE_SYS_SELECT_H

/* Define if you have the <sys/file.h> header file. (AIX) */
#undef HAVE_SYS_FILE_H

/* Define if you have the <util.h> header file. (NetBSD, OpenBSD: openpty()) */
#undef HAVE_UTIL_H

/* Define if you have the <bsd/libutil.h> header file. */
#undef HAVE_BSD_LIBUTIL_H

/* Define if you have the <libutil.h> header file. (FreeBSD: openpty()) */
#undef HAVE_LIBUTIL_H

/* Define if you have the <sys/stropts.h> header file. (stream opts on SunOS)*/
#undef HAVE_SYS_STROPTS_H

/* Define if you have the <regex.h> header file. */
#undef HAVE_REGEX_H

/* Define if you have the <linux/fs.h> header file. */
#undef HAVE_LINUX_FS_H

/* Define if you have the <linux/ext2_fs.h> header file. */
#undef HAVE_LINUX_EXT2_FS_H

/* Define if you have the <readline/readline.h> header file. */
#undef HAVE_READLINE_READLINE_H

/* Define if you have the <readline/history.h> header file. */
#undef HAVE_READLINE_HISTORY_H

/* Define if you have the readline library. */
#undef HAVE_LIBREADLINE

/* Define if you have the m library (-lm).  */
#undef HAVE_LIBM

/* Define if you have the floor function */
#undef HAVE_FLOOR

/* some platforms need _XOPEN_EXTENDED_SOURCE to get syslog headers (AIX4.1) */
#undef _XOPEN_EXTENDED_SOURCE

/* fdset may have component fds_bits or __fds_bits */
#undef HAVE_FDS_BITS

/* struct termios may have components c_ispeed,c_ospeed */
#undef HAVE_STRUCT_TERMIOS_C_ISPEED
#undef HAVE_STRUCT_TERMIOS_C_OSPEED

/* Define if you have the sa_family_t */
#undef HAVE_TYPE_SA_FAMILY_T

/* define if your struct sigaction has sa_sigaction */
#undef HAVE_STRUCT_SIGACTION_SA_SIGACTION

/* define if you have struct sock_extended_err */
#undef HAVE_STRUCT_SOCK_EXTENDED_ERR

/* Define if your termios.h likes _SVID3 defined */
#undef _SVID3

/* Define if your sys/socket.h likes _XPG4_2 defined */
#undef _XPG4_2

/* Define if your ctime_r() choices need _POSIX_PTHREAD_SEMANTICS */
#undef _POSIX_PTHREAD_SEMANTICS

/* Define if you need __EXTENSIONS__ */
#undef __EXTENSIONS__

/* Define if you have struct timespec (e.g. for nanosleep) */
#undef HAVE_STRUCT_TIMESPEC

/* Define if you have struct linger */
#undef HAVE_STRUCT_LINGER

/* Define if you have struct ip */
#undef HAVE_STRUCT_IP

/* Define if you have struct ip_mreq */
#undef HAVE_STRUCT_IP_MREQ

/* Define if you have struct ip_mreqn */
#undef HAVE_STRUCT_IP_MREQN

/* Define if you have struct ipv6_mreq */
#undef HAVE_STRUCT_IPV6_MREQ

/* Define if you have struct ip_mreq_source */
#undef HAVE_STRUCT_IP_MREQ_SOURCE

/* Define if you have struct ifreq */
#undef HAVE_STRUCT_IFREQ

/* Define if you have struct ifreq.ifr_index */
#undef HAVE_STRUCT_IFREQ_IFR_INDEX

/* Define if you have struct ifreq.ifr_ifindex; not on HPUX */
#undef HAVE_STRUCT_IFREQ_IFR_IFINDEX

/* Define if your struct sockaddr has sa_len */
#undef HAVE_STRUCT_SOCKADDR_SALEN

/* there are several implementations of sockaddr_in6 */
#undef HAVE_IP6_SOCKADDR

/* Define if you have struct iovec */
#undef HAVE_STRUCT_IOVEC

/* define if your struct msghdr has msg_control */
#undef HAVE_STRUCT_MSGHDR_MSGCONTROL

/* define if your struct msghdr has msg_controllen */
#undef HAVE_STRUCT_MSGHDR_MSGCONTROLLEN

/* define if your struct msghdr has msg_flag */
#undef HAVE_STRUCT_MSGHDR_MSGFLAGS

/* define if you have struct cmsghdr */
#undef HAVE_STRUCT_CMSGHDR

/* define if you have struct in_pktinfo */
#undef HAVE_STRUCT_IN_PKTINFO

/* define if your struct in_pktinfo has component ipi_spec_dst */
#undef HAVE_PKTINFO_IPI_SPEC_DST

/* define if you have struct in6_pktinfo */
#undef HAVE_STRUCT_IN6_PKTINFO

/* define if your struct ip has ip_hl; otherwise assume ip_vhl */
#undef HAVE_STRUCT_IP_IP_HL

/* Define if you have the setenv function */
#undef HAVE_SETENV

/* Define if you have the unsetenv function. not on HP-UX */
#undef HAVE_UNSETENV

/* Define if you have the cfsetispeed,cfgetispeed,cfsetspeed,cfgetospeed function */
#undef HAVE_CFSETISPEED
#undef HAVE_CFSETOSPEED

#if HAVE_CFSETISPEED
#  define HAVE_TERMIOS_ISPEED 1
#endif
#if HAVE_CFSETOSPEED
#  define HAVE_TERMIOS_OSPEED 1
#endif
#if defined(HAVE_TERMIOS_ISPEED) && defined(HAVE_TERMIOS_OSPEED)
#  define HAVE_TERMIOS_SPEED 1
#endif

/* Define if you have the OPENSSL_init_ssl function */
#undef HAVE_OPENSSL_INIT_SSL

/* Define if you have the SSL_library_init function */
#undef HAVE_SSL_LIBRARY_INIT

/* Define if you have the SSLv2 client and server method functions. not in new openssl */
#undef HAVE_SSLv2_client_method
#undef HAVE_SSLv2_server_method

/* Define if you have the HAVE_SSL_CTX_set_default_verify_paths function */
#undef HAVE_SSL_CTX_set_default_verify_paths

/* Define if you have the TLS client and server method functions. not in old openssl? */
#undef HAVE_TLS_client_method
#undef HAVE_TLS_server_method

/* Define if you have the SSLv3 client and server method functions. not in new openssl */
#undef HAVE_SSLv3_client_method
#undef HAVE_SSLv3_server_method

/* Define if you have the SSLv3 client and server method functions with rollback to v2 */
#undef HAVE_SSLv23_client_method
#undef HAVE_SSLv23_server_method

/* Define if you have the TLSv1.0 client and server method functions */
#undef HAVE_TLSv1_client_method
#undef HAVE_TLSv1_server_method

/* Define if you have the TLSv1.1 client and server method functions */
#undef HAVE_TLSv1_1_client_method
#undef HAVE_TLSv1_1_server_method

/* Define if you have the TLSv1.2 client and server method functions */
#undef HAVE_TLSv1_2_client_method
#undef HAVE_TLSv1_2_server_method

/* Define if you have the DTLS client and server method functions */
#undef HAVE_DTLS_client_method
#undef HAVE_DTLS_server_method

/* Define if you have the DTLSv1 client and server method functions */
#undef HAVE_DTLSv1_client_method
#undef HAVE_DTLSv1_server_method

/* Define if you have the SSL CTX_set_min_proto_version function/macro */
#undef HAVE_SSL_CTX_set_min_proto_version

/* Define if you have the SSL_CTX_set_max_proto_version function/macro */
#undef HAVE_SSL_CTX_set_max_proto_version

/* Define if you have the DTLSv1_2 client and server method functions */
#undef HAVE_DTLSv1_2_client_method
#undef HAVE_DTLSv1_2_server_method

/* Define if you have the EC_KEY type */
#undef HAVE_TYPE_EC_KEY

/* Define if you have the OpenSSL RAND_egd function */
#undef HAVE_RAND_egd

/* Define if you have the OpenSSL RAND_status function */
#undef HAVE_RAND_status

/* Define if you have the OpenSSL DH_set0_pqg function */
#undef HAVE_DH_set0_pqg

/* Define if you have the OpenSSL ASN1_STRING_get0_data function */
#undef HAVE_ASN1_STRING_get0_data

/* Define if you have the OpenSSL SSL_CTX_clear_mode macro or function */
#undef HAVE_SSL_CTX_clear_mode

/* Define if you have the OpenSSL SSL_set_tlsext_host_name define/function */
#undef HAVE_SSL_set_tlsext_host_name

/* Define if you have the flock function */
#undef HAVE_FLOCK

/* Define if you have the openpty function */
#undef HAVE_OPENPTY

/* Define if you have the grantpt function */
#undef HAVE_GRANTPT

/* Define if you have the unlockpt function */
#undef HAVE_UNLOCKPT

/* Define if you have the ptsname function */
#undef HAVE_PROTOTYPE_LIB_ptsname

/* Define if you have the /dev/ptmx pseudo terminal multiplexer */
#undef HAVE_DEV_PTMX

/* Define if you have the /dev/ptc pseudo terminal multiplexer */
#undef HAVE_DEV_PTC

/* Define if you have the cfmakeraw() function */
#undef HAVE_CFMAKERAW

/* Define if you have the long long type */
#undef HAVE_TYPE_LONGLONG

/* is sig_atomic_t declared */
#undef HAVE_TYPE_SIG_ATOMIC_T

/* is bool already typedef'd? */
#undef HAVE_TYPE_BOOL

/* is socklen_t already typedef'd? */
#undef HAVE_TYPE_SOCKLEN

/* Define if you have the struct stat64 type */
#undef HAVE_TYPE_STAT64

/* Define if you have the struct off64_t type */
#undef HAVE_TYPE_OFF64

/* is sighandler_t already typedef'd? */
#undef HAVE_TYPE_SIGHANDLER

/* is uint8_t already defined? */
#undef HAVE_TYPE_UINT8

/* is uint16_t already defined? */
#undef HAVE_TYPE_UINT16

/* is uint32_t already defined? */
#undef HAVE_TYPE_UINT32

/* is uint64_t already defined? */
#undef HAVE_TYPE_UINT64

/* Define if snprintf() returns required len on truncation (C-99 conform) */
#undef HAVE_C99_SNPRINTF

/* Define if you have the printf "Z" modifier */
#undef HAVE_FORMAT_Z

/* Define the shift offset of the CRDLY mask */
#undef CRDLY_SHIFT

/* Define the shift offset of the TABDLY mask */
#undef TABDLY_SHIFT

/* Define the shift offset of the CSIZE mask */
#undef CSIZE_SHIFT

/* Define if you have tcpwrappers (libwrap, tcpd) and it declares hosts_allow_table */
#undef HAVE_HOSTS_ALLOW_TABLE
#if defined(HAVE_HOSTS_ALLOW_TABLE) && HAVE_HOSTS_ALLOW_TABLE
#   define HAVE_HOSTS_DENY_TABLE 1
#else
#   undef HAVE_HOSTS_DENY_TABLE
#endif

/* 1..short, 3..int, 5..long; 2,4,6..unsigned */
#undef HAVE_BASIC_UINT16_T
#undef HAVE_BASIC_UINT32_T
#undef HAVE_BASIC_UINT64_T
#undef HAVE_BASIC_INT16_T
#undef HAVE_BASIC_INT32_T
#undef HAVE_BASIC_INT64_T

#undef HAVE_BASIC_SIZE_T
#undef HAVE_BASIC_MODE_T
#undef HAVE_BASIC_PID_T
#undef HAVE_BASIC_UID_T
#undef HAVE_BASIC_GID_T
#undef HAVE_BASIC_TIME_T
#undef HAVE_BASIC_OFF_T
#undef HAVE_BASIC_OFF64_T
#undef HAVE_BASIC_DEV_T
#undef HAVE_BASIC_SPEED_T

#undef HAVE_BASIC_SOCKLEN_T

#undef HAVE_TYPEOF_ST_INO
#undef HAVE_TYPEOF_ST_NLINK
#undef HAVE_TYPEOF_ST_SIZE
#undef HAVE_TYPEOF_ST_BLKSIZE
#undef HAVE_TYPEOF_ST_BLOCKS

#undef HAVE_TYPEOF_ST64_DEV
#undef HAVE_TYPEOF_ST64_INO
#undef HAVE_TYPEOF_ST64_NLINK
#undef HAVE_TYPEOF_ST64_SIZE
#undef HAVE_TYPEOF_ST64_BLKSIZE
#undef HAVE_TYPEOF_ST64_BLOCKS

#undef HAVE_TYPEOF_STRUCT_TIMEVAL_TV_USEC
#undef HAVE_TYPEOF_STRUCT_TIMESPEC_TV_NSEC

#undef HAVE_TYPEOF_RLIM_MAX

#undef HAVE_TYPEOF_STRUCT_CMSGHDR_CMSG_LEN

/* Define if you have the /proc filesystem */
#undef HAVE_PROC_DIR

/* Define if you have the /proc/$$/fd directories */
#undef HAVE_PROC_DIR_FD
#undef HAVE_PROC_DIR_PATH

#undef HAVE_SETGRENT
#undef HAVE_GETGRENT
#undef HAVE_ENDGRENT
#undef HAVE_GETGROUPLIST

#undef WITH_HELP
#undef WITH_STDIO
#undef WITH_FDNUM
#undef WITH_FILE
#undef WITH_CREAT
#undef WITH_GOPEN
#undef WITH_TERMIOS
#undef WITH_PIPE
#undef WITH_UNIX
#undef WITH_ABSTRACT_UNIXSOCKET
#undef WITH_IP4
#undef WITH_IP6
#undef WITH_RAWIP
#undef WITH_GENERICSOCKET
#undef WITH_INTERFACE
#undef WITH_TCP
#undef WITH_UDP
#undef WITH_SCTP
#undef WITH_LISTEN
#undef WITH_SOCKS4
#undef WITH_SOCKS4A
#undef WITH_VSOCK
#undef WITH_PROXY
#undef WITH_EXEC
#undef WITH_SYSTEM
#undef WITH_READLINE
#undef WITH_TUN
#undef WITH_PTY
#undef WITH_FS
#undef WITH_OPENSSL
#undef WITH_OPENSSL_METHOD
#undef WITH_RES_DEPRECATED 	/* AAONLY,PRIMARY */
#define WITH_STREAMS 1
#undef WITH_FIPS
#undef OPENSSL_FIPS
#undef WITH_LIBWRAP
#undef HAVE_TCPD_H
#undef HAVE_LIBWRAP

#undef WITH_SYCLS
#undef WITH_FILAN
#undef WITH_RETRY

#undef WITH_MSGLEVEL

#define BUILD_DATE __DATE__ " " __TIME__

#endif /* !defined(__config_h_included) */
