Merge 0.10->trunk

This commit is contained in:
Matthew Wild 2016-02-01 21:28:07 +00:00
commit 11dcbc505b
3 changed files with 23 additions and 5 deletions

View file

@ -137,10 +137,7 @@ function api:wrap_global(event, handler)
end
function api:require(lib)
local f, n = pluginloader.load_code(self.name, lib..".lib.lua", self.environment);
if not f then
f, n = pluginloader.load_code(lib, lib..".lib.lua", self.environment);
end
local f, n = pluginloader.load_code_ext(self.name, lib, "lib.lua", self.environment);
if not f then error("Failed to load plugin library '"..lib.."', error: "..n); end -- FIXME better error message
return f();
end

View file

@ -55,8 +55,23 @@ local function load_code(plugin, resource, env)
return f, path;
end
local function load_code_ext(plugin, resource, extension, env)
local content, err = load_resource(plugin, resource.."."..extension);
if not content then
content, err = load_resource(resource, resource.."."..extension);
if not content then
return content, err;
end
end
local path = err;
local f, err = envload(content, "@"..path, env);
if not f then return f, err; end
return f, path;
end
return {
load_file = load_file;
load_resource = load_resource;
load_code = load_code;
load_code_ext = load_code_ext;
};

View file

@ -6,7 +6,7 @@
-- COPYING file in the source package for more information.
--
local urandom = assert(io.open("/dev/urandom", "r"));
local urandom, urandom_err = io.open("/dev/urandom", "r");
local function seed()
end
@ -15,6 +15,12 @@ local function bytes(n)
return urandom:read(n);
end
if not urandom then
function bytes()
error("Unable to obtain a secure random number generator, please see https://prosody.im/doc/random ("..urandom_err..")");
end
end
return {
seed = seed;
bytes = bytes;