Diff

plugins/mod_posix.lua @ 2795:d6fcd13c07e7

mod_posix: Adjust file open mode depending on whether file exists (take that fopen designers!!!)
author Matthew Wild <mwild1@gmail.com>
date Wed, 13 Jan 2010 00:03:22 +0000
parent 2793:08892e3f24bd
child 2923:b7049746bd29
line wrap: on
line diff
--- a/plugins/mod_posix.lua	Mon Jan 11 00:14:33 2010 +0000
+++ b/plugins/mod_posix.lua	Wed Jan 13 00:03:22 2010 +0000
@@ -20,6 +20,7 @@
 local logger_set = require "util.logger".setwriter;
 
 local lfs = require "lfs";
+local stat = lfs.attributes;
 
 local prosody = _G.prosody;
 
@@ -78,7 +79,8 @@
 	end
 	pidfile = module:get_option("pidfile");
 	if pidfile then
-		pidfile_handle, err = io.open(pidfile, "a+");
+		local mode = stat(pidfile) and "r+" or "w+";
+		pidfile_handle, err = io.open(pidfile, mode);
 		if not pidfile_handle then
 			module:log("error", "Couldn't write pidfile at %s; %s", pidfile, err);
 			prosody.shutdown("Couldn't write pidfile");