Mercurial > prosody-hg
comparison plugins/mod_posix.lua @ 1712:45a81d6d8777
Merge waqas with Tobias. Eww.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Tue, 18 Aug 2009 13:03:35 +0100 |
| parents | 883cf1f516a0 e9b589dae393 |
| children | 72784ce0c0e0 |
comparison
equal
deleted
inserted
replaced
| 1686:232c2bf155c7 | 1712:45a81d6d8777 |
|---|---|
| 15 local signal = select(2, pcall(require, "util.signal")); | 15 local signal = select(2, pcall(require, "util.signal")); |
| 16 if type(signal) == "string" then | 16 if type(signal) == "string" then |
| 17 module:log("warn", "Couldn't load signal library, won't respond to SIGTERM"); | 17 module:log("warn", "Couldn't load signal library, won't respond to SIGTERM"); |
| 18 end | 18 end |
| 19 | 19 |
| 20 local config_get = require "core.configmanager".get; | |
| 21 local logger_set = require "util.logger".setwriter; | 20 local logger_set = require "util.logger".setwriter; |
| 22 | 21 |
| 23 local prosody = _G.prosody; | 22 local prosody = _G.prosody; |
| 24 | 23 |
| 25 module.host = "*"; -- we're a global module | 24 module.host = "*"; -- we're a global module |
| 26 | 25 |
| 27 -- Allow switching away from root, some people like strange ports. | 26 -- Allow switching away from root, some people like strange ports. |
| 28 module:add_event_hook("server-started", function () | 27 module:add_event_hook("server-started", function () |
| 29 local uid = config_get("*", "core", "setuid"); | 28 local uid = module:get_option("setuid"); |
| 30 local gid = config_get("*", "core", "setgid"); | 29 local gid = module:get_option("setgid"); |
| 31 if gid then | 30 if gid then |
| 32 local success, msg = pposix.setgid(gid); | 31 local success, msg = pposix.setgid(gid); |
| 33 if success then | 32 if success then |
| 34 module:log("debug", "Changed group to "..gid.." successfully."); | 33 module:log("debug", "Changed group to "..gid.." successfully."); |
| 35 else | 34 else |
| 48 end | 47 end |
| 49 end); | 48 end); |
| 50 | 49 |
| 51 -- Don't even think about it! | 50 -- Don't even think about it! |
| 52 module:add_event_hook("server-starting", function () | 51 module:add_event_hook("server-starting", function () |
| 53 local suid = config_get("*", "core", "setuid"); | 52 local suid = module:get_option("setuid"); |
| 54 if not suid or suid == 0 or suid == "root" then | 53 if not suid or suid == 0 or suid == "root" then |
| 55 if pposix.getuid() == 0 and not config_get("*", "core", "run_as_root") then | 54 if pposix.getuid() == 0 and not module:get_option("run_as_root") then |
| 56 module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); | 55 module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); |
| 57 module:log("error", "For more information on running Prosody as root, see http://prosody.im/doc/root"); | 56 module:log("error", "For more information on running Prosody as root, see http://prosody.im/doc/root"); |
| 58 prosody.shutdown("Refusing to run as root"); | 57 prosody.shutdown("Refusing to run as root"); |
| 59 end | 58 end |
| 60 end | 59 end |
| 71 | 70 |
| 72 local function write_pidfile() | 71 local function write_pidfile() |
| 73 if pidfile_written then | 72 if pidfile_written then |
| 74 remove_pidfile(); | 73 remove_pidfile(); |
| 75 end | 74 end |
| 76 local pidfile = config_get("*", "core", "pidfile"); | 75 local pidfile = module:get_option("pidfile"); |
| 77 if pidfile then | 76 if pidfile then |
| 78 local pf, err = io.open(pidfile, "w+"); | 77 local pf, err = io.open(pidfile, "w+"); |
| 79 if not pf then | 78 if not pf then |
| 80 module:log("error", "Couldn't write pidfile; %s", err); | 79 module:log("error", "Couldn't write pidfile; %s", err); |
| 81 else | 80 else |
| 101 end | 100 end |
| 102 end; | 101 end; |
| 103 end | 102 end |
| 104 require "core.loggingmanager".register_sink_type("syslog", syslog_sink_maker); | 103 require "core.loggingmanager".register_sink_type("syslog", syslog_sink_maker); |
| 105 | 104 |
| 106 if not config_get("*", "core", "no_daemonize") then | 105 if not module:get_option("no_daemonize") then |
| 107 local function daemonize_server() | 106 local function daemonize_server() |
| 108 local ok, ret = pposix.daemonize(); | 107 local ok, ret = pposix.daemonize(); |
| 109 if not ok then | 108 if not ok then |
| 110 module:log("error", "Failed to daemonize: %s", ret); | 109 module:log("error", "Failed to daemonize: %s", ret); |
| 111 elseif ret and ret > 0 then | 110 elseif ret and ret > 0 then |
