]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Project] Start work on cdb backend
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Oct 2021 14:39:02 +0000 (15:39 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 18 Oct 2021 14:39:02 +0000 (15:39 +0100)
src/libstat/CMakeLists.txt
src/libstat/backends/backends.h
src/libstat/backends/cdb_backend.cxx [new file with mode: 0644]

index 1019a99256294e6d9137e234992a39992549912b..83020a56de62bab6e610b1d01506dec954e43d47 100644 (file)
@@ -9,7 +9,8 @@ SET(CLASSIFIERSSRC      ${CMAKE_CURRENT_SOURCE_DIR}/classifiers/bayes.c
                                        ${CMAKE_CURRENT_SOURCE_DIR}/classifiers/lua_classifier.c)
 
 SET(BACKENDSSRC        ${CMAKE_CURRENT_SOURCE_DIR}/backends/mmaped_file.c
-                                       ${CMAKE_CURRENT_SOURCE_DIR}/backends/sqlite3_backend.c)
+                                       ${CMAKE_CURRENT_SOURCE_DIR}/backends/sqlite3_backend.c
+                                       ${CMAKE_CURRENT_SOURCE_DIR}/backends/cdb_backend.cxx)
 SET(CACHESSRC  ${CMAKE_CURRENT_SOURCE_DIR}/learn_cache/sqlite3_cache.c)
 
 SET(BACKENDSSRC        ${BACKENDSSRC}
index fa378554025d53c9a1a451349a9da3bfc569288e..7b61093bbb6367c94981cc37b6cead8845c78f4f 100644 (file)
@@ -112,8 +112,8 @@ struct rspamd_stat_backend {
         void rspamd_##name##_close (gpointer ctx)
 
 RSPAMD_STAT_BACKEND_DEF(mmaped_file);
-
 RSPAMD_STAT_BACKEND_DEF(sqlite3);
+RSPAMD_STAT_BACKEND_DEF(cdb);
 
 #ifdef WITH_HIREDIS
 
diff --git a/src/libstat/backends/cdb_backend.cxx b/src/libstat/backends/cdb_backend.cxx
new file mode 100644 (file)
index 0000000..a36876a
--- /dev/null
@@ -0,0 +1,118 @@
+/*-
+ * Copyright 2021 Vsevolod Stakhov
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * CDB read only statistics backend
+ */
+
+#include "config.h"
+#include "stat_internal.h"
+#include "contrib/cdb/cdb.h"
+
+namespace rspamd::stat::cdb {
+
+}
+
+/* C exports */
+gpointer
+rspamd_cdb_init(struct rspamd_stat_ctx* ctx,
+                                                struct rspamd_config* cfg,
+                                                struct rspamd_statfile* st)
+{
+       return nullptr;
+}
+gpointer
+rspamd_cdb_runtime(struct rspamd_task* task,
+                                                       struct rspamd_statfile_config* stcf,
+                                                       gboolean learn,
+                                                       gpointer ctx)
+{
+       return nullptr;
+}
+gboolean
+rspamd_cdb_process_tokens(struct rspamd_task* task,
+                                                                  GPtrArray* tokens,
+                                                                  gint id,
+                                                                  gpointer ctx)
+{
+       return false;
+}
+gboolean
+rspamd_cdb_finalize_process(struct rspamd_task* task,
+                                                                        gpointer runtime,
+                                                                        gpointer ctx)
+{
+       return false;
+}
+gboolean
+rspamd_cdb_learn_tokens(struct rspamd_task* task,
+                                                                GPtrArray* tokens,
+                                                                gint id,
+                                                                gpointer ctx)
+{
+       return false;
+}
+gboolean
+rspamd_cdb_finalize_learn(struct rspamd_task* task,
+                                                                  gpointer runtime,
+                                                                  gpointer ctx,
+                                                                  GError** err)
+{
+       return false;
+}
+
+gulong rspamd_cdb_total_learns(struct rspamd_task* task,
+                                                          gpointer runtime,
+                                                          gpointer ctx)
+{
+       return 0;
+}
+gulong
+rspamd_cdb_inc_learns(struct rspamd_task* task,
+                                                        gpointer runtime,
+                                                        gpointer ctx)
+{
+       return (gulong)-1;
+}
+gulong
+rspamd_cdb_dec_learns(struct rspamd_task* task,
+                                                        gpointer runtime,
+                                                        gpointer ctx)
+{
+       return (gulong)-1;
+}
+gulong
+rspamd_cdb_learns(struct rspamd_task* task,
+                                                gpointer runtime,
+                                                gpointer ctx)
+{
+       return 0;
+}
+ucl_object_t*
+rspamd_cdb_get_stat(gpointer runtime, gpointer ctx)
+{
+       return nullptr;
+}
+gpointer
+rspamd_cdb_load_tokenizer_config(gpointer runtime, gsize* len)
+{
+       return nullptr;
+}
+void
+rspamd_cdb_close(gpointer ctx)
+{
+
+}
\ No newline at end of file