mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
308 lines
7.8 KiB
C
308 lines
7.8 KiB
C
#pragma once
|
|
|
|
/* Old libpcap versions (< 0.6.1) need defining pcap_freecode and
|
|
pcap_compile_nopcap */
|
|
#cmakedefine DONT_HAVE_LIBPCAP_PCAP_FREECODE
|
|
|
|
#cmakedefine DONT_HAVE_LIBPCAP_DLT_LINUX_SLL2
|
|
|
|
/* should explicitly declare socket() and friends */
|
|
#cmakedefine DO_SOCK_DECL
|
|
|
|
/* Define if you have the <getopt.h> header file. */
|
|
#cmakedefine HAVE_GETOPT_H
|
|
|
|
/* Define if you have the `getopt_long' function. */
|
|
#cmakedefine HAVE_GETOPT_LONG
|
|
|
|
/* We are on a Linux system */
|
|
#cmakedefine HAVE_LINUX
|
|
|
|
/* We are on a Mac OS X (Darwin) system */
|
|
#cmakedefine HAVE_DARWIN
|
|
|
|
/* Define if you have the `mallinfo' function. */
|
|
#cmakedefine HAVE_MALLINFO
|
|
|
|
/* Define if you have the `mallinfo2' function. */
|
|
#cmakedefine HAVE_MALLINFO2
|
|
|
|
/* Define if you have the <memory.h> header file. */
|
|
#cmakedefine HAVE_MEMORY_H
|
|
|
|
/* Define if you have the <netinet/ether.h> header file */
|
|
#cmakedefine HAVE_NETINET_ETHER_H
|
|
|
|
/* Define if you have the <netinet/if_ether.h> header file. */
|
|
#cmakedefine HAVE_NETINET_IF_ETHER_H
|
|
|
|
/* Define if you have the <netinet/ip6.h> header file. */
|
|
#cmakedefine HAVE_NETINET_IP6_H
|
|
|
|
/* Define if you have the <net/ethernet.h> header file. */
|
|
#cmakedefine HAVE_NET_ETHERNET_H
|
|
|
|
/* Define if you have the <net/ethertypes.h> header file. */
|
|
#cmakedefine HAVE_NET_ETHERTYPES_H
|
|
|
|
/* have os-proto.h */
|
|
#cmakedefine HAVE_OS_PROTO_H
|
|
|
|
/* Define if you have the <pcap-int.h> header file. */
|
|
#cmakedefine HAVE_PCAP_INT_H
|
|
|
|
/* Define if libpcap supports pcap_dump_open_append(). */
|
|
#cmakedefine HAVE_PCAP_DUMP_OPEN_APPEND
|
|
|
|
/* line editing & history powers */
|
|
#cmakedefine HAVE_READLINE
|
|
|
|
/* Define if you have the `sigaction' function. */
|
|
#cmakedefine HAVE_SIGACTION
|
|
|
|
/* Define if you have the `sigset' function. */
|
|
#cmakedefine HAVE_SIGSET
|
|
|
|
/* Define if you have the `strcasestr' function. */
|
|
#cmakedefine HAVE_STRCASESTR
|
|
|
|
/* Define if you have the `strerror' function. */
|
|
#cmakedefine HAVE_STRERROR
|
|
|
|
/* Define if you have the `strsep' function. */
|
|
#cmakedefine HAVE_STRSEP
|
|
|
|
/* Define if you have the <sys/ethernet.h> header file. */
|
|
#cmakedefine HAVE_SYS_ETHERNET_H
|
|
|
|
/* Include krb5.h */
|
|
#cmakedefine NEED_KRB5_H
|
|
|
|
/* Compatibility for Darwin */
|
|
#cmakedefine NEED_NAMESER_COMPAT_H
|
|
|
|
/* openssl/kdf.h for TLS PRF (key derivation) */
|
|
#cmakedefine OPENSSL_HAVE_KDF_H
|
|
|
|
/* d2i_x509 uses const char** */
|
|
#cmakedefine OPENSSL_D2I_X509_USES_CONST_CHAR
|
|
|
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
|
#define RETSIGTYPE @RETSIGTYPE@
|
|
|
|
/* signal function return value */
|
|
#define RETSIGVAL @RETSIGVAL@
|
|
|
|
/* have sin_len field in sockaddr_in */
|
|
#cmakedefine SIN_LEN
|
|
|
|
/* The size of `long int', as computed by sizeof. */
|
|
#define SIZEOF_LONG_INT @SIZEOF_LONG_INT@
|
|
|
|
/* The size of `long long', as computed by sizeof. */
|
|
#define SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
|
|
|
|
/* The size of `void *', as computed by sizeof. */
|
|
#define SIZEOF_VOID_P @SIZEOF_VOID_P@
|
|
|
|
/* should we declare syslog() and openlog() */
|
|
#cmakedefine SYSLOG_INT
|
|
|
|
/* should we use stub syslog() and openlog() */
|
|
#cmakedefine USE_STUB_SYSLOG
|
|
|
|
/* Define if you have <sys/time.h> */
|
|
#cmakedefine HAVE_SYS_TIME_H
|
|
|
|
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
|
#cmakedefine TIME_WITH_SYS_TIME
|
|
|
|
/* GeoIP geographic lookup functionality */
|
|
#cmakedefine USE_GEOIP
|
|
|
|
/* Define if KRB5 is available */
|
|
#cmakedefine USE_KRB5
|
|
|
|
/* Use Google's perftools */
|
|
#cmakedefine USE_PERFTOOLS_DEBUG
|
|
|
|
/* Use libCurl. */
|
|
#cmakedefine USE_CURL
|
|
|
|
/* Use the DataSeries writer. */
|
|
#cmakedefine USE_DATASERIES
|
|
|
|
/* Use the ElasticSearch writer. */
|
|
#cmakedefine USE_ELASTICSEARCH
|
|
|
|
/* Use the sqlite reader/writer. */
|
|
#cmakedefine USE_SQLITE
|
|
|
|
/* Version number of package */
|
|
#define VERSION "@VERSION@"
|
|
|
|
// Zeek version number.
|
|
// This is the result of (major * 10000 + minor * 100 + patch)
|
|
// For example, 3.1.2 becomes 30102.
|
|
#define ZEEK_VERSION_NUMBER @ZEEK_VERSION_NUMBER@
|
|
|
|
/* whether words are stored with the most significant byte first */
|
|
#cmakedefine WORDS_BIGENDIAN
|
|
|
|
/* whether htonll/ntohll is defined in <arpa/inet.h> */
|
|
#cmakedefine HAVE_BYTEORDER_64
|
|
|
|
/* ultrix can't hack const */
|
|
#cmakedefine NEED_ULTRIX_CONST_HACK
|
|
#ifdef NEED_ULTRIX_CONST_HACK
|
|
#define const
|
|
#endif
|
|
|
|
/* Define int32_t */
|
|
#cmakedefine int32_t @int32_t@
|
|
|
|
/* use sigset() instead of signal() */
|
|
#ifdef HAVE_SIGSET
|
|
#define signal sigset
|
|
#endif
|
|
|
|
/* define to int if socklen_t not available */
|
|
#cmakedefine socklen_t @socklen_t@
|
|
|
|
/* Define u_int16_t */
|
|
#cmakedefine u_int16_t @u_int16_t@
|
|
|
|
/* Define u_int32_t */
|
|
#cmakedefine u_int32_t @u_int32_t@
|
|
|
|
/* Define u_int8_t */
|
|
#cmakedefine u_int8_t @u_int8_t@
|
|
|
|
/* OpenBSD's bpf.h may not declare some data link types, but they're
|
|
used consistently for the same purpose on all platforms. */
|
|
#cmakedefine HAVE_DLT_PPP_SERIAL
|
|
#ifndef HAVE_DLT_PPP_SERIAL
|
|
#define DLT_PPP_SERIAL @DLT_PPP_SERIAL@
|
|
#endif
|
|
|
|
#cmakedefine HAVE_DLT_NFLOG
|
|
#ifndef HAVE_DLT_NFLOG
|
|
#define DLT_NFLOG @DLT_NFLOG@
|
|
#endif
|
|
|
|
#ifndef _MSC_VER
|
|
/* IPv6 Next Header values defined by RFC 3542 */
|
|
#cmakedefine HAVE_IPPROTO_HOPOPTS
|
|
#ifndef HAVE_IPPROTO_HOPOPTS
|
|
#define IPPROTO_HOPOPTS 0
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_IPV6
|
|
#ifndef HAVE_IPPROTO_IPV6
|
|
#define IPPROTO_IPV6 41
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_IPV4
|
|
#ifndef HAVE_IPPROTO_IPV4
|
|
#define IPPROTO_IPV4 4
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_ROUTING
|
|
#ifndef HAVE_IPPROTO_ROUTING
|
|
#define IPPROTO_ROUTING 43
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_FRAGMENT
|
|
#ifndef HAVE_IPPROTO_FRAGMENT
|
|
#define IPPROTO_FRAGMENT 44
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_ESP
|
|
#ifndef HAVE_IPPROTO_ESP
|
|
#define IPPROTO_ESP 50
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_AH
|
|
#ifndef HAVE_IPPROTO_AH
|
|
#define IPPROTO_AH 51
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_ICMPV6
|
|
#ifndef HAVE_IPPROTO_ICMPV6
|
|
#define IPPROTO_ICMPV6 58
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_NONE
|
|
#ifndef HAVE_IPPROTO_NONE
|
|
#define IPPROTO_NONE 59
|
|
#endif
|
|
#cmakedefine HAVE_IPPROTO_DSTOPTS
|
|
#ifndef HAVE_IPPROTO_DSTOPTS
|
|
#define IPPROTO_DSTOPTS 60
|
|
#endif
|
|
#endif
|
|
/* IPv6 options structure defined by RFC 3542 */
|
|
#cmakedefine HAVE_IP6_OPT
|
|
|
|
/* Common IPv6 extension structure */
|
|
#cmakedefine HAVE_IP6_EXT
|
|
|
|
/* String with host architecture (e.g., "linux-x86_64") */
|
|
#define HOST_ARCHITECTURE "@HOST_ARCHITECTURE@"
|
|
|
|
/* String with extension of dynamic libraries (e.g., ".so") */
|
|
#define DYNAMIC_PLUGIN_SUFFIX "@CMAKE_SHARED_MODULE_SUFFIX@"
|
|
|
|
/* True if we're building outside of the main Zeek source code tree. */
|
|
#ifndef ZEEK_PLUGIN_INTERNAL_BUILD
|
|
#define ZEEK_PLUGIN_INTERNAL_BUILD @ZEEK_PLUGIN_INTERNAL_BUILD@
|
|
#endif
|
|
|
|
/* A C function that has the Zeek version encoded into its name. */
|
|
#define ZEEK_VERSION_FUNCTION zeek_version_@VERSION_C_IDENT@
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern const char* ZEEK_VERSION_FUNCTION();
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
// GCC uses __SANITIZE_ADDRESS__, Clang uses __has_feature
|
|
#if defined(__SANITIZE_ADDRESS__)
|
|
#define ZEEK_ASAN
|
|
#endif
|
|
|
|
#if defined(__has_feature)
|
|
#if __has_feature(address_sanitizer)
|
|
#define ZEEK_ASAN
|
|
#endif
|
|
#endif
|
|
|
|
// FreeBSD doesn't support LeakSanitizer
|
|
#if defined(ZEEK_ASAN) && !defined(__FreeBSD__)
|
|
#include <sanitizer/lsan_interface.h>
|
|
#define ZEEK_LSAN_CHECK(x) __lsan_do_leak_check(x)
|
|
#define ZEEK_LSAN_ENABLE(x) __lsan_enable(x)
|
|
#define ZEEK_LSAN_IGNORE(x) __lsan_ignore_object(x)
|
|
#define ZEEK_LSAN_DISABLE(x) __lsan_disable(x)
|
|
#define ZEEK_LSAN_DISABLE_SCOPE(x) __lsan::ScopedDisabler x
|
|
#else
|
|
#define ZEEK_LSAN_CHECK(x)
|
|
#define ZEEK_LSAN_ENABLE(x)
|
|
#define ZEEK_LSAN_IGNORE(x)
|
|
#define ZEEK_LSAN_DISABLE(x)
|
|
#define ZEEK_LSAN_DISABLE_SCOPE(x)
|
|
#endif
|
|
|
|
// This part is dependent on calling configure with '--sanitizers=thread'
|
|
// and not manually setting CFLAGS/CXXFLAGS to include --fsanitize=thread.
|
|
// This is because some of the unit tests only work when built without
|
|
// TSan, at least until SQLite opts to fix their problems with atomics.
|
|
#if defined(__SANITIZE_THREAD__)
|
|
#cmakedefine ZEEK_TSAN
|
|
#endif
|
|
|
|
#if defined(__has_feature)
|
|
#if __has_feature(thread_sanitizer)
|
|
#cmakedefine ZEEK_TSAN
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(ZEEK_TSAN)
|
|
#define ZEEK_DISABLE_TSAN __attribute__((no_sanitize("thread")))
|
|
#else
|
|
#define ZEEK_DISABLE_TSAN
|
|
#endif
|