Change write_pid_file()'s prototype to take the path as argument
authorFabian Keil <fk@fabiankeil.de>
Thu, 17 Aug 2017 17:12:15 +0000 (19:12 +0200)
committerFabian Keil <fk@fabiankeil.de>
Thu, 1 Mar 2018 10:42:48 +0000 (11:42 +0100)
jcc.c
miscutil.c
miscutil.h

diff --git a/jcc.c b/jcc.c
index fdcd69b..e7d8840 100644 (file)
--- a/jcc.c
+++ b/jcc.c
@@ -3985,8 +3985,10 @@ int main(int argc, char **argv)
     * As soon as we have written the PID file, we can switch
     * to the user and group ID indicated by the --user option
     */
-   write_pid_file();
-
+   if (pidfile != NULL)
+   {
+      write_pid_file(pidfile);
+   }
    if (NULL != pw)
    {
       if (setgid((NULL != grp) ? grp->gr_gid : pw->pw_gid))
index 010745f..79b1ae6 100644 (file)
@@ -63,7 +63,6 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.85 2017/06/08 13:11:08 fabianke
 #include "project.h"
 #include "miscutil.h"
 #include "errlog.h"
-#include "jcc.h"
 
 const char miscutil_h_rcs[] = MISCUTIL_H_VERSION;
 
@@ -221,21 +220,16 @@ void *malloc_or_die(size_t buffer_size)
  * Description :  Writes a pid file with the pid of the main process.
  *                Exits if the file can't be opened
  *
- * Parameters  :  None
+ * Parameters  :
+ *          1  :  pidfile = Path of the pidfile that gets created.
  *
  * Returns     :  N/A
  *
  *********************************************************************/
-void write_pid_file(void)
+void write_pid_file(const char *pidfile)
 {
    FILE   *fp;
 
-   /*
-    * If no --pidfile option was given,
-    * we can live without one.
-    */
-   if (pidfile == NULL) return;
-
    if ((fp = fopen(pidfile, "w")) == NULL)
    {
       log_error(LOG_LEVEL_FATAL, "can't open pidfile '%s': %E", pidfile);
index e65a8a2..33e2996 100644 (file)
@@ -51,7 +51,7 @@ extern char *strdup_or_die(const char *str);
 extern void *malloc_or_die(size_t buffer_size);
 
 #if defined(unix)
-extern void write_pid_file(void);
+extern void write_pid_file(const char *pidfile);
 #endif /* unix */
 
 extern unsigned int hash_string(const char* s);