rspamd_config:register_symbol(sym_reg_tbl)
--- Do not sign unless checked
-rspamd_config:register_dependency(settings['sign_symbol'], 'ARC_CHECK')
--- We need to check dmarc before signing as we have to produce valid AAR header
--- see #3613
-rspamd_config:register_dependency(settings['sign_symbol'], 'DMARC_CHECK')
+-- Hard: ARC signing needs arc-seals cache from ARC_CHECK
+rspamd_config:register_dependency(settings['sign_symbol'], 'ARC_CHECK', true)
+-- Hard: ARC signing needs DMARC result for valid AAR header (#3613)
+rspamd_config:register_dependency(settings['sign_symbol'], 'DMARC_CHECK', true)
if settings.adjust_dmarc and settings.whitelisted_signers_map then
local function arc_dmarc_adjust_cb(task)
callback = arc_dmarc_adjust_cb,
type = 'callback',
})
- rspamd_config:register_dependency('ARC_DMARC_ADJUSTMENT', 'DMARC_CHECK')
- rspamd_config:register_dependency('ARC_DMARC_ADJUSTMENT', 'ARC_CHECK')
+ -- Hard: reads both DMARC policy symbols and ARC trusted cache
+ rspamd_config:register_dependency('ARC_DMARC_ADJUSTMENT', 'DMARC_CHECK', true)
+ rspamd_config:register_dependency('ARC_DMARC_ADJUSTMENT', 'ARC_CHECK', true)
end
score = 0.0
}
- rspamd_config:register_dependency('BIMI_CHECK', 'DMARC_CHECK')
+ -- Hard: BIMI requires DMARC pass
+ rspamd_config:register_dependency('BIMI_CHECK', 'DMARC_CHECK', true)
else
lua_util.disable_module(N, "redis")
end
augmentations = { lua_util.dns_timeout_augmentation(rspamd_config) },
})
- rspamd_config:register_dependency('DMARC_MUNGED', 'DMARC_CHECK')
+ -- Hard: without DMARC policy there is nothing to munge
+ rspamd_config:register_dependency('DMARC_MUNGED', 'DMARC_CHECK', true)
-- Weak: signing works without munging, just ensures proper header rewrite order
rspamd_config:register_dependency('DKIM_SIGNED', 'DMARC_MUNGED')
rspamd_config:register_dependency('ARC_SIGNED', 'DMARC_MUNGED')
flags = 'empty,nostat,explicit_disable,ignore_passthrough',
})
--- SETTINGS_APPLY depends on SETTINGS_CHECK (waits for it to finish collecting)
-rspamd_config:register_dependency('SETTINGS_APPLY', 'SETTINGS_CHECK')
+-- Hard dep: SETTINGS_APPLY must wait for SETTINGS_CHECK to finish collecting
+rspamd_config:register_dependency('SETTINGS_APPLY', 'SETTINGS_CHECK', true)
--- Also depend on REDIS_SETTINGS symbols if redis is configured
+-- Also hard-depend on REDIS_SETTINGS symbols if redis is configured
if redis_sym_names then
for _, sym_name in ipairs(redis_sym_names) do
- rspamd_config:register_dependency('SETTINGS_APPLY', sym_name)
+ rspamd_config:register_dependency('SETTINGS_APPLY', sym_name, true)
end
end