Mercurial > prosody-modules
comparison mod_firewall/conditions.lib.lua @ 2894:165d2877eeac
mod_firewall: Add experimental user-centric persistent marks behind a feature flag
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 24 Feb 2018 21:40:56 +0100 |
| parents | 6f289283feb1 |
| children | b1cdcbcd1c90 |
comparison
equal
deleted
inserted
replaced
| 2893:d958558e0058 | 2894:165d2877eeac |
|---|---|
| 274 return ("(current_timestamp - (session.firewall_marked_%s or 0)) < %d"):format(idsafe(name), tonumber(time)), { "timestamp" }; | 274 return ("(current_timestamp - (session.firewall_marked_%s or 0)) < %d"):format(idsafe(name), tonumber(time)), { "timestamp" }; |
| 275 end | 275 end |
| 276 return ("not not session.firewall_marked_"..idsafe(name)); | 276 return ("not not session.firewall_marked_"..idsafe(name)); |
| 277 end | 277 end |
| 278 | 278 |
| 279 function condition_handlers.USER_MARKED(name_and_time) | |
| 280 local name, time = name_and_time:match("^%s*([%w_]+)%s+%(([^)]+)s%)%s*$"); | |
| 281 if not name then | |
| 282 name = name_and_time:match("^%s*([%w_]+)%s*$"); | |
| 283 end | |
| 284 if not name then | |
| 285 error("Error parsing mark name, see documentation for usage examples"); | |
| 286 end | |
| 287 if time then | |
| 288 return ("(current_timestamp - (session.firewall_marks and session.firewall_marks.%s or 0)) < %d"):format(idsafe(name), tonumber(time)), { "timestamp" }; | |
| 289 end | |
| 290 return ("not not (session.firewall_marks and session.firewall_marks."..idsafe(name)..")"); | |
| 291 end | |
| 292 | |
| 279 function condition_handlers.SENT_DIRECTED_PRESENCE_TO_SENDER() | 293 function condition_handlers.SENT_DIRECTED_PRESENCE_TO_SENDER() |
| 280 return "not not (session.directed and session.directed[from])", { "from" }; | 294 return "not not (session.directed and session.directed[from])", { "from" }; |
| 281 end | 295 end |
| 282 | 296 |
| 283 -- TO FULL JID? | 297 -- TO FULL JID? |
