Comparison

core/modulemanager.lua @ 4893:98ff89ab5d1d

moduleapi, modulemanager: Re-structure module.event_handlers so that the same handler can harmlessly handle multiple events (thanks Zash)
author Matthew Wild <mwild1@gmail.com>
date Fri, 18 May 2012 23:53:02 +0100
parent 4883:b798d59919b1
child 4896:27cda15104f2
comparison
equal deleted inserted replaced
4892:6c8074f47ca4 4893:98ff89ab5d1d
89 if (not ok) and err then 89 if (not ok) and err then
90 log("warn", "Non-fatal error unloading module '%s' on '%s': %s", name, host, err); 90 log("warn", "Non-fatal error unloading module '%s' on '%s': %s", name, host, err);
91 end 91 end
92 end 92 end
93 93
94 for handler, event in pairs(mod.module.event_handlers) do 94 for event, data in pairs(mod.module.event_handlers) do
95 event.object.remove_handler(event.name, handler); 95 data.object.remove_handler(event, data.handler);
96 end 96 end
97 97
98 if mod.module.items then -- remove items 98 if mod.module.items then -- remove items
99 local events = (host == "*" and prosody.events) or hosts[host].events; 99 local events = (host == "*" and prosody.events) or hosts[host].events;
100 for key,t in pairs(mod.module.items) do 100 for key,t in pairs(mod.module.items) do