Comparison

mod_firewall/definitions.lib.lua @ 2131:ba42c8882026

mod_firewall: Fix another unprotected use of util.cache
author Matthew Wild <mwild1@gmail.com>
date Fri, 18 Mar 2016 09:59:42 +0000
parent 2130:9239893a2400
child 2370:5fe483b73fd2
comparison
equal deleted inserted replaced
2130:9239893a2400 2131:ba42c8882026
4 4
5 local definition_handlers = {}; 5 local definition_handlers = {};
6 6
7 local set = require"util.set"; 7 local set = require"util.set";
8 local new_throttle = require "util.throttle".create; 8 local new_throttle = require "util.throttle".create;
9 local new_cache = require "util.cache".new;
10 9
11 local multirate_cache_size = module:get_option_number("firewall_multirate_cache_limit", 1000); 10 local multirate_cache_size = module:get_option_number("firewall_multirate_cache_limit", 1000);
12 11
13 function definition_handlers.ZONE(zone_name, zone_members) 12 function definition_handlers.ZONE(zone_name, zone_members)
14 local zone_member_list = {}; 13 local zone_member_list = {};
37 single = function () 36 single = function ()
38 return new_throttle(rate*burst, burst); 37 return new_throttle(rate*burst, burst);
39 end; 38 end;
40 39
41 multi = function () 40 multi = function ()
42 local cache = new_cache(max_throttles, evict_only_unthrottled); 41 local cache = require "util.cache".new(max_throttles, evict_only_unthrottled);
43 return { 42 return {
44 poll_on = function (_, key, amount) 43 poll_on = function (_, key, amount)
45 assert(key, "no key"); 44 assert(key, "no key");
46 local throttle = cache:get(key); 45 local throttle = cache:get(key);
47 if not throttle then 46 if not throttle then
57 end; 56 end;
58 }; 57 };
59 end 58 end
60 59
61 return definition_handlers; 60 return definition_handlers;
61