Software /
code /
prosody
Comparison
plugins/mod_limits.lua @ 11560:3bbb1af92514
Merge 0.11->trunk
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 13 May 2021 11:17:13 +0100 |
parent | 10551:27b275633156 |
parent | 11554:db8e41eb6eff |
child | 11734:c0fc4ca74046 |
comparison
equal
deleted
inserted
replaced
11538:30feeb4d9d0b | 11560:3bbb1af92514 |
---|---|
29 local function parse_burst(burst, sess_type) | 29 local function parse_burst(burst, sess_type) |
30 if type(burst) == "string" then | 30 if type(burst) == "string" then |
31 burst = burst:match("^(%d+) ?s$"); | 31 burst = burst:match("^(%d+) ?s$"); |
32 end | 32 end |
33 local n_burst = tonumber(burst); | 33 local n_burst = tonumber(burst); |
34 if not n_burst then | 34 if burst and not n_burst then |
35 module:log("error", "Unable to parse burst for %s: %q, using default burst interval (%ds)", sess_type, burst, default_burst); | 35 module:log("error", "Unable to parse burst for %s: %q, using default burst interval (%ds)", sess_type, burst, default_burst); |
36 end | 36 end |
37 return n_burst or default_burst; | 37 return n_burst or default_burst; |
38 end | 38 end |
39 | 39 |
40 -- Process config option into limits table: | 40 -- Process config option into limits table: |
41 -- limits = { c2s = { bytes_per_second = X, burst_seconds = Y } } | 41 -- limits = { c2s = { bytes_per_second = X, burst_seconds = Y } } |
42 local limits = {}; | 42 local limits = { |
43 c2s = { | |
44 bytes_per_second = 10 * 1024; | |
45 burst_seconds = 2; | |
46 }; | |
47 s2sin = { | |
48 bytes_per_second = 30 * 1024; | |
49 burst_seconds = 2; | |
50 }; | |
51 }; | |
43 | 52 |
44 for sess_type, sess_limits in pairs(limits_cfg) do | 53 for sess_type, sess_limits in pairs(limits_cfg) do |
45 limits[sess_type] = { | 54 limits[sess_type] = { |
46 bytes_per_second = parse_rate(sess_limits.rate, sess_type); | 55 bytes_per_second = parse_rate(sess_limits.rate, sess_type); |
47 burst_seconds = parse_burst(sess_limits.burst, sess_type); | 56 burst_seconds = parse_burst(sess_limits.burst, sess_type); |