configmanager: Fix so unset variables are searched for in the global section
[prosody.git] / prosody
diff --git a/prosody b/prosody
index c1606874a4a6f77da359e1dce9f6e88458161119..5802c348ee68995331e36b9969802ad73ef5a369 100755 (executable)
--- a/prosody
+++ b/prosody
@@ -70,6 +70,8 @@ function read_config()
                if CFG_CONFIGDIR then
                        table.insert(filenames, CFG_CONFIGDIR.."/"..arg[2]);
                end
+       elseif os.getenv("PROSODY_CONFIG") then -- Passed by prosodyctl
+                       table.insert(filenames, os.getenv("PROSODY_CONFIG"));
        else
                for _, format in ipairs(config.parsers()) do
                        table.insert(filenames, (CFG_CONFIGDIR or ".").."/prosody.cfg."..format);
@@ -130,8 +132,8 @@ end
 function sanity_check()
        for host, host_config in pairs(config.getconfig()) do
                if host ~= "*"
-               and host_config.core.enabled ~= false
-               and not host_config.core.component_module then
+               and host_config.enabled ~= false
+               and not host_config.component_module then
                        return;
                end
        end
@@ -196,6 +198,7 @@ function set_function_metatable()
 end
 
 function init_global_state()
+       -- COMPAT: These globals are deprecated
        bare_sessions = {};
        full_sessions = {};
        hosts = {};
@@ -374,43 +377,6 @@ end
 function cleanup()
        log("info", "Shutdown status: Cleaning up");
        prosody.events.fire_event("server-cleanup");
-       
-       -- Ok, we're quitting I know, but we
-       -- need to do some tidying before we go :)
-       server.setquitting(false);
-       
-       log("info", "Shutdown status: Closing all active sessions");
-       for hostname, host in pairs(hosts) do
-               log("debug", "Shutdown status: Closing client connections for %s", hostname)
-               if host.sessions then
-                       local reason = { condition = "system-shutdown", text = "Server is shutting down" };
-                       if prosody.shutdown_reason then
-                               reason.text = reason.text..": "..prosody.shutdown_reason;
-                       end
-                       for username, user in pairs(host.sessions) do
-                               for resource, session in pairs(user.sessions) do
-                                       log("debug", "Closing connection for %s@%s/%s", username, hostname, resource);
-                                       session:close(reason);
-                               end
-                       end
-               end
-       
-               log("debug", "Shutdown status: Closing outgoing s2s connections from %s", hostname);
-               if host.s2sout then
-                       for remotehost, session in pairs(host.s2sout) do
-                               if session.close then
-                                       session:close("system-shutdown");
-                               else
-                                       log("warn", "Unable to close outgoing s2s session to %s, no session:close()?!", remotehost);
-                               end
-                       end
-               end
-       end
-
-       log("info", "Shutdown status: Closing all server connections");
-       server.closeall();
-       
-       server.setquitting(true);
 end
 
 -- Are you ready? :)