From 58944df29957ebeee2fcdcbfd829d198c3ffdf20 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 10 Jan 2016 23:51:32 +0000 Subject: [PATCH] Add skeleton of redis cache --- src/libstat/CMakeLists.txt | 6 ++- src/libstat/learn_cache/redis_cache.c | 73 +++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 src/libstat/learn_cache/redis_cache.c diff --git a/src/libstat/CMakeLists.txt b/src/libstat/CMakeLists.txt index 4a1a848bb..11f48bdc0 100644 --- a/src/libstat/CMakeLists.txt +++ b/src/libstat/CMakeLists.txt @@ -9,11 +9,15 @@ SET(CLASSIFIERSSRC ${CMAKE_CURRENT_SOURCE_DIR}/classifiers/bayes.c) SET(BACKENDSSRC ${CMAKE_CURRENT_SOURCE_DIR}/backends/mmaped_file.c ${CMAKE_CURRENT_SOURCE_DIR}/backends/sqlite3_backend.c) +SET(CACHESSRC ${CMAKE_CURRENT_SOURCE_DIR}/learn_cache/sqlite3_cache.c) + IF(ENABLE_HIREDIS MATCHES "ON") SET(BACKENDSSRC ${BACKENDSSRC} ${CMAKE_CURRENT_SOURCE_DIR}/backends/redis_backend.c) + SET(CACHESSRC ${CACHESSRC} + ${CMAKE_CURRENT_SOURCE_DIR}/learn_cache/redis_cache.c) ENDIF(ENABLE_HIREDIS MATCHES "ON") -SET(CACHESSRC ${CMAKE_CURRENT_SOURCE_DIR}/learn_cache/sqlite3_cache.c) + SET(RSPAMD_STAT ${LIBSTATSRC} ${TOKENIZERSSRC} diff --git a/src/libstat/learn_cache/redis_cache.c b/src/libstat/learn_cache/redis_cache.c new file mode 100644 index 000000000..de88936be --- /dev/null +++ b/src/libstat/learn_cache/redis_cache.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2016, 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 BY AUTHOR ''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. + */ + +#include "config.h" +#include "learn_cache.h" +#include "rspamd.h" +#include "stat_api.h" +#include "stat_internal.h" +#include "cryptobox.h" +#include "ucl.h" +#include "hiredis/hiredis.h" +#include "hiredis/adapters/libevent.h" + +gpointer +rspamd_stat_cache_redis_init (struct rspamd_stat_ctx *ctx, + struct rspamd_config *cfg, + struct rspamd_statfile *st, + const ucl_object_t *cf) +{ + return NULL; +} + +gpointer +rspamd_stat_cache_redis_runtime (struct rspamd_task *task, + gpointer ctx) +{ + return NULL; +} + +gint +rspamd_stat_cache_redis_check (struct rspamd_task *task, + gboolean is_spam, + gpointer runtime, + gpointer c) +{ + return RSPAMD_LEARN_OK; +} + +gint +rspamd_stat_cache_redis_learn (struct rspamd_task *task, + gboolean is_spam, + gpointer runtime, + gpointer c) +{ + return RSPAMD_LEARN_OK; +} + +void +rspamd_stat_cache_redis_close (gpointer c) +{ + +} -- 2.39.5