From: Vsevolod Stakhov Date: Wed, 15 Aug 2018 11:17:15 +0000 (+0100) Subject: [Feature] Add more ratelimits: by digest, by attachments data, by filenames X-Git-Tag: 1.8.0~259 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=729f6d3df5c1fb31c5e6801ab30474d8e16004f1;p=rspamd.git [Feature] Add more ratelimits: by digest, by attachments data, by filenames --- diff --git a/src/plugins/lua/ratelimit.lua b/src/plugins/lua/ratelimit.lua index c6caf6d41..59f3c0522 100644 --- a/src/plugins/lua/ratelimit.lua +++ b/src/plugins/lua/ratelimit.lua @@ -335,6 +335,48 @@ local keywords = { return task:get_principal_recipient() end, }, + ['digest'] = { + ['get_value'] = function(task) + return task:get_digest() + end, + }, + ['attachments'] = { + ['get_value'] = function(task) + local parts = task:get_parts() or E + local digests = {} + + for _,p in ipairs(parts) do + if p:get_filename() then + table.insert(digests, p:get_digest()) + end + end + + if #digests > 0 then + return table.concat(digests, '') + end + + return nil + end, + }, + ['files'] = { + ['get_value'] = function(task) + local parts = task:get_parts() or E + local files = {} + + for _,p in ipairs(parts) do + local fname = p:get_filename() + if fname then + table.insert(files, fname) + end + end + + if #files > 0 then + return table.concat(files, ':') + end + + return nil + end, + }, } local function gen_rate_key(task, rtype, bucket)