X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=prosody;h=e7457627ad6098e34648c756d41d57034b94e53c;hb=d5dc0b2214487f5989b8107f104b86f77a1bee4d;hp=d11e463d31ed1f26a387d7684b2226c6fb763629;hpb=779deb48bfec8e492c91b472e671aff1e7db6bd1;p=prosody.git diff --git a/prosody b/prosody index d11e463d..e7457627 100755 --- a/prosody +++ b/prosody @@ -9,9 +9,9 @@ -- 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"); -- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- -- @@ -93,6 +93,17 @@ function init_global_state() prosody.events = require "util.events".new(); + prosody.platform = "unknown"; + if os.getenv("WINDIR") then + prosody.platform = "windows"; + elseif package.config:sub(1,1) == "/" then + prosody.platform = "posix"; + end + + prosody.installed = nil; + if CFG_SOURCEDIR and (prosody.platform == "windows" or CFG_SOURCEDIR:match("^/")) then + prosody.installed = true; + end -- Function to reload the config file function prosody.reload_config() @@ -106,6 +117,7 @@ function init_global_state() 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 @@ -118,6 +130,7 @@ function init_global_state() -- 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 @@ -193,6 +206,7 @@ function prepare_to_start() 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; @@ -220,10 +234,7 @@ function prepare_to_start() 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 @@ -277,10 +288,14 @@ function cleanup() 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