X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=prosody;h=b7fb95fe3d3582b45da74206ffd2b03bb29bd475;hb=706f5fd3720e54500b74bdab69e3625f5f29cc72;hp=afff290f657b0ed3bc84733869499c2689299874;hpb=8190848c3f0cfc54ac1636add9057c43fe712754;p=prosody.git diff --git a/prosody b/prosody index afff290f..b7fb95fe 100755 --- a/prosody +++ b/prosody @@ -17,10 +17,13 @@ CFG_DATADIR=os.getenv("PROSODY_DATADIR"); -- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- -- if CFG_SOURCEDIR then - package.path = CFG_SOURCEDIR.."/?.lua;"..package.path - package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath + package.path = CFG_SOURCEDIR.."/?.lua;"..package.path; + package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath; end +package.path = package.path..";"..(CFG_SOURCEDIR or ".").."/fallbacks/?.lua"; +package.cpath = package.cpath..";"..(CFG_SOURCEDIR or ".").."/fallbacks/?.so"; + if CFG_DATADIR then if os.getenv("HOME") then CFG_DATADIR = CFG_DATADIR:gsub("^~", os.getenv("HOME")); @@ -135,8 +138,11 @@ require "util.jid" local data_path = config.get("*", "core", "data_path") or CFG_DATADIR or "data"; require "util.datamanager".set_data_path(data_path); -require "util.datamanager".set_callback(function(username, host, datastore) - return config.get(host, "core", "anonymous_login"); +require "util.datamanager".add_callback(function(username, host, datastore, data) + if config.get(host, "core", "anonymous_login") then + return false; + end + return username, host, datastore, data; end); ----------- End of out-of-place code -------------- @@ -144,8 +150,7 @@ end); -- Function to reload the config file function prosody.reload_config() log("info", "Reloading configuration file"); - eventmanager.fire_event("reloading-config"); - prosody.events.fire_event("reloading-config", {}); + prosody.events.fire_event("reloading-config"); local ok, level, err = config.load((rawget(_G, "CFG_CONFIGDIR") or ".").."/prosody.cfg.lua"); if not ok then if level == "parser" then @@ -160,20 +165,19 @@ end function prosody.reopen_logfiles() log("info", "Re-opening log files"); eventmanager.fire_event("reopen-log-files"); -- Handled by appropriate log sinks - prosody.events.fire_event("reopen-log-files", {}); + prosody.events.fire_event("reopen-log-files"); end -- Function to initiate prosody shutdown function prosody.shutdown(reason) log("info", "Shutting down: %s", reason or "unknown reason"); - eventmanager.fire_event("server-stopping", { reason = reason }); - prosody.events.fire_event("server-stopping", {}); + prosody.events.fire_event("server-stopping", {reason = reason}); server.setquitting(true); end -- Signal to modules that we are ready to start eventmanager.fire_event("server-starting"); -prosody.events.fire_event("server-starting", {}); +prosody.events.fire_event("server-starting"); -- Load SSL settings from config, and create a ctx table local global_ssl_ctx = ssl and config.get("*", "core", "ssl"); @@ -231,7 +235,7 @@ end prosody.lock_globals(); eventmanager.fire_event("server-started"); -prosody.events.fire_event("server-started", {}); +prosody.events.fire_event("server-started"); -- Error handler for errors that make it this far local function catch_uncaught_error(err) @@ -245,7 +249,6 @@ local function catch_uncaught_error(err) log("error", "%s", traceback); end - eventmanager.fire_event("very-bad-error", "*", err, traceback); prosody.events.fire_event("very-bad-error", {error = err, traceback = traceback}); end @@ -254,8 +257,7 @@ while select(2, xpcall(server.loop, catch_uncaught_error)) ~= "quitting" do end log("info", "Shutdown status: Cleaning up"); -eventmanager.fire_event("server-cleanup"); -prosody.events.fire_event("server-cleanup", {}); +prosody.events.fire_event("server-cleanup"); -- Ok, we're quitting I know, but we -- need to do some tidying before we go :) @@ -291,5 +293,5 @@ server.closeall(); server.setquitting(true); eventmanager.fire_event("server-stopped"); -prosody.events.fire_event("server-stopped", {}); +prosody.events.fire_event("server-stopped"); log("info", "Shutdown status: Complete!");