Software /
code /
prosody-modules
Comparison
mod_audit/mod_audit.lua @ 5754:1bdc6b5979ee
mod_audit: Use new module API for period/time ranges
It was added around the same time as the parse_duration function
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 26 Nov 2023 21:51:12 +0100 |
parent | 5737:c77010f25b14 |
child | 5780:08a635862201 |
comparison
equal
deleted
inserted
replaced
5753:6592c444e85c | 5754:1bdc6b5979ee |
---|---|
1 module:set_global(); | 1 module:set_global(); |
2 | 2 |
3 local time_now = os.time; | 3 local time_now = os.time; |
4 local parse_duration = require "util.human.io".parse_duration; | |
5 local ip = require "util.ip"; | 4 local ip = require "util.ip"; |
6 local st = require "util.stanza"; | 5 local st = require "util.stanza"; |
7 local moduleapi = require "core.moduleapi"; | 6 local moduleapi = require "core.moduleapi"; |
8 | 7 |
9 local host_wide_user = "@"; | 8 local host_wide_user = "@"; |
10 | 9 |
11 local cleanup_after = module:get_option_string("audit_log_expires_after", "28d"); | 10 local cleanup_after = module:get_option_period("audit_log_expires_after", "28d"); |
12 if cleanup_after == "never" then | |
13 cleanup_after = nil; | |
14 else | |
15 cleanup_after = parse_duration(cleanup_after); | |
16 end | |
17 | 11 |
18 local attach_ips = module:get_option_boolean("audit_log_ips", true); | 12 local attach_ips = module:get_option_boolean("audit_log_ips", true); |
19 local attach_ipv4_prefix = module:get_option_number("audit_log_ipv4_prefix", nil); | 13 local attach_ipv4_prefix = module:get_option_number("audit_log_ipv4_prefix", nil); |
20 local attach_ipv6_prefix = module:get_option_number("audit_log_ipv6_prefix", nil); | 14 local attach_ipv6_prefix = module:get_option_number("audit_log_ipv6_prefix", nil); |
21 | 15 |
138 local id, err = store:append(nil, nil, stanza, extra and extra.timestamp or time_now(), user_key); | 132 local id, err = store:append(nil, nil, stanza, extra and extra.timestamp or time_now(), user_key); |
139 if not id then | 133 if not id then |
140 if err == "quota-limit" then | 134 if err == "quota-limit" then |
141 local limit = store.caps and store.caps.quota or 1000; | 135 local limit = store.caps and store.caps.quota or 1000; |
142 local truncate_to = math.floor(limit * 0.99); | 136 local truncate_to = math.floor(limit * 0.99); |
143 if type(cleanup_after) == "number" then | 137 if cleanup_after ~= math.huge then |
144 module:log("debug", "Audit log has reached quota - forcing prune"); | 138 module:log("debug", "Audit log has reached quota - forcing prune"); |
145 if prune_audit_log(host) then | 139 if prune_audit_log(host) then |
146 -- Retry append | 140 -- Retry append |
147 id, err = store:append(nil, nil, stanza, extra and extra.timestamp or time_now(), user_key); | 141 id, err = store:append(nil, nil, stanza, extra and extra.timestamp or time_now(), user_key); |
148 end | 142 end |