#define DEFAULT_SURBL_WEIGHT 10
#define DEFAULT_REDIRECTOR_READ_TIMEOUT 5.0
#define DEFAULT_SURBL_SYMBOL "SURBL_DNS"
-#define SURBL_OPTION_NOIP (1 << 0)
-#define SURBL_OPTION_RESOLVEIP (1 << 1)
-#define SURBL_OPTION_CHECKIMAGES (1 << 2)
-#define SURBL_OPTION_CHECKDKIM (1 << 3)
-#define SURBL_OPTION_FULLDOMAIN (1 << 4)
+#define SURBL_OPTION_NOIP (1u << 0u)
+#define SURBL_OPTION_RESOLVEIP (1u << 1u)
+#define SURBL_OPTION_CHECKIMAGES (1u << 2u)
+#define SURBL_OPTION_CHECKDKIM (1u << 3u)
+#define SURBL_OPTION_FULLDOMAIN (1u << 4u)
+#define SURBL_OPTION_CHECKEMAILS (1u << 5u)
#define MAX_LEVELS 10
struct surbl_ctx {
(rspamd_mempool_destruct_t )ucl_object_unref,
ropts);
- cur = ucl_object_lookup (cur_rule, "images");
+ cur = ucl_object_lookup_any (cur_rule, "images", "check_images", NULL);
if (cur != NULL && cur->type == UCL_BOOLEAN) {
if (ucl_object_toboolean (cur)) {
new_suffix->options |= SURBL_OPTION_CHECKIMAGES;
}
}
- cur = ucl_object_lookup (cur_rule, "check_dkim");
+ cur = ucl_object_lookup_any (cur_rule, "emails", "check_emails", NULL);
+ if (cur != NULL && cur->type == UCL_BOOLEAN) {
+ if (ucl_object_toboolean (cur)) {
+ new_suffix->options |= SURBL_OPTION_CHECKEMAILS;
+ }
+ }
+
+ cur = ucl_object_lookup_any (cur_rule, "dkim", "check_dkim", NULL);
if (cur != NULL && cur->type == UCL_BOOLEAN) {
if (ucl_object_toboolean (cur)) {
new_suffix->options |= SURBL_OPTION_CHECKDKIM;
rspamd_symcache_item_async_inc (task, item, M);
+ if (suffix->options & SURBL_OPTION_CHECKEMAILS) {
+ g_hash_table_foreach (task->emails, surbl_tree_url_callback, param);
+ }
+
/* We also need to check and process img URLs */
if (suffix->options & SURBL_OPTION_CHECKIMAGES) {
for (i = 0; i < task->text_parts->len; i ++) {