mirror of
https://github.com/rspamd/rspamd.git
synced 2024-09-13 23:56:50 +02:00
486 lines
8.8 KiB
C
486 lines
8.8 KiB
C
#ifndef RSPAMD_CONFIG_H_IN
|
|
#define RSPAMD_CONFIG_H_IN
|
|
|
|
#cmakedefine HAVE_SYS_TYPES_H 1
|
|
|
|
#cmakedefine HAVE_SYS_TIME_H 1
|
|
|
|
#cmakedefine HAVE_SYS_UIO_H 1
|
|
|
|
#cmakedefine HAVE_FCNTL_H 1
|
|
|
|
#cmakedefine HAVE_MATH_H 1
|
|
|
|
#cmakedefine HAVE_STDIO_H 1
|
|
|
|
#cmakedefine HAVE_STDLIB_H 1
|
|
|
|
#cmakedefine HAVE_STRING_H 1
|
|
|
|
#cmakedefine HAVE_STRINGS_H 1
|
|
|
|
#cmakedefine HAVE_TIME_H 1
|
|
|
|
#cmakedefine HAVE_UNISTD_H 1
|
|
|
|
#cmakedefine HAVE_SYSEXITS_H 1
|
|
|
|
#cmakedefine HAVE_STDINT_H 1
|
|
|
|
#cmakedefine HAVE_INTTYPES_H 1
|
|
|
|
#cmakedefine HAVE_STDBOOL_H 1
|
|
|
|
#cmakedefine HAVE_ARPA_INET_H 1
|
|
#cmakedefine HAVE_NETINET_IN_H 1
|
|
|
|
#cmakedefine HAVE_NETDB_H 1
|
|
|
|
#cmakedefine HAVE_POLL_H 1
|
|
|
|
#cmakedefine HAVE_SYSLOG_H 1
|
|
|
|
#cmakedefine HAVE_SIGINFO_H 1
|
|
|
|
#cmakedefine HAVE_LIBUTIL_H 1
|
|
|
|
#cmakedefine HAVE_LIBGEN_H 1
|
|
|
|
#cmakedefine HAVE_SEARCH_H 1
|
|
|
|
#cmakedefine HAVE_LOCALE_H 1
|
|
|
|
#cmakedefine HAVE_GRP_H 1
|
|
#cmakedefine HAVE_PWD_H 1
|
|
|
|
#cmakedefine HAVE_GLOB_H 1
|
|
|
|
#cmakedefine HAVE_ENDIAN_H 1
|
|
#cmakedefine HAVE_SYS_ENDIAN_H 1
|
|
#cmakedefine HAVE_MACHINE_ENDIAN_H 1
|
|
#cmakedefine HAVE_SYS_CDEFS_H 1
|
|
|
|
#cmakedefine LIBEVENT_EVHTTP 1
|
|
|
|
#ifdef HAVE_ENDIAN_H
|
|
#include <endian.h>
|
|
#else
|
|
#ifdef HAVE_SYS_ENDIAN_H
|
|
#include <sys/endian.h>
|
|
#else
|
|
#ifdef HAVE_MACHINE_ENDIAN_H
|
|
#include <machine/endian.h>
|
|
#else
|
|
#define LITTLE_ENDIAN 1234
|
|
#define BIG_ENDIAN 4321
|
|
#if defined(i386) || defined(__i386) || defined(__amd64) || \
|
|
defined(BIT_ZERO_ON_RIGHT) || defined(__x86__)
|
|
#define BYTE_ORDER LITTLE_ENDIAN
|
|
#endif
|
|
|
|
#if defined(__sparc) || defined(__sparc__) || defined(__powerpc__)
|
|
#define BYTE_ORDER BIG_ENDIAN
|
|
#endif
|
|
|
|
#endif /* HAVE_MACHINE_ENDIAN_H */
|
|
#endif /* HAVE_SYS_ENDIAN_H */
|
|
#endif /* HAVE_ENDIAN_H */
|
|
|
|
#if !defined(BYTE_ORDER)
|
|
# error "Undefined or unknown BYTE_ORDER"
|
|
#endif
|
|
|
|
|
|
|
|
#cmakedefine HAVE_SYS_QUEUE_H 1
|
|
#cmakedefine HAVE_SYS_MMAN_H 1
|
|
#cmakedefine HAVE_SYS_SOCKET_H 1
|
|
#cmakedefine HAVE_SYS_UN_H 1
|
|
#cmakedefine HAVE_SYS_STAT_H 1
|
|
#cmakedefine HAVE_SYS_WAIT_H 1
|
|
#cmakedefine HAVE_SYS_PARAM_H 1
|
|
#cmakedefine HAVE_SYS_FILE_H 1
|
|
#cmakedefine HAVE_SYS_RESOURCE_H 1
|
|
#cmakedefine HAVE_SYS_TIMEB_H 1
|
|
#cmakedefine HAVE_SYS_UTSNAME_H 1
|
|
|
|
#cmakedefine HAVE_PIDFILE 1
|
|
|
|
#cmakedefine HAVE_PIDFILE_FILENO 1
|
|
|
|
#cmakedefine HAVE_SETPROCTITLE 1
|
|
|
|
#cmakedefine HAVE_GETPAGESIZE 1
|
|
|
|
#cmakedefine HAVE_NANOSLEEP 1
|
|
|
|
#cmakedefine HAVE_PATH_MAX 1
|
|
|
|
#cmakedefine HAVE_MAXPATHLEN 1
|
|
|
|
#cmakedefine HAVE_MMAP_SHARED 1
|
|
|
|
#cmakedefine HAVE_MMAP_ANON 1
|
|
|
|
#cmakedefine HAVE_MMAP_NOCORE 1
|
|
|
|
#cmakedefine HAVE_O_DIRECT 1
|
|
|
|
#cmakedefine HAVE_FADVISE 1
|
|
|
|
#cmakedefine HAVE_FALLOCATE 1
|
|
#cmakedefine HAVE_POSIX_FALLOCATE 1
|
|
|
|
#cmakedefine HAVE_FDATASYNC 1
|
|
#cmakedefine HAVE_COMPATIBLE_QUEUE_H 1
|
|
|
|
#cmakedefine HAVE_SC_NPROCESSORS_ONLN 1
|
|
|
|
#cmakedefine HAVE_VFORK 1
|
|
|
|
#cmakedefine HAVE_WAIT4 1
|
|
|
|
#cmakedefine HAVE_WAITPID 1
|
|
|
|
#cmakedefine HAVE_FLOCK 1
|
|
|
|
#cmakedefine HAVE_TANHL 1
|
|
#cmakedefine HAVE_TANH 1
|
|
|
|
#cmakedefine HAVE_EXPL 1
|
|
#cmakedefine HAVE_EXP2L 1
|
|
|
|
#cmakedefine HAVE_SA_SIGINFO 1
|
|
|
|
#cmakedefine DEBUG_MODE 1
|
|
|
|
#cmakedefine GMIME24 1
|
|
|
|
#cmakedefine HAVE_CLOCK_VIRTUAL 1
|
|
#cmakedefine HAVE_CLOCK_PROCESS_CPUTIME_ID 1
|
|
|
|
#cmakedefine HAVE_SETITIMER 1
|
|
|
|
#cmakedefine HAVE_INET_PTON 1
|
|
|
|
#define WITHOUT_PERL 1
|
|
|
|
#cmakedefine WITH_LUA 1
|
|
|
|
#cmakedefine WITH_PROFILER 1
|
|
|
|
#cmakedefine WITH_JUDY 1
|
|
|
|
#cmakedefine WITH_DB 1
|
|
|
|
#cmakedefine WITH_SQLITE 1
|
|
|
|
#cmakedefine WITH_GPERF_TOOLS 1
|
|
|
|
#cmakedefine WITH_SYSTEM_HIREDIS 1
|
|
|
|
#cmakedefine HAVE_ASM_PAUSE 1
|
|
|
|
#cmakedefine BUILD_STATIC 1
|
|
|
|
#cmakedefine HAVE_SENDFILE 1
|
|
#cmakedefine HAVE_SYS_SENDFILE_H 1
|
|
#cmakedefine HAVE_SYS_EVENTFD_H 1
|
|
#cmakedefine HAVE_AIO_H 1
|
|
#cmakedefine HAVE_LIBAIO_H 1
|
|
|
|
#cmakedefine HAVE_MKSTEMP 1
|
|
|
|
#cmakedefine HAVE_CLOCK_GETTIME 1
|
|
|
|
#cmakedefine HAVE_OPENSSL 1
|
|
|
|
#cmakedefine GLIB_COMPAT 1
|
|
#cmakedefine GLIB_RE_COMPAT 1
|
|
#cmakedefine GLIB_UNISCRIPT_COMPAT 1
|
|
#cmakedefine GLIB_HASH_COMPAT 1
|
|
#cmakedefine PARAM_H_HAS_BITSET 1
|
|
|
|
#cmakedefine HAVE_FETCH_H 1
|
|
#cmakedefine CURL_FOUND 1
|
|
|
|
#cmakedefine HAVE_READPASSPHRASE_H 1
|
|
#cmakedefine HAVE_TERMIOS_H 1
|
|
|
|
#cmakedefine HAVE_IPV6_V6ONLY 1
|
|
|
|
#cmakedefine HAVE_CTYPE_H 1
|
|
|
|
/* Configure allocator */
|
|
#define uthash_malloc(sz) g_slice_alloc(sz)
|
|
#define uthash_free(ptr,sz) g_slice_free1(sz, ptr)
|
|
|
|
#define RSPAMD_CONFDIR "${CONFDIR}"
|
|
#define RSPAMD_RUNDIR "${RUNDIR}"
|
|
#define RSPAMD_LOGDIR "${LOGDIR}"
|
|
#define RSPAMD_DBDIR "${DBDIR}"
|
|
#define RSPAMD_EXAMPLESDIR "${EXAMPLESDIR}"
|
|
#define RSPAMD_PLUGINSDIR "${PLUGINSDIR}"
|
|
#define RSPAMD_WWWDIR "${WWWDIR}"
|
|
#define RSPAMD_PREFIX "${CMAKE_INSTALL_PREFIX}"
|
|
|
|
#define RVERSION "${RSPAMD_VERSION}"
|
|
#define RID "${RSPAMD_ID}"
|
|
#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
|
|
|
|
/* queue */
|
|
#ifdef HAVE_COMPATIBLE_QUEUE_H
|
|
#ifdef HAVE_SYS_QUEUE_H
|
|
#include <sys/queue.h>
|
|
#endif
|
|
#else
|
|
#include "queue.h"
|
|
#endif
|
|
|
|
/* sys/socket */
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
#include <sys/socket.h>
|
|
#endif
|
|
|
|
/* sys/file.h */
|
|
#ifdef HAVE_SYS_FILE_H
|
|
#include <sys/file.h>
|
|
#endif
|
|
|
|
/* sys/uio.h */
|
|
#ifdef HAVE_SYS_UIO_H
|
|
#include <sys/uio.h>
|
|
#endif
|
|
|
|
/* sys/mman */
|
|
#ifdef HAVE_SYS_MMAN_H
|
|
#include <sys/mman.h>
|
|
#endif
|
|
|
|
/* netinet issues */
|
|
#ifdef HAVE_NETINET_IN_H
|
|
#include <netinet/in.h>
|
|
#endif
|
|
#ifdef HAVE_ARPA_INET_H
|
|
#include <arpa/inet.h>
|
|
#endif
|
|
|
|
/* unix sockets */
|
|
#ifdef HAVE_SYS_UN_H
|
|
#include <sys/un.h>
|
|
#endif
|
|
|
|
/* netdb */
|
|
#ifdef HAVE_NETDB_H
|
|
#include <netdb.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
|
|
|
|
/* timedb */
|
|
#ifdef HAVE_SYS_TIMEB_H
|
|
#include <sys/timeb.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
/* sysexits */
|
|
#ifdef HAVE_SYSEXITS_H
|
|
#include <sysexits.h>
|
|
#endif
|
|
|
|
/* unistd */
|
|
#ifdef HAVE_UNISTD_H
|
|
#include <unistd.h>
|
|
#endif
|
|
|
|
|
|
/* string */
|
|
#ifdef HAVE_STRING_H
|
|
#include <string.h>
|
|
#endif
|
|
|
|
/* strings */
|
|
#ifdef HAVE_STRINGS_H
|
|
#include <strings.h>
|
|
#endif
|
|
|
|
/* fcntl */
|
|
#ifdef HAVE_FCNTL_H
|
|
#include <fcntl.h>
|
|
#endif
|
|
|
|
/* Linux specific falloc.h */
|
|
#ifdef HAVE_LINUX_FALLOC_H
|
|
#include <linux/falloc.h>
|
|
#endif
|
|
|
|
/* poll */
|
|
#ifdef HAVE_POLL_H
|
|
#include <poll.h>
|
|
#endif
|
|
|
|
/* sys/stat */
|
|
#ifdef HAVE_SYS_STAT_H
|
|
#include <sys/stat.h>
|
|
#endif
|
|
|
|
/* sys/wait */
|
|
#ifdef HAVE_SYS_WAIT_H
|
|
#include <sys/wait.h>
|
|
#endif
|
|
|
|
/* sys/resource.h */
|
|
#ifdef HAVE_SYS_RESOURCE_H
|
|
#include <sys/resource.h>
|
|
#endif
|
|
|
|
/* math */
|
|
#ifdef HAVE_MATH_H
|
|
#include <math.h>
|
|
#endif
|
|
|
|
/* libutil */
|
|
#ifdef HAVE_LIBUTIL_H
|
|
#include <libutil.h>
|
|
#endif
|
|
|
|
/* pwd and grp */
|
|
#ifdef HAVE_PWD_H
|
|
#include <pwd.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_GRP_H
|
|
#include <grp.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_GLOB_H
|
|
#include <glob.h>
|
|
#endif
|
|
|
|
/* syslog */
|
|
#ifdef HAVE_SYSLOG_H
|
|
#include <syslog.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_LIBGEN_H
|
|
#include <libgen.h>
|
|
#define HAVE_DIRNAME 1
|
|
#endif
|
|
|
|
#ifdef HAVE_SEARCH_H
|
|
#include <search.h>
|
|
#endif
|
|
|
|
#ifdef WITH_GPERF_TOOLS
|
|
#include <google/profiler.h>
|
|
#endif
|
|
|
|
#include <errno.h>
|
|
#include <signal.h>
|
|
#ifdef HAVE_SIGINFO_H
|
|
# include <siginfo.h>
|
|
#endif
|
|
#include <event.h>
|
|
#if _EVENT_NUMERIC_VERSION > 0x02000000
|
|
# include <event2/thread.h>
|
|
#endif
|
|
#include <glib.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 BUILD_STATIC
|
|
#include <gmodule.h>
|
|
#endif
|
|
|
|
#ifndef NO_GMIME
|
|
#include <gmime/gmime.h>
|
|
#endif
|
|
|
|
/* Forwarded declaration */
|
|
struct module_ctx;
|
|
struct rspamd_config;
|
|
struct rspamd_worker;
|
|
|
|
typedef struct module_s {
|
|
const gchar *name;
|
|
int (*module_init_func)(struct rspamd_config *cfg, struct module_ctx **ctx);
|
|
int (*module_config_func)(struct rspamd_config *cfg);
|
|
int (*module_reconfig_func)(struct rspamd_config *cfg);
|
|
int (*module_attach_controller_func)(struct module_ctx *ctx,
|
|
GHashTable *custom_commands);
|
|
} module_t;
|
|
|
|
typedef struct worker_s {
|
|
const gchar *name;
|
|
gpointer (*worker_init_func)(struct rspamd_config *cfg);
|
|
void (*worker_start_func)(struct rspamd_worker *worker);
|
|
gboolean has_socket;
|
|
gboolean unique;
|
|
gboolean threaded;
|
|
gboolean killable;
|
|
gint listen_type;
|
|
} worker_t;
|
|
|
|
extern module_t *modules[];
|
|
extern worker_t *workers[];
|
|
|
|
#endif
|