Software / code / prosody
Comparison
core/modulemanager.lua @ 1987:94ecd3e7be87
modulemanager: Fixed traceback on loading modules on unknown hosts.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Sat, 17 Oct 2009 23:50:09 +0500 |
| parent | 1986:d4ba9d94eb74 |
| child | 1988:a6e7fe0fc3dd |
comparison
equal
deleted
inserted
replaced
| 1986:d4ba9d94eb74 | 1987:94ecd3e7be87 |
|---|---|
| 102 return nil, "insufficient-parameters"; | 102 return nil, "insufficient-parameters"; |
| 103 end | 103 end |
| 104 | 104 |
| 105 if not modulemap[host] then | 105 if not modulemap[host] then |
| 106 modulemap[host] = {}; | 106 modulemap[host] = {}; |
| 107 hosts[host].modules = modulemap[host]; | |
| 108 end | 107 end |
| 109 | 108 |
| 110 if modulemap[host][module_name] then | 109 if modulemap[host][module_name] then |
| 111 log("warn", "%s is already loaded for %s, so not loading again", module_name, host); | 110 log("warn", "%s is already loaded for %s, so not loading again", module_name, host); |
| 112 return nil, "module-already-loaded"; | 111 return nil, "module-already-loaded"; |
| 126 | 125 |
| 127 local pluginenv = setmetatable({ module = api_instance }, { __index = _G }); | 126 local pluginenv = setmetatable({ module = api_instance }, { __index = _G }); |
| 128 | 127 |
| 129 setfenv(mod, pluginenv); | 128 setfenv(mod, pluginenv); |
| 130 if not hosts[host] then hosts[host] = { type = "component", host = host, connected = false, s2sout = {} }; end | 129 if not hosts[host] then hosts[host] = { type = "component", host = host, connected = false, s2sout = {} }; end |
| 130 hosts[host].modules = modulemap[host]; | |
| 131 | 131 |
| 132 local success, ret = pcall(mod); | 132 local success, ret = pcall(mod); |
| 133 if not success then | 133 if not success then |
| 134 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"); |
| 135 return nil, ret; | 135 return nil, ret; |