Browse Source

[Minor] Cleanup

tags/3.8.0
Vsevolod Stakhov 4 months ago
parent
commit
5570daed2d
No account linked to committer's email address
1 changed files with 8 additions and 69 deletions
  1. 8
    69
      src/libstat/learn_cache/redis_cache.cxx

+ 8
- 69
src/libstat/learn_cache/redis_cache.cxx View File

@@ -24,12 +24,11 @@
#include "ucl.h"
#include "libmime/message.h"

#define DEFAULT_REDIS_KEY "learned_ids"
#include <memory>

struct rspamd_redis_cache_ctx {
lua_State *L;
struct rspamd_statfile_config *stcf;
std::string redis_object = DEFAULT_REDIS_KEY;
int check_ref = -1;
int learn_ref = -1;

@@ -51,75 +50,15 @@ struct rspamd_redis_cache_ctx {
}
};

#if 0
/* Called when we have checked the specified message id */
static void
rspamd_stat_cache_redis_get(redisAsyncContext *c, gpointer r, gpointer priv)
{
struct rspamd_redis_cache_runtime *rt = priv;
redisReply *reply = r;
struct rspamd_task *task;
glong val = 0;

task = rt->task;

if (c->err == 0) {
if (reply) {
if (G_LIKELY(reply->type == REDIS_REPLY_INTEGER)) {
val = reply->integer;
}
else if (reply->type == REDIS_REPLY_STRING) {
rspamd_strtol(reply->str, reply->len, &val);
}
else {
if (reply->type == REDIS_REPLY_ERROR) {
msg_err_task("cannot learn %s: redis error: \"%s\"",
rt->ctx->stcf->symbol, reply->str);
}
else if (reply->type != REDIS_REPLY_NIL) {
msg_err_task("bad learned type for %s: %d",
rt->ctx->stcf->symbol, reply->type);
}

val = 0;
}
}

if ((val > 0 && (task->flags & RSPAMD_TASK_FLAG_LEARN_SPAM)) ||
(val < 0 && (task->flags & RSPAMD_TASK_FLAG_LEARN_HAM))) {
/* Already learned */
msg_info_task("<%s> has been already "
"learned as %s, ignore it",
MESSAGE_FIELD(task, message_id),
(task->flags & RSPAMD_TASK_FLAG_LEARN_SPAM) ? "spam" : "ham");
task->flags |= RSPAMD_TASK_FLAG_ALREADY_LEARNED;
}
else if (val != 0) {
/* Unlearn flag */
task->flags |= RSPAMD_TASK_FLAG_UNLEARN;
}

rspamd_upstream_ok(rt->selected);
}
else {
rspamd_upstream_fail(rt->selected, FALSE, c->errstr);
}

if (rt->has_event) {
rspamd_session_remove_event(task->s, rspamd_redis_cache_fin, rt);
}
}
#endif

static void
rspamd_stat_cache_redis_generate_id(struct rspamd_task *task)
{
rspamd_cryptobox_hash_state_t st;
rspamd_cryptobox_hash_init(&st, NULL, 0);
rspamd_cryptobox_hash_init(&st, nullptr, 0);

const auto *user = (const char *) rspamd_mempool_get_variable(task->task_pool, "stat_user");
/* Use dedicated hash space for per users cache */
if (user != NULL) {
if (user != nullptr) {
rspamd_cryptobox_hash_update(&st, (const unsigned char *) user, strlen(user));
}

@@ -140,7 +79,7 @@ rspamd_stat_cache_redis_generate_id(struct rspamd_task *task)
if (out_sz > 0) {
/* Zero terminate */
b32out[out_sz] = '\0';
rspamd_mempool_set_variable(task->task_pool, "words_hash", b32out, NULL);
rspamd_mempool_set_variable(task->task_pool, "words_hash", b32out, nullptr);
}
}

@@ -201,8 +140,8 @@ rspamd_stat_cache_redis_runtime(struct rspamd_task *task,
{
auto *ctx = (struct rspamd_redis_cache_ctx *) c;

if (task->tokens == NULL || task->tokens->len == 0) {
return NULL;
if (task->tokens == nullptr || task->tokens->len == 0) {
return nullptr;
}

if (!learn) {
@@ -249,7 +188,7 @@ gint rspamd_stat_cache_redis_check(struct rspamd_task *task,
auto *ctx = (struct rspamd_redis_cache_ctx *) runtime;
auto *h = (char *) rspamd_mempool_get_variable(task->task_pool, "words_hash");

if (h == NULL) {
if (h == nullptr) {
return RSPAMD_LEARN_IGNORE;
}

@@ -286,7 +225,7 @@ gint rspamd_stat_cache_redis_learn(struct rspamd_task *task,
}

auto *h = (char *) rspamd_mempool_get_variable(task->task_pool, "words_hash");
g_assert(h != NULL);
g_assert(h != nullptr);
auto *L = ctx->L;

lua_pushcfunction(L, &rspamd_lua_traceback);

Loading…
Cancel
Save