prosodyctl, util.prosodyctl: Show error when mod_posix is not enabled and an attempt...
authorMatthew Wild <mwild1@gmail.com>
Tue, 16 Nov 2010 13:30:27 +0000 (13:30 +0000)
committerMatthew Wild <mwild1@gmail.com>
Tue, 16 Nov 2010 13:30:27 +0000 (13:30 +0000)
prosodyctl
util/prosodyctl.lua

index 74dade5f53858bbc2b62fa421bee18c7fc916b90..88cf552ccb251034c5f822906b4597c52a7f256b 100755 (executable)
@@ -160,6 +160,7 @@ local error_messages = setmetatable({
                ["no-such-user"] = "The given user does not exist on the server";
                ["unable-to-save-data"] = "Unable to store, perhaps you don't have permission?";
                ["no-pidfile"] = "There is no 'pidfile' option in the configuration file, see http://prosody.im/doc/prosodyctl#pidfile for help";
+               ["no-posix"] = "The mod_posix module is not enabled in the Prosody config file, see http://prosody.im/doc/prosodyctl for more info";
                ["no-such-method"] = "This module has no commands";
                ["not-running"] = "Prosody is not running";
                }, { __index = function (t,k) return "Error: "..(tostring(k):gsub("%-", " "):gsub("^.", string.upper)); end });
index 7f3ce20e028ac811eeaa9564592f561b9f98783f..f6cb8d7ffd2e598e276b2de29c0bd9daf77a22fd 100644 (file)
@@ -12,6 +12,7 @@ local encodings = require "util.encodings";
 local stringprep = encodings.stringprep;
 local usermanager = require "core.usermanager";
 local signal = require "util.signal";
+local set = require "util.set";
 local lfs = require "lfs";
 
 local nodeprep, nameprep = stringprep.nodeprep, stringprep.nameprep;
@@ -77,6 +78,11 @@ function getpid()
                return false, "no-pidfile";
        end
        
+       local modules_enabled = set.new(config.get("*", "core", "modules_enabled"));
+       if not modules_enabled:contains("posix") then
+               return false, "no-posix";
+       end
+       
        local file, err = io.open(pidfile, "r+");
        if not file then
                return false, "pidfile-read-failed", err;