--HG-- rename : lib/CMakeLists.txt => src/CMakeLists.txttags/0.7.0
@@ -920,8 +920,7 @@ ADD_SUBDIRECTORY(src/json) | |||
ADD_SUBDIRECTORY(src/cdb) | |||
ADD_SUBDIRECTORY(src/ucl) | |||
ADD_SUBDIRECTORY(contrib/http-parser) | |||
ADD_SUBDIRECTORY(lib) | |||
ADD_SUBDIRECTORY(src) | |||
ADD_SUBDIRECTORY(src/client) | |||
ADD_SUBDIRECTORY(utils) |
@@ -1,193 +0,0 @@ | |||
# 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") |
@@ -1,158 +0,0 @@ | |||
#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 |
@@ -1,158 +0,0 @@ | |||
/* 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_ */ |
@@ -0,0 +1,146 @@ | |||
# 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") |
@@ -1,3 +1,26 @@ | |||
# 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 | |||
SET(RSPAMCSRC rspamc.c) | |||
@@ -0,0 +1,23 @@ | |||
/* 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. | |||
*/ | |||
@@ -0,0 +1,32 @@ | |||
/* 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_ */ |