Mercurial > prosody-hg
comparison util/helpers.lua @ 11200:bf8f2da84007
Merge 0.11->trunk
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 05 Nov 2020 22:31:25 +0100 |
| parents | ad89e3cc67b6 |
| children | d10957394a3c |
comparison
equal
deleted
inserted
replaced
| 11199:6c7c50a4de32 | 11200:bf8f2da84007 |
|---|---|
| 21 name = name or tostring(events); | 21 name = name or tostring(events); |
| 22 function events.fire_event(event, ...) | 22 function events.fire_event(event, ...) |
| 23 logger("debug", "%s firing event: %s", name, event); | 23 logger("debug", "%s firing event: %s", name, event); |
| 24 return f(event, ...); | 24 return f(event, ...); |
| 25 end | 25 end |
| 26 | |
| 27 local function event_handler_hook(handler, event_name, event_data) | |
| 28 logger("debug", "calling handler for %s: %s", event_name, handler); | |
| 29 local ok, ret = pcall(handler, event_data); | |
| 30 if not ok then | |
| 31 logger("error", "error in event handler %s: %s", handler, ret); | |
| 32 error(ret); | |
| 33 end | |
| 34 if ret ~= nil then | |
| 35 logger("debug", "event chain ended for %s by %s with result: %s", event_name, handler, ret); | |
| 36 end | |
| 37 return ret; | |
| 38 end | |
| 39 events.set_debug_hook(event_handler_hook); | |
| 26 events[events.fire_event] = f; | 40 events[events.fire_event] = f; |
| 27 return events; | 41 return events; |
| 28 end | 42 end |
| 29 | 43 |
| 30 local function revert_log_events(events) | 44 local function revert_log_events(events) |
| 31 events.fire_event, events[events.fire_event] = events[events.fire_event], nil; -- :)) | 45 events.fire_event, events[events.fire_event] = events[events.fire_event], nil; -- :)) |
| 46 events.set_debug_hook(nil); | |
| 32 end | 47 end |
| 33 | 48 |
| 34 local function log_host_events(host) | 49 local function log_host_events(host) |
| 35 return log_events(prosody.hosts[host].events, host); | 50 return log_events(prosody.hosts[host].events, host); |
| 36 end | 51 end |
