From 25ae42fedeab79db1ed39f5f2d9d0fdae5172ce5 Mon Sep 17 00:00:00 2001 From: oetiker Date: Sun, 28 Sep 2008 19:09:34 +0000 Subject: [PATCH] The PID file is created with open() in the parent process, while we still 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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c index d30893e..18b7143 100644 --- a/src/rrd_daemon.c +++ b/src/rrd_daemon.c @@ -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); } -- 2.11.0