Merge 0.10->trunk
[prosody.git] / prosody
diff --git a/prosody b/prosody
index aab803c5b8c71c16ce616a7b0ccb09ef617f4318..47998583168463b238f6998e038f3a544e18c99b 100755 (executable)
--- a/prosody
+++ b/prosody
@@ -121,6 +121,7 @@ end
 
 function load_libraries()
        -- Load socket framework
+       socket = require "socket";
        server = require "net.server"
 end    
 
@@ -151,13 +152,11 @@ 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)
-                       local name, env = debug.getupvalue(debug.getinfo(f or 1).func, 1);
-                       if name == "_ENV" then
-                               return env;
-                       end
+               local name, env = debug.getupvalue(debug.getinfo(f or 1).func, 1);
+               if name == "_ENV" then
+                       return env;
                end
        end
        function require(...)
@@ -294,6 +293,7 @@ function load_secondary_libraries()
        require "util.import"
        require "util.xmppstream"
        require "core.stanza_router"
+       require "core.statsmanager"
        require "core.hostmanager"
        require "core.portmanager"
        require "core.modulemanager"
@@ -372,8 +372,10 @@ function loop()
                prosody.events.fire_event("very-bad-error", {error = err, traceback = traceback});
        end
        
+       local sleep = require"socket".sleep;
+
        while select(2, xpcall(server.loop, catch_uncaught_error)) ~= "quitting" do
-               socket.sleep(0.2);
+               sleep(0.2);
        end
 end