Software / code / prosody
Comparison
core/modulemanager.lua @ 1394:2ebed659b958
Automated merge with http://waqas.ath.cx:8000/
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 23 Jun 2009 15:58:56 +0100 |
| parent | 1393:576143941a76 |
| parent | 1389:846df07536eb |
| child | 1447:cc20d6dfa32d |
comparison
equal
deleted
inserted
replaced
| 1393:576143941a76 | 1394:2ebed659b958 |
|---|---|
| 36 -- We need this to let modules access the real global namespace | 36 -- We need this to let modules access the real global namespace |
| 37 local _G = _G; | 37 local _G = _G; |
| 38 | 38 |
| 39 module "modulemanager" | 39 module "modulemanager" |
| 40 | 40 |
| 41 local api = {}; -- Module API container | 41 api = {}; |
| 42 local api = api; -- Module API container | |
| 42 | 43 |
| 43 local modulemap = { ["*"] = {} }; | 44 local modulemap = { ["*"] = {} }; |
| 44 | 45 |
| 45 local stanza_handlers = multitable_new(); | 46 local stanza_handlers = multitable_new(); |
| 46 local handler_info = {}; | 47 local handler_info = {}; |
| 132 if not success then | 133 if not success then |
| 133 log("error", "Error initialising module '%s': %s", module_name or "nil", ret or "nil"); | 134 log("error", "Error initialising module '%s': %s", module_name or "nil", ret or "nil"); |
| 134 return nil, ret; | 135 return nil, ret; |
| 135 end | 136 end |
| 136 | 137 |
| 138 if module_has_method(pluginenv, "load") then | |
| 139 local ok, err = call_module_method(pluginenv, "load"); | |
| 140 if (not ok) and err then | |
| 141 log("warn", "Error loading module '%s' on '%s': %s", module_name, host, err); | |
| 142 end | |
| 143 end | |
| 144 | |
| 137 -- Use modified host, if the module set one | 145 -- Use modified host, if the module set one |
| 138 modulemap[api_instance.host][module_name] = pluginenv; | 146 modulemap[api_instance.host][module_name] = pluginenv; |
| 139 | 147 |
| 140 if api_instance.host == "*" and host ~= "*" then | 148 if api_instance.host == "*" and host ~= "*" then |
| 141 api_instance:set_global(); | 149 api_instance:set_global(); |
| 188 local mod = get_module(host, name); | 196 local mod = get_module(host, name); |
| 189 if not mod then return nil, "module-not-loaded"; end | 197 if not mod then return nil, "module-not-loaded"; end |
| 190 | 198 |
| 191 local _mod, err = pluginloader.load_code(name); -- checking for syntax errors | 199 local _mod, err = pluginloader.load_code(name); -- checking for syntax errors |
| 192 if not _mod then | 200 if not _mod then |
| 193 log("error", "Unable to load module '%s': %s", module_name or "nil", err or "nil"); | 201 log("error", "Unable to load module '%s': %s", name or "nil", err or "nil"); |
| 194 return nil, err; | 202 return nil, err; |
| 195 end | 203 end |
| 196 | 204 |
| 197 local saved; | 205 local saved; |
| 198 | 206 |