Browse Source
Remove legacy client and rework build system.
Remove legacy client and rework build system.
--HG-- rename : lib/CMakeLists.txt => src/CMakeLists.txtpull/26/head
10 changed files with 225 additions and 3251 deletions
-
3CMakeLists.txt
-
193lib/CMakeLists.txt
-
1561lib/client/librspamdclient.c
-
158lib/client/librspamdclient.h
-
1179lib/kvstorage/libkvstorageclient.c
-
158lib/kvstorage/libkvstorageclient.h
-
146src/CMakeLists.txt
-
23src/client/CMakeLists.txt
-
23src/client/rspamdclient.c
-
32src/client/rspamdclient.h
@ -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") |
1561
lib/client/librspamdclient.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -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 |
1179
lib/kvstorage/libkvstorageclient.c
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -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") |
@ -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_ */ |
Write
Preview
Loading…
Cancel
Save
Reference in new issue