summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-07-28 23:26:17 +0200
committerLennart Poettering <lennart@poettering.net>2008-07-28 23:26:17 +0200
commit1ef4fbda1b9a9087b967a2ba0fab5db9eb3844db (patch)
tree3d557953ce00080e3282447826304244e7f4be62
parent16a09253a2e225ae8a8bee76c4d7f6e3767a7e04 (diff)
create retval pipes once only
-rw-r--r--libdaemon/dfork.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libdaemon/dfork.c b/libdaemon/dfork.c
index ff58659..44d815c 100644
--- a/libdaemon/dfork.c
+++ b/libdaemon/dfork.c
@@ -325,8 +325,14 @@ pid_t daemon_fork(void) {
}
int daemon_retval_init(void) {
- if (pipe(_daemon_retval_pipe) < 0)
- return -1;
+
+ if (_daemon_retval_pipe[0] < 0 || _daemon_retval_pipe[1] < 0) {
+
+ if (pipe(_daemon_retval_pipe) < 0) {
+ daemon_log(LOG_ERR, "pipe(): %s", strerror(errno));
+ return -1;
+ }
+ }
return 0;
}