util.sasl_cyrus: Protect the call to cyrussasl.server_new properly.
[prosody.git] / core / modulemanager.lua
index 37c5e3828375616772d3c06db863c7755e7b1fe0..1174352b97085e723aa1672ef8d05bba2ef5340c 100644 (file)
@@ -158,7 +158,7 @@ function load(host, module_name, config)
                log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil");
        end
        if success then
-               hosts[host].events.fire_event("module-loaded", { module = module_name, host = host });
+               (hosts[api_instance.host] or prosody).events.fire_event("module-loaded", { module = module_name, host = host });
                return true;
        else -- load failed, unloading
                unload(api_instance.host, module_name);
@@ -210,7 +210,7 @@ function unload(host, name, ...)
                end
        end
        modulemap[host][name] = nil;
-       hosts[host].events.fire_event("module-unloaded", { module = name, host = host });
+       (hosts[host] or prosody).events.fire_event("module-unloaded", { module = name, host = host });
        return true;
 end
 
@@ -398,7 +398,7 @@ function api:require(lib)
                f, n = pluginloader.load_code(lib, lib..".lib.lua");
        end
        if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message
-       setfenv(f, setmetatable({ module = self }, { __index = _G }));
+       setfenv(f, self.environment);
        return f();
 end