ratelimit.lua 823 B

12345678910111213141516171819202122232425
  1. local custom_keywords = {
  2. ['customrl'] = {},
  3. }
  4. function custom_keywords.customrl.get_value(task)
  5. local rspamd_logger = require "rspamd_logger"
  6. if task:has_symbol('DYN_RL') then
  7. rspamd_logger.infox(rspamd_config, "task has a dynamic ratelimit symbol, processing...")
  8. return "check"
  9. else
  10. rspamd_logger.infox(rspamd_config, "task has no dynamic ratelimit symbol, skipping...")
  11. return
  12. end
  13. end
  14. function custom_keywords.customrl.get_limit(task)
  15. local rspamd_logger = require "rspamd_logger"
  16. local dyn_rl_symbol = task:get_symbol("DYN_RL")
  17. if dyn_rl_symbol then
  18. local rl_value = dyn_rl_symbol[1].options[1]
  19. rspamd_logger.infox(rspamd_config, "dynamic ratelimit symbol has option %s, returning...", rl_value)
  20. return rl_value
  21. end
  22. end
  23. -- returning custom keywords
  24. return custom_keywords