#pragma once /* Old libpcap versions (< 0.6.1) need defining pcap_freecode and pcap_compile_nopcap */ #cmakedefine DONT_HAVE_LIBPCAP_PCAP_FREECODE /* should explicitly declare socket() and friends */ #cmakedefine DO_SOCK_DECL /* Define if you have the 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 header file. */ #cmakedefine HAVE_MEMORY_H /* Define if you have the header file */ #cmakedefine HAVE_NETINET_ETHER_H /* Define if you have the header file. */ #cmakedefine HAVE_NETINET_IF_ETHER_H /* Define if you have the header file. */ #cmakedefine HAVE_NETINET_IP6_H /* Define if you have the header file. */ #cmakedefine HAVE_NET_ETHERNET_H /* Define if you have the header file. */ #cmakedefine HAVE_NET_ETHERTYPES_H /* have os-proto.h */ #cmakedefine HAVE_OS_PROTO_H /* Define if you have the header file. */ #cmakedefine HAVE_PCAP_INT_H /* 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 header file. */ #cmakedefine HAVE_SYS_ETHERNET_H /* Some libpcap versions use an extra parameter (error) in pcap_compile_nopcap */ #cmakedefine LIBPCAP_PCAP_COMPILE_NOPCAP_HAS_ERROR_PARAMETER /* Include krb5.h */ #cmakedefine NEED_KRB5_H /* Compatibility for Darwin */ #cmakedefine NEED_NAMESER_COMPAT_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 /* Define if you have */ #cmakedefine HAVE_SYS_TIME_H /* Define if you can safely include both and . */ #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 /* Analyze Mobile IPv6 traffic */ #cmakedefine ENABLE_MOBILE_IPV6 /* Use libCurl. */ #cmakedefine USE_CURL /* Use the DataSeries writer. */ #cmakedefine USE_DATASERIES /* Use the ElasticSearch writer. */ #cmakedefine USE_ELASTICSEARCH /* 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 */ #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 /* 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 /* 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 BRO_VERSION_FUNCTION bro_version_@VERSION_C_IDENT@ #ifdef __cplusplus extern "C" { #endif extern const char* BRO_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 #if defined(ZEEK_ASAN) #include #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 // Note: macros for internal use only during deprecation/namespacing process. // This uses funny VA_ARGS tricks so that we can overload the name and have multiple macros for // varying namespace lengths. #define GET_MACRO(_0, _1, _2, _3, _4, NAME, ...) NAME #define ZEEK_FORWARD_DECLARE_NAMESPACED( ... ) GET_MACRO(_0, ##__VA_ARGS__, ZEEK_FDN_4, ZEEK_FDN_3, ZEEK_FDN_2, ZEEK_FDN_1, ZEEK_FDN_0)(__VA_ARGS__) #define ZEEK_FDN_0() #define ZEEK_FDN_1(cls) #define ZEEK_FDN_2(cls, ns) \ namespace ns { class cls; } #define ZEEK_FDN_3(cls, ns1, ns2) \ namespace ns1::ns2 { class cls; } #define ZEEK_FDN_4(cls, ns1, ns2, ns3) \ namespace ns1::ns2::ns3 { class cls; }