The PID file is created with open() in the parent process, while we still
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 28 Sep 2008 19:09:34 +0000 (19:09 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 28 Sep 2008 19:09:34 +0000 (19:09 +0000)
have STDERR open.  If it cannot be created, it complains verbosely to
stderr.

The PID file is written in the child process.  The only way the fdopen()
will fail on a fd that is already open is if you're completely out of
memory.  As in other places in the code, I didn't consider this a case
that required a very verbose message.  (Search for "strdup failed").  If
you still think a more verbose message is called for, please suggest one.

The attached patch corrects the error message to complain about fdopen()
vs fopen().  I hadn't noticed that until you brought it up.

--  kevin brintnall

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1532 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_daemon.c

index d30893e..18b7143 100644 (file)
@@ -236,7 +236,7 @@ static int write_pidfile (int fd) /* {{{ */
   fh = fdopen (fd, "w");
   if (fh == NULL)
   {
-    RRDD_LOG (LOG_ERR, "write_pidfile: fopen() failed.");
+    RRDD_LOG (LOG_ERR, "write_pidfile: fdopen() failed.");
     close(fd);
     return (-1);
   }