Mercurial > prosody-modules
comparison mod_firewall/definitions.lib.lua @ 2130:9239893a2400
mod_firewall: Don't use util.cache unless it's needed, and add explanatory error if it is not available
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 18 Mar 2016 09:57:09 +0000 |
parents | 21bc4d7cddae |
children | ba42c8882026 |
comparison
equal
deleted
inserted
replaced
2129:26334f4a8eb9 | 2130:9239893a2400 |
---|---|
31 function definition_handlers.RATE(name, line) | 31 function definition_handlers.RATE(name, line) |
32 local rate = assert(tonumber(line:match("([%d.]+)")), "Unable to parse rate"); | 32 local rate = assert(tonumber(line:match("([%d.]+)")), "Unable to parse rate"); |
33 local burst = tonumber(line:match("%(%s*burst%s+([%d.]+)%s*%)")) or 1; | 33 local burst = tonumber(line:match("%(%s*burst%s+([%d.]+)%s*%)")) or 1; |
34 local max_throttles = tonumber(line:match("%(%s*entries%s+([%d]+)%s*%)")) or multirate_cache_size; | 34 local max_throttles = tonumber(line:match("%(%s*entries%s+([%d]+)%s*%)")) or multirate_cache_size; |
35 | 35 |
36 local cache = new_cache(max_throttles, evict_only_unthrottled); | |
37 | |
38 return { | 36 return { |
39 single = function () | 37 single = function () |
40 return new_throttle(rate*burst, burst); | 38 return new_throttle(rate*burst, burst); |
41 end; | 39 end; |
42 | 40 |
43 multi = function () | 41 multi = function () |
42 local cache = new_cache(max_throttles, evict_only_unthrottled); | |
44 return { | 43 return { |
45 poll_on = function (_, key, amount) | 44 poll_on = function (_, key, amount) |
46 assert(key, "no key"); | 45 assert(key, "no key"); |
47 local throttle = cache:get(key); | 46 local throttle = cache:get(key); |
48 if not throttle then | 47 if not throttle then |