From 4ee4827ec25af72c0a8306764b9e41fc38e18fc3 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Fri, 29 Nov 2019 11:52:02 +0000 Subject: [Rework] Move LRU SPF cache from spf plugin --- src/libserver/spf.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/libserver/spf.h') diff --git a/src/libserver/spf.h b/src/libserver/spf.h index 9fcb01d1e..1a0d8bfcf 100644 --- a/src/libserver/spf.h +++ b/src/libserver/spf.h @@ -45,6 +45,7 @@ typedef enum spf_action_e { #define RSPAMD_SPF_FLAG_NA (1u << 9u) #define RSPAMD_SPF_FLAG_PERMFAIL (1u << 10u) #define RSPAMD_SPF_FLAG_RESOLVED (1u << 11u) +#define RSPAMD_SPF_FLAG_CACHED (1u << 12u) /** Default SPF limits for avoiding abuse **/ #define SPF_MAX_NESTING 10 @@ -84,19 +85,26 @@ struct spf_resolved { ref_entry_t ref; /* Refcounting */ }; +struct rspamd_spf_cred { + gchar *local_part; + gchar *domain; + gchar *sender; +}; /* * Resolve spf record for specified task and call a callback after resolution fails/succeed */ -gboolean rspamd_spf_resolve (struct rspamd_task *task, spf_cb_t callback, - gpointer cbdata); +gboolean rspamd_spf_resolve (struct rspamd_task *task, + spf_cb_t callback, + gpointer cbdata, + struct rspamd_spf_cred *cred); /* * Get a domain for spf for specified task */ const gchar *rspamd_spf_get_domain (struct rspamd_task *task); - +struct rspamd_spf_cred *rspamd_spf_get_cred (struct rspamd_task *task); /* * Increase refcount */ -- cgit v1.2.3