Software / code / prosody
Comparison
core/modulemanager.lua @ 1247:4721e4124692
modulemanager: module:hook now allows global modules to hook events on the prosody.events object
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sun, 31 May 2009 00:51:13 +0500 |
| parent | 1231:6f251813f1e5 |
| child | 1248:9a482f76a20a |
comparison
equal
deleted
inserted
replaced
| 1246:3622ed42b92c | 1247:4721e4124692 |
|---|---|
| 18 local multitable_new = require "util.multitable".new; | 18 local multitable_new = require "util.multitable".new; |
| 19 local register_actions = require "core.actions".register; | 19 local register_actions = require "core.actions".register; |
| 20 local st = require "util.stanza"; | 20 local st = require "util.stanza"; |
| 21 | 21 |
| 22 local hosts = hosts; | 22 local hosts = hosts; |
| 23 local prosody = prosody; | |
| 23 | 24 |
| 24 local loadfile, pcall = loadfile, pcall; | 25 local loadfile, pcall = loadfile, pcall; |
| 25 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; | 26 local setmetatable, setfenv, getfenv = setmetatable, setfenv, getfenv; |
| 26 local pairs, ipairs = pairs, ipairs; | 27 local pairs, ipairs = pairs, ipairs; |
| 27 local t_insert, t_concat = table.insert, table.concat; | 28 local t_insert, t_concat = table.insert, table.concat; |
| 356 | 357 |
| 357 function api:hook(event, handler) | 358 function api:hook(event, handler) |
| 358 if self.host ~= '*' then | 359 if self.host ~= '*' then |
| 359 hosts[self.host].events.add_handler(event, handler); | 360 hosts[self.host].events.add_handler(event, handler); |
| 360 else | 361 else |
| 361 self:log("error", "Global module attempting to hook a host-specific event: %s", event); | 362 prosody.events.add_handler(event, handler); |
| 362 end | 363 end |
| 363 end | 364 end |
| 364 | 365 |
| 365 -------------------------------------------------------------------- | 366 -------------------------------------------------------------------- |
| 366 | 367 |