util.pubsub: Too many changes to list or split sensibly. Added access control to...
[prosody.git] / prosody
diff --git a/prosody b/prosody
index 3be2e53aa000c2d0789d382b2626f25ce5e7f704..d4bf75781f9ecf39b78bb71a8065b00800e51102 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"
 
@@ -97,11 +105,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()
@@ -163,23 +168,6 @@ function init_global_state()
        prosody.paths = { source = CFG_SOURCEDIR, config = CFG_CONFIGDIR, 
                          plugins = CFG_PLUGINDIR, data = CFG_DATADIR };
        
-       local path_sep = package.config:sub(1,1);
-       local rel_path_start = ".."..path_sep;
-       function prosody.resolve_relative_path(parent_path, path)
-               if path then
-                       local is_relative;
-                       if path_sep == "/" and path:sub(1,1) ~= "/" then
-                               is_relative = true;
-                       elseif path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\") then
-                               is_relative = true;
-                       end
-                       if is_relative then
-                               return parent_path..path_sep..path;
-                       end
-               end
-               return path;
-       end
-       
        prosody.arg = _G.arg;
 
        prosody.platform = "unknown";
@@ -303,13 +291,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"
        
@@ -343,6 +334,7 @@ function init_data_store()
                end
                return username, host, datastore, data;
        end);
+       require "core.storagemanager";
 end
 
 function prepare_to_start()
@@ -453,13 +445,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();