]> granicus.if.org Git - icinga2/commitdiff
Fix writing the PID file if there is no previous PID file.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 12 Mar 2013 15:02:35 +0000 (16:02 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 12 Mar 2013 15:02:35 +0000 (16:02 +0100)
lib/base/application.cpp

index 8c9c8b48ec2a421395247f2ecc672fd4cf479df6..c21be8e5b4e930331d9fa91b1da1f548b5e12171 100644 (file)
@@ -462,15 +462,12 @@ void Application::UpdatePidFile(const String& filename)
        if (m_PidFile != NULL)
                fclose(m_PidFile);
 
-#ifndef _WIN32
-       const char *mode = "r+";
-#else /* _WIN32 */
-       const char *mode = "w";
-#endif /* _WIN32 */
-
        /* There's just no sane way of getting a file descriptor for a
         * C++ ofstream which is why we're using FILEs here. */
-       m_PidFile = fopen(filename.CStr(), mode);
+       m_PidFile = fopen(filename.CStr(), "r+");
+
+       if (m_PidFile == NULL)
+               m_PidFile = fopen(filename.CStr(), "w");
 
        if (m_PidFile == NULL)
                BOOST_THROW_EXCEPTION(runtime_error("Could not open PID file '" + filename + "'"));