-- Will be modified by configure script if run --
-CFG_SOURCEDIR=nil;
+CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR");
CFG_CONFIGDIR=os.getenv("PROSODY_CFGDIR");
-CFG_PLUGINDIR=nil;
+CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR");
CFG_DATADIR=os.getenv("PROSODY_DATADIR");
-- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- --
log("error", "Couldn't read the config file when trying to reload: %s", tostring(err));
end
end
+ return ok, (err and tostring(level)..": "..tostring(err)) or nil;
end
-- Function to reopen logfiles
-- Function to initiate prosody shutdown
function prosody.shutdown(reason)
log("info", "Shutting down: %s", reason or "unknown reason");
+ prosody.shutdown_reason = reason;
prosody.events.fire_event("server-stopping", {reason = reason});
server.setquitting(true);
end
local cl = require "net.connlisteners";
-- start listening on sockets
function net_activate_ports(option, listener, default, conntype)
+ if not cl.get(listener) then return; end
local ports = config.get("*", "core", option.."_ports") or default;
if type(ports) == "number" then ports = {ports} end;
net_activate_ports("s2s", "xmppserver", {5269}, "tcp");
net_activate_ports("component", "xmppcomponent", {}, "tcp");
net_activate_ports("legacy_ssl", "xmppclient", {}, "ssl");
-
- if cl.get("console") then
- cl.start("console", { interface = config.get("*", "core", "console_interface") or "127.0.0.1" })
- end
+ net_activate_ports("console", "console", {5582}, "tcp");
prosody.start_time = os.time();
end
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("system-shutdown");
+ session:close(reason);
end
end
end