From 275444ab8281377a6711f99d806bdc09bb907299 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 13 Jan 2010 00:03:22 +0000 Subject: mod_posix: Adjust file open mode depending on whether file exists (take that fopen designers!!!) --- plugins/mod_posix.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/mod_posix.lua b/plugins/mod_posix.lua index 8b0bd399..ed0dbd87 100644 --- a/plugins/mod_posix.lua +++ b/plugins/mod_posix.lua @@ -20,6 +20,7 @@ end local logger_set = require "util.logger".setwriter; local lfs = require "lfs"; +local stat = lfs.attributes; local prosody = _G.prosody; @@ -78,7 +79,8 @@ local function write_pidfile() 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"); -- cgit v1.2.3