--HG-- rename : lib/CMakeLists.txt => src/CMakeLists.txttags/0.7.0
ADD_SUBDIRECTORY(src/cdb) | ADD_SUBDIRECTORY(src/cdb) | ||||
ADD_SUBDIRECTORY(src/ucl) | ADD_SUBDIRECTORY(src/ucl) | ||||
ADD_SUBDIRECTORY(contrib/http-parser) | ADD_SUBDIRECTORY(contrib/http-parser) | ||||
ADD_SUBDIRECTORY(lib) | |||||
ADD_SUBDIRECTORY(src) | |||||
ADD_SUBDIRECTORY(src/client) | ADD_SUBDIRECTORY(src/client) | ||||
ADD_SUBDIRECTORY(utils) | ADD_SUBDIRECTORY(utils) |
# Librspamdclient | |||||
SET(LIBRSPAMDCLIENTSRC client/librspamdclient.c) | |||||
# Librspamd-util | |||||
SET(LIBRSPAMDUTILSRC ../src/aio_event.c | |||||
../src/bloom.c | |||||
../src/diff.c | |||||
../src/fstring.c | |||||
../src/fuzzy.c | |||||
../src/hash.c | |||||
../src/http.c | |||||
../src/logger.c | |||||
../src/map.c | |||||
../src/memcached.c | |||||
../src/mem_pool.c | |||||
../src/printf.c | |||||
../src/radix.c | |||||
../src/rrd.c | |||||
../src/trie.c | |||||
../src/upstream.c | |||||
../src/util.c) | |||||
# kvstorageclient | |||||
SET(LIBRKVSTORAGESRC kvstorage/libkvstorageclient.c) | |||||
# Librspamdserver | |||||
SET(LIBRSPAMDSERVERSRC | |||||
../src/binlog.c | |||||
../src/buffer.c | |||||
../src/cfg_utils.c | |||||
../src/cfg_rcl.c | |||||
../src/cfg_xml.c | |||||
../src/dkim.c | |||||
../src/dns.c | |||||
../src/dynamic_cfg.c | |||||
../src/events.c | |||||
../src/html.c | |||||
../src/proxy.c | |||||
../src/roll_history.c | |||||
../src/settings.c | |||||
../src/spf.c | |||||
../src/statfile.c | |||||
../src/statfile_sync.c | |||||
../src/symbols_cache.c | |||||
../src/url.c | |||||
../src/view.c) | |||||
# Librspamd mime | |||||
SET(LIBRSPAMDMIMESRC | |||||
../src/expressions.c | |||||
../src/filter.c | |||||
../src/images.c | |||||
../src/message.c | |||||
../src/protocol.c | |||||
../src/smtp_utils.c | |||||
../src/smtp_proto.c | |||||
../src/worker_util.c) | |||||
SET(TOKENIZERSSRC ../src/tokenizers/tokenizers.c | |||||
../src/tokenizers/osb.c) | |||||
SET(CLASSIFIERSSRC ../src/classifiers/classifiers.c | |||||
../src/classifiers/bayes.c | |||||
../src/classifiers/winnow.c) | |||||
# Add targets | |||||
# Rspamdutil | |||||
ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${LIBRSPAMDUTILSRC}) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
TARGET_LINK_LIBRARIES(rspamd-util ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
TARGET_LINK_LIBRARIES(rspamd-util pcre) | |||||
TARGET_LINK_LIBRARIES(rspamd-util rspamd-ucl) | |||||
TARGET_LINK_LIBRARIES(rspamd-util rspamd-http-parser) | |||||
TARGET_LINK_LIBRARIES(rspamd-util event) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
IF(GLIB_COMPAT) | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") | |||||
TARGET_LINK_LIBRARIES(rspamd-util glibadditions) | |||||
ENDIF(GLIB_COMPAT) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-util | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION include) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
# Rspamd client | |||||
IF(NOT DEBIAN_BUILD) | |||||
ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC}) | |||||
ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDCLIENTSRC}) | |||||
SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h") | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
TARGET_LINK_LIBRARIES(rspamdclient rspamd-util) | |||||
TARGET_LINK_LIBRARIES(rspamdclient ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
TARGET_LINK_LIBRARIES(rspamdclient_static rspamd-util) | |||||
TARGET_LINK_LIBRARIES(rspamdclient_static ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
ELSE(NOT DEBIAN_BUILD) | |||||
ADD_LIBRARY(rspamdclient STATIC ${LIBRSPAMDCLIENTSRC}) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
TARGET_LINK_LIBRARIES(rspamdclient rspamd-util) | |||||
TARGET_LINK_LIBRARIES(rspamdclient ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
IF(GLIB_COMPAT) | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") | |||||
TARGET_LINK_LIBRARIES(rspamdclient glibadditions) | |||||
ENDIF(GLIB_COMPAT) | |||||
IF(NOT DEBIAN_BUILD) | |||||
INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR} | |||||
ARCHIVE DESTINATION ${LIBDIR}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
# Librspamd-server | |||||
#IF(WITH_DB) | |||||
# LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_bdb.c) | |||||
#ENDIF(WITH_DB) | |||||
#IF(WITH_SQLITE) | |||||
# LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_sqlite.c) | |||||
#ENDIF(WITH_SQLITE) | |||||
ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC}) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C COMPILE_FLAGS "-DRSPAMD_LIB") | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-json) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-util) | |||||
IF(LIBJUDY_LIBRARY) | |||||
TARGET_LINK_LIBRARIES(rspamd-server Judy) | |||||
ENDIF(LIBJUDY_LIBRARY) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
IF(WITH_DB) | |||||
TARGET_LINK_LIBRARIES(rspamd-server db) | |||||
ENDIF(WITH_DB) | |||||
IF(OPENSSL_FOUND) | |||||
TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES}) | |||||
ENDIF(OPENSSL_FOUND) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-server | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
# Librspamdmime | |||||
ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC}) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB") | |||||
TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server) | |||||
TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-mime | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src") |
#ifndef LIBRSPAMD_CLIENT_H | |||||
#define LIBRSPAMD_CLIENT_H | |||||
#include <glib.h> | |||||
/** | |||||
* Struct for representing symbols | |||||
*/ | |||||
struct rspamd_symbol { | |||||
gchar *name; /**< name */ | |||||
gchar *description; /**< description */ | |||||
double weight; /**< weight */ | |||||
GList *options; /**< List of options (as const gchar *) */ | |||||
}; | |||||
/** | |||||
* Struct for representing metrics | |||||
*/ | |||||
struct rspamd_metric { | |||||
gchar *name; | |||||
gchar *action; | |||||
double score; | |||||
double required_score; | |||||
double reject_score; | |||||
gboolean is_skipped; | |||||
GHashTable *symbols; | |||||
}; | |||||
struct rspamd_connection; | |||||
struct rspamd_client; | |||||
struct in_addr; | |||||
/** | |||||
* Result of scan | |||||
*/ | |||||
struct rspamd_result { | |||||
struct rspamd_connection *conn; | |||||
gboolean is_ok; | |||||
GHashTable *metrics; | |||||
GHashTable *headers; | |||||
}; | |||||
/** | |||||
* Result of controller command | |||||
*/ | |||||
struct rspamd_controller_result { | |||||
struct rspamd_connection *conn; | |||||
const gchar *server_name; | |||||
gint code; | |||||
GString *result; | |||||
GHashTable *headers; | |||||
GString *data; | |||||
}; | |||||
/** | |||||
* Init rspamd client library | |||||
*/ | |||||
struct rspamd_client* rspamd_client_init (void); | |||||
/** | |||||
* Init rspamd client library and bind it | |||||
*/ | |||||
struct rspamd_client* rspamd_client_init_binded (const struct in_addr *local_addr); | |||||
/** | |||||
* Add rspamd server | |||||
*/ | |||||
gboolean rspamd_add_server (struct rspamd_client* client, const gchar *host, | |||||
guint16 port, guint16 controller_port, GError **err); | |||||
/** | |||||
* Set timeouts (values in milliseconds) | |||||
*/ | |||||
void rspamd_set_timeout (struct rspamd_client* client, guint connect_timeout, guint read_timeout); | |||||
/** | |||||
* Scan message from memory | |||||
*/ | |||||
struct rspamd_result * rspamd_scan_memory (struct rspamd_client* client, const guchar *message, gsize length, GHashTable *headers, GError **err); | |||||
/** | |||||
* Scan message from file | |||||
*/ | |||||
struct rspamd_result * rspamd_scan_file (struct rspamd_client* client, const guchar *filename, GHashTable *headers, GError **err); | |||||
/** | |||||
* Scan message from fd | |||||
*/ | |||||
struct rspamd_result * rspamd_scan_fd (struct rspamd_client* client, int fd, GHashTable *headers, GError **err); | |||||
/** | |||||
* Perform a simple controller command on all rspamd servers | |||||
* @param client rspamd client | |||||
* @param command command to send | |||||
* @param password password (NULL if no password required) | |||||
* @param in_headers custom in headers, specific for this command (or NULL) | |||||
* @param err error object (should be pointer to NULL object) | |||||
* @return list of rspamd_controller_result structures for each server | |||||
*/ | |||||
GList* rspamd_controller_command_simple (struct rspamd_client* client, const gchar *command, const gchar *password, | |||||
GHashTable *in_headers, GError **err); | |||||
/** | |||||
* Perform a controller command on all rspamd servers with in memory argument | |||||
* @param client rspamd client | |||||
* @param command command to send | |||||
* @param password password (NULL if no password required) | |||||
* @param in_headers custom in headers, specific for this command (or NULL) | |||||
* @param message data to pass to the controller | |||||
* @param length its length | |||||
* @param err error object (should be pointer to NULL object) | |||||
* @return list of rspamd_controller_result structures for each server | |||||
*/ | |||||
GList* rspamd_controller_command_memory (struct rspamd_client* client, const gchar *command, const gchar *password, | |||||
GHashTable *in_headers, const guchar *message, gsize length, GError **err); | |||||
/** | |||||
* Perform a controller command on all rspamd servers with descriptor argument | |||||
* @param client rspamd client | |||||
* @param command command to send | |||||
* @param password password (NULL if no password required) | |||||
* @param in_headers custom in headers, specific for this command (or NULL) | |||||
* @param fd file descriptor of data | |||||
* @param err error object (should be pointer to NULL object) | |||||
* @return list of rspamd_controller_result structures for each server | |||||
*/ | |||||
GList* rspamd_controller_command_fd (struct rspamd_client* client, const gchar *command, const gchar *password, | |||||
GHashTable *in_headers, gint fd, GError **err); | |||||
/** | |||||
* Perform a controller command on all rspamd servers with descriptor argument | |||||
* @param client rspamd client | |||||
* @param command command to send | |||||
* @param password password (NULL if no password required) | |||||
* @param in_headers custom in headers, specific for this command (or NULL) | |||||
* @param filename filename of data | |||||
* @param err error object (should be pointer to NULL object) | |||||
* @return list of rspamd_controller_result structures for each server | |||||
*/ | |||||
GList* rspamd_controller_command_file (struct rspamd_client* client, const gchar *command, const gchar *password, | |||||
GHashTable *in_headers, const gchar *filename, GError **err); | |||||
/* | |||||
* Free results | |||||
*/ | |||||
void rspamd_free_result (struct rspamd_result *result); | |||||
/* | |||||
* Free controller results | |||||
*/ | |||||
void rspamd_free_controller_result (struct rspamd_controller_result *result); | |||||
/* | |||||
* Close library and free associated resources | |||||
*/ | |||||
void rspamd_client_close (struct rspamd_client *client); | |||||
#endif |
/* Copyright (c) 2010, Vsevolod Stakhov | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions are met: | |||||
* * Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* * Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY | |||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
* DISCLAIMED. IN NO EVENT SHALL Rambler BE LIABLE FOR ANY | |||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
#ifndef LIBKVSTORAGECLIENT_H_ | |||||
#define LIBKVSTORAGECLIENT_H_ | |||||
#include <glib.h> | |||||
#include <sys/time.h> | |||||
/* Errors */ | |||||
enum rspamd_kvstorage_error { | |||||
KVSTORAGE_ERROR_OK = 0, | |||||
KVSTORAGE_ERROR_TIMEOUT, | |||||
KVSTORAGE_ERROR_NOT_FOUND, | |||||
KVSTORAGE_ERROR_NOT_STORED, | |||||
KVSTORAGE_ERROR_EXISTS, | |||||
KVSTORAGE_ERROR_SERVER_ERROR, | |||||
KVSTORAGE_ERROR_CLIENT_ERROR, | |||||
KVSTORAGE_ERROR_INTERNAL_ERROR | |||||
}; | |||||
/* Forwarded definition */ | |||||
struct rspamd_kvstorage_connection; | |||||
/* Callbacks for async API */ | |||||
typedef void (*kvstorage_connect_cb) (enum rspamd_kvstorage_error code, | |||||
struct rspamd_kvstorage_connection *conn, gpointer user_data); | |||||
typedef void (*kvstorage_read_cb) (enum rspamd_kvstorage_error code, const gpointer key, guint keylen, | |||||
const gpointer value, gsize datalen, struct rspamd_kvstorage_connection *conn, | |||||
gpointer user_data); | |||||
typedef void (*kvstorage_write_cb) (enum rspamd_kvstorage_error code, const gpointer key, guint keylen, | |||||
struct rspamd_kvstorage_connection *conn, | |||||
gpointer user_data); | |||||
/* Asynced API */ | |||||
/** | |||||
* Create async connection with rspamd | |||||
* @param host hostname, ip or unix socket for a server | |||||
* @param port port number in host byte order | |||||
* @param tv timeout for operations | |||||
* @param cb callback | |||||
* @param ud user data for callback | |||||
* @param conn target connection | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_connect_async (const gchar *host, | |||||
guint16 port, struct timeval *tv, kvstorage_connect_cb cb, gpointer ud, | |||||
struct rspamd_kvstorage_connection **conn); | |||||
/** | |||||
* Read key asynced | |||||
* @param conn connection structure | |||||
* @param key key to read | |||||
* @param cb callback | |||||
* @param ud user data for callback | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_get_async (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen, kvstorage_read_cb cb, gpointer ud); | |||||
/** | |||||
* Write key asynced | |||||
* @param conn connection structure | |||||
* @param key key to set | |||||
* @param value data to write | |||||
* @param cb callback | |||||
* @param ud user data for callback | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_set_async (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen, const gpointer value, gsize len, guint expire, kvstorage_write_cb cb, gpointer ud); | |||||
/** | |||||
* Delete key asynced | |||||
* @param conn connection structure | |||||
* @param key key to delete | |||||
* @param cb callback | |||||
* @param ud user data for callback | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_delete_async (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen, kvstorage_write_cb cb, gpointer ud); | |||||
/** | |||||
* Close connection | |||||
* @param conn connection structure | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_close_async (struct rspamd_kvstorage_connection *conn); | |||||
/* Synced API */ | |||||
/** | |||||
* Create sync connection with rspamd | |||||
* @param host hostname, ip or unix socket for a server | |||||
* @param port port number in host byte order | |||||
* @param tv timeout for operations | |||||
* @param conn target connection | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_connect_sync (const gchar *host, | |||||
guint16 port, struct timeval *tv, | |||||
struct rspamd_kvstorage_connection **conn); | |||||
/** | |||||
* Read key synced | |||||
* @param conn connection structure | |||||
* @param key key to read | |||||
* @param value value readed | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_get_sync (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen, gpointer **value, guint *len); | |||||
/** | |||||
* Write key synced | |||||
* @param conn connection structure | |||||
* @param key key to set | |||||
* @param value data to write | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_set_sync (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen, const gpointer value, gsize len, guint expire); | |||||
/** | |||||
* Delete key synced | |||||
* @param conn connection structure | |||||
* @param key key to delete | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_delete_sync (struct rspamd_kvstorage_connection *conn, | |||||
const gpointer key, guint keylen); | |||||
/** | |||||
* Close connection | |||||
* @param conn connection structure | |||||
*/ | |||||
enum rspamd_kvstorage_error rspamd_kvstorage_close_sync (struct rspamd_kvstorage_connection *conn); | |||||
/** | |||||
* Convert error code to string | |||||
* @param err error code to be converted | |||||
*/ | |||||
const gchar* rspamd_kvstorage_strerror (enum rspamd_kvstorage_error err); | |||||
#endif /* LIBKVSTORAGECLIENT_H_ */ |
# Librspamd-util | |||||
SET(LIBRSPAMDUTILSRC aio_event.c | |||||
bloom.c | |||||
diff.c | |||||
fstring.c | |||||
fuzzy.c | |||||
hash.c | |||||
http.c | |||||
logger.c | |||||
map.c | |||||
memcached.c | |||||
mem_pool.c | |||||
printf.c | |||||
radix.c | |||||
rrd.c | |||||
trie.c | |||||
upstream.c | |||||
util.c) | |||||
# Librspamdserver | |||||
SET(LIBRSPAMDSERVERSRC | |||||
binlog.c | |||||
buffer.c | |||||
cfg_utils.c | |||||
cfg_rcl.c | |||||
cfg_xml.c | |||||
dkim.c | |||||
dns.c | |||||
dynamic_cfg.c | |||||
events.c | |||||
html.c | |||||
proxy.c | |||||
roll_history.c | |||||
settings.c | |||||
spf.c | |||||
statfile.c | |||||
statfile_sync.c | |||||
symbols_cache.c | |||||
url.c | |||||
view.c) | |||||
# Librspamd mime | |||||
SET(LIBRSPAMDMIMESRC | |||||
expressions.c | |||||
filter.c | |||||
images.c | |||||
message.c | |||||
protocol.c | |||||
smtp_utils.c | |||||
smtp_proto.c | |||||
worker_util.c) | |||||
SET(TOKENIZERSSRC tokenizers/tokenizers.c | |||||
tokenizers/osb.c) | |||||
SET(CLASSIFIERSSRC classifiers/classifiers.c | |||||
classifiers/bayes.c | |||||
classifiers/winnow.c) | |||||
# Add targets | |||||
# Rspamdutil | |||||
ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${LIBRSPAMDUTILSRC}) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
TARGET_LINK_LIBRARIES(rspamd-util ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
TARGET_LINK_LIBRARIES(rspamd-util pcre) | |||||
TARGET_LINK_LIBRARIES(rspamd-util rspamd-ucl) | |||||
TARGET_LINK_LIBRARIES(rspamd-util rspamd-http-parser) | |||||
TARGET_LINK_LIBRARIES(rspamd-util event) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
IF(GLIB_COMPAT) | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") | |||||
TARGET_LINK_LIBRARIES(rspamd-util glibadditions) | |||||
ENDIF(GLIB_COMPAT) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-util | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION include) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
# Librspamd-server | |||||
#IF(WITH_DB) | |||||
# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_bdb.c) | |||||
#ENDIF(WITH_DB) | |||||
#IF(WITH_SQLITE) | |||||
# LIST(APPEND LIBRSPAMDSERVERSRC kvstorage_sqlite.c) | |||||
#ENDIF(WITH_SQLITE) | |||||
ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC}) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C COMPILE_FLAGS "-DRSPAMD_LIB") | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-json) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb) | |||||
TARGET_LINK_LIBRARIES(rspamd-server rspamd-util) | |||||
IF(LIBJUDY_LIBRARY) | |||||
TARGET_LINK_LIBRARIES(rspamd-server Judy) | |||||
ENDIF(LIBJUDY_LIBRARY) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
IF(WITH_DB) | |||||
TARGET_LINK_LIBRARIES(rspamd-server db) | |||||
ENDIF(WITH_DB) | |||||
IF(OPENSSL_FOUND) | |||||
TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES}) | |||||
ENDIF(OPENSSL_FOUND) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-server | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
# Librspamdmime | |||||
ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC}) | |||||
IF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION}) | |||||
ENDIF(NOT DEBIAN_BUILD) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB") | |||||
TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server) | |||||
TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamd-mime | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR}) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src") |
# Librspamdclient | |||||
SET(LIBRSPAMDCLIENTSRC rspamdclient.c) | |||||
ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC}) | |||||
IF(CMAKE_COMPILER_IS_GNUCC) | |||||
SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing") | |||||
ENDIF(CMAKE_COMPILER_IS_GNUCC) | |||||
TARGET_LINK_LIBRARIES(rspamdclient rspamd-util) | |||||
TARGET_LINK_LIBRARIES(rspamdclient ${RSPAMD_REQUIRED_LIBRARIES}) | |||||
IF(GLIB_COMPAT) | |||||
INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl") | |||||
TARGET_LINK_LIBRARIES(rspamdclient glibadditions) | |||||
ENDIF(GLIB_COMPAT) | |||||
IF(NO_SHARED MATCHES "OFF") | |||||
INSTALL(TARGETS rspamdclient LIBRARY PUBLIC_HEADER | |||||
LIBRARY DESTINATION ${LIBDIR} | |||||
PUBLIC_HEADER DESTINATION ${INCLUDEDIR} | |||||
ARCHIVE DESTINATION ${LIBDIR}) | |||||
ENDIF(NO_SHARED MATCHES "OFF") | |||||
# rspamc | # rspamc | ||||
SET(RSPAMCSRC rspamc.c) | SET(RSPAMCSRC rspamc.c) | ||||
/* Copyright (c) 2014, Vsevolod Stakhov | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions are met: | |||||
* * Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* * Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY | |||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
* DISCLAIMED. IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY | |||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
/* Copyright (c) 2014, Vsevolod Stakhov | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions are met: | |||||
* * Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* * Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY | |||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
* DISCLAIMED. IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY | |||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
#ifndef RSPAMDCLIENT_H_ | |||||
#define RSPAMDCLIENT_H_ | |||||
#include "config.h" | |||||
#include "ucl.h" | |||||
#endif /* RSPAMDCLIENT_H_ */ |