mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
293 lines
7.9 KiB
C
293 lines
7.9 KiB
C
#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 <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 <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
|
|
|
|
/* 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
|
|
|
|
/* 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 <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
|
|
|
|
/* 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 <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
|
|
|
|
/* 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 <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
|
|
|
|
// 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; } \
|
|
using cls [[deprecated("Remove in v4.1. Use " #ns "::" #cls " instead.")]] = ns::cls;
|
|
#define ZEEK_FDN_3(cls, ns1, ns2) \
|
|
namespace ns1::ns2 { class cls; } \
|
|
namespace ns2 { using cls [[deprecated("Remove in v4.1. Use " #ns1 "::" #ns2 "::" #cls " instead.")]] = ns1::ns2::cls; }
|
|
#define ZEEK_FDN_4(cls, ns1, ns2, ns3) \
|
|
namespace ns1::ns2::ns3 { class cls; } \
|
|
namespace ns2 { using cls [[deprecated("Remove in v4.1. Use " #ns1 "::" #ns2 "::" #ns3 "::" #cls " instead.")]] = ns1::ns2::ns3::cls; }
|