You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef RSPAMD_CONFIG_H_IN#define RSPAMD_CONFIG_H_IN
#cmakedefine BUILD_STATIC 1#cmakedefine CURL_FOUND 1#cmakedefine DEBUG_MODE 1#cmakedefine GIT_VERSION 1#cmakedefine GLIB_COMPAT 1#cmakedefine GLIB_HASH_COMPAT 1#cmakedefine GLIB_RE_COMPAT 1#cmakedefine GLIB_UNISCRIPT_COMPAT 1#cmakedefine HAVE_AIO_H 1#cmakedefine HAVE_ARPA_INET_H 1#cmakedefine HAVE_ASM_PAUSE 1#cmakedefine HAVE_ATOMIC_BUILTINS 1#cmakedefine HAVE_CLOCK_GETCPUCLOCKID 1#cmakedefine HAVE_CLOCK_GETTIME 1#cmakedefine HAVE_CLOCK_PROCESS_CPUTIME_ID 1#cmakedefine HAVE_CLOCK_VIRTUAL 1#cmakedefine HAVE_COMPATIBLE_QUEUE_H 1#cmakedefine HAVE_CPUID_H 1#cmakedefine HAVE_CTYPE_H 1#cmakedefine HAVE_DIRENT_H 1#cmakedefine HAVE_DIRFD 1#cmakedefine HAVE_ENDIAN_H 1#cmakedefine HAVE_EXP2L 1#cmakedefine HAVE_EXPL 1#cmakedefine HAVE_EXPLICIT_BZERO 1#cmakedefine HAVE_FADVISE 1#cmakedefine HAVE_FALLOCATE 1#cmakedefine HAVE_FCNTL_H 1#cmakedefine HAVE_FDATASYNC 1#cmakedefine HAVE_FETCH_H 1#cmakedefine HAVE_FIPS_MODE 1#cmakedefine HAVE_FLOCK 1#cmakedefine HAVE_FPATHCONF 1#cmakedefine HAVE_GETPAGESIZE 1#cmakedefine HAVE_GET_CPUID 1#cmakedefine HAVE_GLOB_H 1#cmakedefine HAVE_GRP_H 1#cmakedefine HAVE_INET_PTON 1#cmakedefine HAVE_INTTYPES_H 1#cmakedefine HAVE_IPV6_V6ONLY 1#cmakedefine HAVE_LIBAIO_H 1#cmakedefine HAVE_LIBEVENT2 1#cmakedefine HAVE_EVENT_NO_CACHE_TIME_FLAG 1#cmakedefine HAVE_EVENT_NO_CACHE_TIME_FUNC 1#cmakedefine HAVE_LIBGEN_H 1#cmakedefine HAVE_LIBUTIL_H 1#cmakedefine HAVE_LOCALE_H 1#cmakedefine HAVE_MACHINE_ENDIAN_H 1#cmakedefine HAVE_MAXPATHLEN 1#cmakedefine HAVE_FMEMOPEN 1#cmakedefine HAVE_MEMSET_S 1#cmakedefine HAVE_MKSTEMP 1#cmakedefine HAVE_MMAP_ANON 1#cmakedefine HAVE_MMAP_NOCORE 1#cmakedefine HAVE_MMAP_SHARED 1#cmakedefine HAVE_NANOSLEEP 1#cmakedefine HAVE_NETDB_H 1#cmakedefine HAVE_NETINET_IN_H 1#cmakedefine HAVE_NETINET_TCP_H 1#cmakedefine HAVE_NFTW 1#cmakedefine HAVE_OASYNC 1#cmakedefine HAVE_OCLOEXEC 1#cmakedefine HAVE_ONOFOLLOW 1#cmakedefine HAVE_OPENMEMSTREAM 1#cmakedefine HAVE_O_DIRECT 1#cmakedefine HAVE_PATH_MAX 1
/* OSX has broken JIT support in PCRE, disable it */#ifndef __APPLE__#cmakedefine HAVE_PCRE_JIT 1#cmakedefine HAVE_PCRE_JIT_FAST 1#endif
#cmakedefine HAVE_PIDFILE 1#cmakedefine HAVE_PIDFILE_FILENO 1#cmakedefine HAVE_POLL_H 1#cmakedefine HAVE_POSIX_FALLOCATE 1#cmakedefine HAVE_PTHREAD_PROCESS_SHARED 1#cmakedefine HAVE_PWD_H 1#cmakedefine HAVE_RDTSC 1#cmakedefine HAVE_READPASSPHRASE_H 1#cmakedefine HAVE_RECVMMSG 1#cmakedefine HAVE_RUSAGE_SELF 1#cmakedefine HAVE_SA_SIGINFO 1#cmakedefine HAVE_SANE_SHMEM 1#cmakedefine HAVE_SANE_TZSET 1#cmakedefine HAVE_SCHED_YIELD 1#cmakedefine HAVE_SC_NPROCESSORS_ONLN 1#cmakedefine HAVE_SEARCH_H 1#cmakedefine HAVE_SENDFILE 1#cmakedefine HAVE_SETITIMER 1#cmakedefine HAVE_SETPROCTITLE 1#cmakedefine HAVE_SETSIG 1#cmakedefine HAVE_SIGALTSTACK 1#cmakedefine HAVE_SIGINFO_H 1#cmakedefine HAVE_SOCK_SEQPACKET 1#cmakedefine HAVE_SSL_TLSEXT_HOSTNAME 1#cmakedefine HAVE_STDBOOL_H 1#cmakedefine HAVE_STDINT_H 1#cmakedefine HAVE_STDIO_H 1#cmakedefine HAVE_STDLIB_H 1#cmakedefine HAVE_STRINGS_H 1#cmakedefine HAVE_STRING_H 1#cmakedefine HAVE_STROPS_H 1#cmakedefine HAVE_SYSLOG_H 1#cmakedefine HAVE_SYS_CDEFS_H 1#cmakedefine HAVE_SYS_ENDIAN_H 1#cmakedefine HAVE_SYS_EVENTFD_H 1#cmakedefine HAVE_SYS_FILE_H 1#cmakedefine HAVE_SYS_IOCTL_H 1#cmakedefine HAVE_SYS_MMAN_H 1#cmakedefine HAVE_SYS_PARAM_H 1#cmakedefine HAVE_SYS_QUEUE_H 1#cmakedefine HAVE_SYS_RESOURCE_H 1#cmakedefine HAVE_SYS_SENDFILE_H 1#cmakedefine HAVE_SYS_SOCKET_H 1#cmakedefine HAVE_SYS_STAT_H 1#cmakedefine HAVE_SYS_TIMEB_H 1#cmakedefine HAVE_SYS_TIME_H 1#cmakedefine HAVE_SYS_TYPES_H 1#cmakedefine HAVE_SYS_UCONTEXT_H 1#cmakedefine HAVE_SYS_UIO_H 1#cmakedefine HAVE_SYS_UN_H 1#cmakedefine HAVE_SYS_UTSNAME_H 1#cmakedefine HAVE_SYS_WAIT_H 1#cmakedefine HAVE_TANH 1#cmakedefine HAVE_TANHL 1#cmakedefine HAVE_TERMIOS_H 1#cmakedefine HAVE_TIME_H 1#cmakedefine HAVE_UCONTEXT_H 1#cmakedefine HAVE_UNISTD_H 1#cmakedefine HAVE_VFORK 1#cmakedefine HAVE_WAIT4 1#cmakedefine HAVE_WAITPID 1#cmakedefine HAVE_WEAK_SYMBOLS 1#cmakedefine LIBEVENT_EVHTTP 1#cmakedefine PARAM_H_HAS_BITSET 1#cmakedefine WITH_DB 1#cmakedefine WITH_GPERF_TOOLS 1#cmakedefine WITH_HIREDIS 1#cmakedefine WITH_HYPERSCAN 1#cmakedefine WITH_JEMALLOC 1#cmakedefine WITH_LUA 1#cmakedefine WITH_LUAJIT 1#cmakedefine WITH_PCRE2 1#cmakedefine WITH_SNOWBALL 1#cmakedefine WITH_SQLITE 1#cmakedefine WITH_SYSTEM_HIREDIS 1#cmakedefine WITH_TORCH 1#cmakedefine WITH_LIBUNWIND 1#cmakedefine WITH_LUA_TRACE 1#cmakedefine WITH_LUA_REPL 1
#cmakedefine DISABLE_PTHREAD_MUTEX 1
/* Detect endianness */
#ifdef HAVE_ENDIAN_H #include <endian.h>#elif defined(HAVE_SYS_ENDIAN_H) #include <sys/endian.h>#elif defined(HAVE_MACHINE_ENDIAN_H) #include <machine/endian.h>#elif defined(__sun) #include <sys/byteorder.h> #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN 1234 #endif #ifndef BIG_ENDIAN #define BIG_ENDIAN 4321 #endif #ifdef _LITTLE_ENDIAN #define BYTE_ORDER LITTLE_ENDIAN #else #define BYTE_ORDER BIG_ENDIAN #endif#endif
#ifndef BYTE_ORDER
#ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN 1234#endif#ifndef BIG_ENDIAN #define BIG_ENDIAN 4321#endif
#if defined(__BYTE_ORDER) && __BYTE_ORDER == __BIG_ENDIAN || \ defined(__BIG_ENDIAN__) || \ defined(__ARMEB__) || \ defined(__THUMBEB__) || \ defined(__AARCH64EB__) || \ defined(_MIBSEB) || defined(__MIBSEB) || defined(__MIBSEB__)#define BYTE_ORDER BIG_ENDIAN#elif defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN || \ defined(__LITTLE_ENDIAN__) || \ defined(__ARMEL__) || \ defined(__THUMBEL__) || \ defined(__AARCH64EL__) || \ defined(_MIPSEL) || defined(__MIPSEL) || defined(__MIPSEL__)#define BYTE_ORDER LITTLE_ENDIAN#else#error "I don't know what architecture this is!"#endif
#endif /* BYTE_ORDER */
#define RSPAMD_SHAREDIR "${SHAREDIR}"#define RSPAMD_CONFDIR "${CONFDIR}"#define RSPAMD_LOCAL_CONFDIR "${LOCAL_CONFDIR}"#define RSPAMD_RUNDIR "${RUNDIR}"#define RSPAMD_LOGDIR "${LOGDIR}"#define RSPAMD_DBDIR "${DBDIR}"#define RSPAMD_PLUGINSDIR "${PLUGINSDIR}"#define RSPAMD_LUALIBDIR "${LUALIBDIR}"#define RSPAMD_RULESDIR "${RULESDIR}"#define RSPAMD_WWWDIR "${WWWDIR}"#define RSPAMD_PREFIX "${CMAKE_INSTALL_PREFIX}"#define RSPAMD_LIBDIR "${RSPAMD_LIBDIR}"
#define RSPAMD_VERSION_MAJOR "${RSPAMD_VERSION_MAJOR}"#define RSPAMD_VERSION_MINOR "${RSPAMD_VERSION_MINOR}"
#define RSPAMD_VERSION_MAJOR_NUM ${RSPAMD_VERSION_MAJOR_NUM}#define RSPAMD_VERSION_MINOR_NUM ${RSPAMD_VERSION_MINOR_NUM}
#define RSPAMD_VERSION_BRANCH "${RSPAMD_VERSION_MAJOR}"
#if defined(GIT_VERSION) && GIT_VERSION == 1# define RVERSION "${RSPAMD_VERSION}"# define RSPAMD_VERSION_FULL "${RSPAMD_VERSION}_${RSPAMD_ID}"# define RID "${RSPAMD_ID}"# define RSPAMD_VERSION_NUM 0x${RSPAMD_VERSION_MAJOR_NUM}${RSPAMD_VERSION_MINOR_NUM}00${RSPAMD_ID}ULL#else# define RSPAMD_VERSION_FULL "${RSPAMD_VERSION}"# define RVERSION "${RSPAMD_VERSION}"# define RSPAMD_VERSION_NUM 0x${RSPAMD_VERSION_MAJOR_NUM}${RSPAMD_VERSION_MINOR_NUM}000000000ULL# define RID "release"#endif
#define RSPAMD_MASTER_SITE_URL "${RSPAMD_MASTER_SITE_URL}"
#define MODULES_NUM ${RSPAMD_MODULES_NUM}
/* sys/types */#ifdef HAVE_SYS_TYPES_H#include <sys/types.h>#endif
/* cdefs */#ifdef HAVE_SYS_CDEFS_H#include <sys/cdefs.h>#endif
/* sys/param */#ifdef HAVE_SYS_PARAM_H#include <sys/param.h>#endif
/* stdint */#ifdef HAVE_STDINT_H#include <stdint.h>#elif defined(HAVE_INTTYPES_H)#include <inttypes.h>#endif
/* stdbool */#ifdef HAVE_STDBOOL_H#include <stdbool.h>#endif
/* stdlib */#ifdef HAVE_STDLIB_H#include <stdlib.h>#endif
/* stdio */#ifdef HAVE_STDIO_H#include <stdio.h>#endif
/* time */#ifdef HAVE_TIME_H#include <time.h>#endif
#ifdef HAVE_STDLIB_H#include <stdlib.h>#endif
/* string */#ifdef HAVE_STRING_H#include <string.h>#endif
#ifdef HAVE_STRINGS_H#include <strings.h>#endif
#include <errno.h>
#include <glib.h>#include <gmodule.h>
#ifdef GLIB_RE_COMPAT#include "gregex.h"#endif#ifdef GLIB_UNISCRIPT_COMPAT#include "guniscript.h"#endif#ifdef GLIB_COMPAT#include "gchecksum.h"#endif
#if (GLIB_MAJOR_VERSION == 2) && (GLIB_MINOR_VERSION < 14)typedef off_t goffset;#endif
#ifndef PARAM_H_HAS_BITSET/* Bit map related macros. */#ifndef NBBY# define NBBY 8 /* number of bits in a byte */#endif#define setbit(a, \ i) (((unsigned char *)(a))[(i) / NBBY] |= 1 << ((i) % NBBY))#define clrbit(a, \ i) (((unsigned char *)(a))[(i) / NBBY] &= ~(1 << ((i) % NBBY)))#define isset(a,i) \ (((const unsigned char *)(a))[(i) / NBBY] & (1 << ((i) % NBBY)))#define isclr(a,i) \ ((((const unsigned char *)(a))[(i) / NBBY] & (1 << ((i) % NBBY))) == 0)#endif
#ifdef _MSC_VER# define RSPAMD_PACKED(name) \ __pragma(pack(push, 1)) struct name __pragma(pack(pop))#elif defined(__GNUC__)# define RSPAMD_PACKED(name) struct __attribute__((packed)) name#else# define RSPAMD_PACKED(name) struct name#endif
#ifndef RSPAMD_ALIGNED#if defined(_MSC_VER)# define RSPAMD_ALIGNED(x) __declspec(align(x))# define RSPAMD_OPTIMIZE(x)# define RSPAMD_ALWAYS_INLINE#elif defined(__GNUC__)# define RSPAMD_ALIGNED(x) __attribute__((aligned(x)))# define RSPAMD_ALWAYS_INLINE __attribute__((always_inline))#ifndef __clang__# define RSPAMD_OPTIMIZE(x) __attribute__((__optimize__ (x)))#else# define RSPAMD_OPTIMIZE(x)#endif#else# define RSPAMD_ALIGNED(x)# define RSPAMD_OPTIMIZE(x)# define RSPAMD_ALWAYS_INLINE#endif#endif
/* Address sanitizer */#ifdef __clang__# if __has_feature(address_sanitizer)/* emulate gcc's __SANITIZE_ADDRESS__ flag */# define __SANITIZE_ADDRESS__# define RSPAMD_NO_SANITIZE \ __attribute__((no_sanitize("address", "hwaddress")))# else# define RSPAMD_NO_SANITIZE# endif#elif defined(__GNUC__)/* GCC based */# if defined(__has_attribute)# if __has_attribute(__no_sanitize_address__)# define RSPAMD_NO_SANITIZE __attribute__((no_sanitize_address))# else# define RSPAMD_NO_SANITIZE# endif# else# define RSPAMD_NO_SANITIZE# endif#else# define RSPAMD_NO_SANITIZE#endif
#ifndef BITSPERBYTE# define BITSPERBYTE (NBBY * sizeof (char))#endif#ifndef NBYTES# define NBYTES(nbits) (((nbits) + BITSPERBYTE - 1) / BITSPERBYTE)#endif
#ifdef __cplusplusextern "C" {#endifextern uint64_t ottery_rand_uint64(void);#define UCL_RANDOM_FUNCTION ottery_rand_uint64()#ifdef __cplusplus}#endif
/* Disable slab allocator if jemalloc is already in the system */#if defined(WITH_JEMALLOC) || defined(__FreeBSD__) || \ (defined(__NetBSD__) && __NetBSD_Version__ >= 500000000)#if 0 #define g_slice_alloc(sz) g_malloc(sz) #define g_slice_alloc0(sz) g_malloc0(sz) #define g_slice_free1(sz, p) g_free(p)#endif#endif
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) #define RSPAMD_CONSTRUCTOR(f) \ static void f(void) __attribute__((constructor)); \ static void f(void) #define RSPAMD_DESTRUCTOR(f) \ static void f(void) __attribute__((destructor)); \ static void f(void)#else /* In fact, everything else is not supported ¯\_(ツ)_/¯ */ #error incompatible compiler found, need gcc > 2.7 or clang#endif
#ifdef __GNUC__#define RSPAMD_CONST_FUNCTION __attribute__ ((const))#else#define RSPAMD_CONST_FUNCTION#endif
#define HAVE_OPENSSL 1#define HAVE_MATH_H 1
#endif
|