# HG changeset patch # User Waqas Hussain # Date 1273198689 -18000 # Node ID 948d511f479cf0ecaf20ad11f457b64d4ccdda58 # Parent bf3c4195c5f813b5f87db25ee6cdc04ab3ebb988 mod_posix: Don't add a server-starting event handler while the server-starting event is being fired. diff -r bf3c4195c5f8 -r 948d511f479c plugins/mod_posix.lua --- a/plugins/mod_posix.lua Thu May 06 23:16:50 2010 +0500 +++ b/plugins/mod_posix.lua Fri May 07 07:18:09 2010 +0500 @@ -54,16 +54,16 @@ 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 @@ 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();