25 lines
		
	
	
		
			823 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			823 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local custom_keywords = {
 | |
|   ['customrl'] = {},
 | |
| }
 | |
| 
 | |
| function custom_keywords.customrl.get_value(task)
 | |
|   local rspamd_logger = require "rspamd_logger"
 | |
|   if task:has_symbol('DYN_RL') then
 | |
|     rspamd_logger.infox(rspamd_config, "task has a dynamic ratelimit symbol, processing...")
 | |
|     return "check"
 | |
|   else
 | |
|     rspamd_logger.infox(rspamd_config, "task has no dynamic ratelimit symbol, skipping...")
 | |
|     return
 | |
|   end
 | |
| end
 | |
| function custom_keywords.customrl.get_limit(task)
 | |
|   local rspamd_logger = require "rspamd_logger"
 | |
|   local dyn_rl_symbol = task:get_symbol("DYN_RL")
 | |
|   if dyn_rl_symbol then
 | |
|     local rl_value = dyn_rl_symbol[1].options[1]
 | |
|     rspamd_logger.infox(rspamd_config, "dynamic ratelimit symbol has option %s, returning...", rl_value)
 | |
|     return rl_value
 | |
|   end
 | |
| end
 | |
| -- returning custom keywords
 | |
| return custom_keywords |