util.sasl.*, mod_auth_*, mod_saslauth: Pass SASL handler as first parameter to SASL...
[prosody.git] / prosody
diff --git a/prosody b/prosody
index 517762f3c438d4d7061739f7a8f3ec95e86d3175..07ec2bdbda64e8cf1a87a59028f71c91c01fea35 100755 (executable)
--- a/prosody
+++ b/prosody
@@ -7,6 +7,8 @@
 -- COPYING file in the source package for more information.
 --
 
+-- prosody - main executable for Prosody XMPP server
+
 -- Will be modified by configure script if run --
 
 CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR");
@@ -33,6 +35,12 @@ end
 prosody = { events = require "util.events".new(); };
 local prosody = prosody;
 
+-- Check dependencies
+local dependencies = require "util.dependencies";
+if not dependencies.check_dependencies() then
+       os.exit(1);
+end
+
 -- Load the config-parsing module
 config = require "core.configmanager"
 
@@ -69,9 +77,15 @@ function read_config()
                print("\n");
                print("**************************");
                if level == "parser" then
-                       print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+                       print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua"..":");
+                       print("");
                        local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)");
-                       print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+                       if err:match("chunk has too many syntax levels$") then
+                               print("An Include statement in a config file is including an already-included");
+                               print("file and causing an infinite loop. An Include statement in a config file is...");
+                       else
+                               print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+                       end
                        print("");
                elseif level == "file" then
                        print("Prosody was unable to find the configuration file.");
@@ -97,11 +111,8 @@ function init_logging()
        require "core.loggingmanager"
 end
 
-function check_dependencies()
-       -- Check runtime dependencies
-       if not require "util.dependencies".check_dependencies() then
-               os.exit(1);
-       end
+function log_dependency_warnings()
+       dependencies.log_warnings();
 end
 
 function sandbox_require()
@@ -286,13 +297,16 @@ function load_secondary_libraries()
        --- Load and initialise core modules
        require "util.import"
        require "util.xmppstream"
-       require "core.xmlhandlers"
        require "core.rostermanager"
        require "core.hostmanager"
        require "core.modulemanager"
        require "core.usermanager"
        require "core.sessionmanager"
        require "core.stanza_router"
+       package.loaded['core.componentmanager'] = setmetatable({},{__index=function()
+               log("warn", "componentmanager is deprecated: %s", debug.traceback():match("\n[^\n]*\n[\s\t]*([^\n]*)"));
+               return function() end
+       end});
 
        require "net.http"
        
@@ -326,10 +340,11 @@ function init_data_store()
                end
                return username, host, datastore, data;
        end);
+       require "core.storagemanager";
 end
 
 function prepare_to_start()
-       log("debug", "Prosody is using the %s backend for connection handling", server.get_backend());
+       log("info", "Prosody is using the %s backend for connection handling", server.get_backend());
        -- Signal to modules that we are ready to start
        prosody.events.fire_event("server-starting");
 
@@ -436,13 +451,13 @@ end
 -- previous steps to have already been performed
 read_config();
 init_logging();
-check_dependencies();
 sandbox_require();
 set_function_metatable();
 load_libraries();
 init_global_state();
 read_version();
 log("info", "Hello and welcome to Prosody version %s", prosody.version);
+log_dependency_warnings();
 load_secondary_libraries();
 init_data_store();
 init_global_protection();