Parcourir la source

Remove legacy client and rework build system.

--HG--
rename : lib/CMakeLists.txt => src/CMakeLists.txt
tags/0.7.0
Vsevolod Stakhov il y a 10 ans
Parent
révision
44b9ea9f74

+ 1
- 2
CMakeLists.txt Voir le fichier

@@ -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)

+ 0
- 193
lib/CMakeLists.txt Voir le fichier

@@ -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")

+ 0
- 1561
lib/client/librspamdclient.c
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 158
lib/client/librspamdclient.h Voir le fichier

@@ -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

+ 0
- 1179
lib/kvstorage/libkvstorageclient.c
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 158
lib/kvstorage/libkvstorageclient.h Voir le fichier

@@ -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_ */

+ 146
- 0
src/CMakeLists.txt Voir le fichier

@@ -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")

+ 23
- 0
src/client/CMakeLists.txt Voir le fichier

@@ -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)


+ 23
- 0
src/client/rspamdclient.c Voir le fichier

@@ -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.
*/


+ 32
- 0
src/client/rspamdclient.h Voir le fichier

@@ -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_ */

Chargement…
Annuler
Enregistrer