aboutsummaryrefslogtreecommitdiffstats
path: root/core/moduleapi.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-05-18 23:53:02 +0100
committerMatthew Wild <mwild1@gmail.com>2012-05-18 23:53:02 +0100
commitc7136a5b2cc9e6da35df23c4f4dfa7d0668e5a28 (patch)
tree4b152687bf60b9bb1ea1730f4a09e40a07840d23 /core/moduleapi.lua
parentee999e986754503cb185b1363da0e8200acee9b4 (diff)
downloadprosody-c7136a5b2cc9e6da35df23c4f4dfa7d0668e5a28.tar.gz
prosody-c7136a5b2cc9e6da35df23c4f4dfa7d0668e5a28.zip
moduleapi, modulemanager: Re-structure module.event_handlers so that the same handler can harmlessly handle multiple events (thanks Zash)
Diffstat (limited to 'core/moduleapi.lua')
-rw-r--r--core/moduleapi.lua7
1 files changed, 6 insertions, 1 deletions
diff --git a/core/moduleapi.lua b/core/moduleapi.lua
index 44c84de1..96f1d3ea 100644
--- a/core/moduleapi.lua
+++ b/core/moduleapi.lua
@@ -70,7 +70,12 @@ function api:fire_event(...)
end
function api:hook_object_event(object, event, handler, priority)
- self.event_handlers[handler] = { name = event, priority = priority, object = object };
+ local handlers = self.event_handlers[event];
+ if not handlers then
+ handlers = {};
+ self.event_handlers[event] = handlers;
+ end
+ handlers[event] = { handler = handler, priority = priority, object = object };
return object.add_handler(event, handler, priority);
end