mod_tls: Only negotiate TLS on outgoing s2s connections if we have an SSL context...
[prosody.git] / prosodyctl
index e095ba398f93029fabd44a0b4c1b1083000811c1..9d2df69ede44490de53a6b36dca856aa04595638 100755 (executable)
@@ -29,9 +29,6 @@ if CFG_DATADIR then
        end
 end
 
--- Required to be able to find packages installed with luarocks
-pcall(require, "luarocks.require")
-
 config = require "core.configmanager"
 
 do
@@ -60,13 +57,21 @@ do
        end
 end
 
+require "core.loggingmanager"
+
+if not require "util.dependencies".check_dependencies() then
+       os.exit(1);
+end
+
+prosody = { hosts = {}, events = events, platform = "posix" };
+
 local data_path = config.get("*", "core", "data_path") or CFG_DATADIR or "data";
 require "util.datamanager".set_data_path(data_path);
 
 -- Switch away from root and into the prosody user --
 local switched_user, current_uid;
 
-local want_pposix_version = "0.3.1";
+local want_pposix_version = "0.3.3";
 local ok, pposix = pcall(require, "util.pposix");
 
 if ok and pposix then
@@ -89,6 +94,9 @@ if ok and pposix then
                        print("Warning: Couldn't switch to Prosody user/group '"..tostring(desired_user).."'/'"..tostring(desired_group).."': "..tostring(err));
                end
        end
+       
+       -- Set our umask to protect data files
+       pposix.umask(config.get("*", "core", "umask") or "027");
 else
        print("Error: Unable to load pposix module. Check that Prosody is installed correctly.")
        print("For more help send the below error to us through http://prosody.im/discuss");
@@ -108,8 +116,7 @@ local error_messages = setmetatable({
 
 local events = require "util.events".new();
 
-hosts = {};
-prosody = { hosts = hosts, events = events };
+hosts = prosody.hosts;
 
 for hostname, config in pairs(config.getconfig()) do
        hosts[hostname] = { events = events };
@@ -332,21 +339,23 @@ function commands.start(arg)
        
        local ok, ret = prosodyctl.start();
        if ok then
-               local i=1;
-               while true do
-                       local ok, running = prosodyctl.isrunning();
-                       if ok and running then
-                               break;
-                       elseif i == 5 then
-                               show_message("Still waiting...");
-                       elseif i >= prosodyctl_timeout then
-                               show_message("Prosody is still not running. Please give it some time or check your log files for errors.");
-                               return 2;
+               if config.get("*", "core", "daemonize") ~= false then
+                       local i=1;
+                       while true do
+                               local ok, running = prosodyctl.isrunning();
+                               if ok and running then
+                                       break;
+                               elseif i == 5 then
+                                       show_message("Still waiting...");
+                               elseif i >= prosodyctl_timeout then
+                                       show_message("Prosody is still not running. Please give it some time or check your log files for errors.");
+                                       return 2;
+                               end
+                               socket.sleep(0.5);
+                               i = i + 1;
                        end
-                       socket.sleep(0.5);
-                       i = i + 1;
+                       show_message("Started");
                end
-               show_message("Started");
                return 0;
        end