Merge 0.9->0.10
[prosody.git] / prosody
diff --git a/prosody b/prosody
index 8fcee8e840e45f795f9bd64ed0a22861352c7df4..e8f81d5d6ec6a8144237cd37635a7f142c303ba7 100755 (executable)
--- a/prosody
+++ b/prosody
@@ -151,9 +151,12 @@ function sandbox_require()
        -- for neat sandboxing of modules
        local _realG = _G;
        local _real_require = require;
-       if not getfenv then
+       local getfenv = getfenv or function (f)
                -- FIXME: This is a hack to replace getfenv() in Lua 5.2
-               function getfenv(f) return debug.getupvalue(debug.getinfo(f or 1).func, 1); end
+               local name, env = debug.getupvalue(debug.getinfo(f or 1).func, 1);
+               if name == "_ENV" then
+                       return env;
+               end
        end
        function require(...)
                local curr_env = getfenv(2);