diff options
author | Waqas Hussain <waqas20@gmail.com> | 2010-05-07 07:18:09 +0500 |
---|---|---|
committer | Waqas Hussain <waqas20@gmail.com> | 2010-05-07 07:18:09 +0500 |
commit | 2f333716e6e6dcb12648ed8c8683d7189ead4efe (patch) | |
tree | 25f7f0020e88396c4e5f881ee3611797d398d33f /plugins | |
parent | 41fe87d3c53b96a7f75e1ec386b6c192211f71de (diff) | |
download | prosody-2f333716e6e6dcb12648ed8c8683d7189ead4efe.tar.gz prosody-2f333716e6e6dcb12648ed8c8683d7189ead4efe.zip |
mod_posix: Don't add a server-starting event handler while the server-starting event is being fired.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_posix.lua | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/plugins/mod_posix.lua b/plugins/mod_posix.lua index 5888ae10..5e9d2544 100644 --- a/plugins/mod_posix.lua +++ b/plugins/mod_posix.lua @@ -54,16 +54,16 @@ module:add_event_hook("server-started", function () end); -- Don't even think about it! -module:add_event_hook("server-starting", function () - local suid = module:get_option("setuid"); - if not suid or suid == 0 or suid == "root" then - if pposix.getuid() == 0 and not module:get_option("run_as_root") then - module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); - module:log("error", "For more information on running Prosody as root, see http://prosody.im/doc/root"); - prosody.shutdown("Refusing to run as root"); - end +if not prosody.start_time then -- server-starting + local suid = module:get_option("setuid"); + if not suid or suid == 0 or suid == "root" then + if pposix.getuid() == 0 and not module:get_option("run_as_root") then + module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); + module:log("error", "For more information on running Prosody as root, see http://prosody.im/doc/root"); + prosody.shutdown("Refusing to run as root"); end - end); + end +end local pidfile; local pidfile_handle; @@ -140,7 +140,9 @@ if daemonize then write_pidfile(); end end - module:add_event_hook("server-starting", daemonize_server); + if not prosody.start_time then -- server-starting + daemonize_server(); + end else -- Not going to daemonize, so write the pid of this process write_pidfile(); |