[ovs-dev] [PATCH 1/4] daemon: Don't ignore failed write to pipe.

Ben Pfaff blp at nicira.com
Fri Dec 18 13:47:48 PST 2009


If the write to the pipe fails here then the parent will think that the
child failed to start up, so the child should oblige it by bailing out.
---
 lib/daemon.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lib/daemon.c b/lib/daemon.c
index c4effa9..9a1be55 100644
--- a/lib/daemon.c
+++ b/lib/daemon.c
@@ -25,6 +25,7 @@
 #include "fatal-signal.h"
 #include "dirs.h"
 #include "lockfile.h"
+#include "socket-util.h"
 #include "timeval.h"
 #include "util.h"
 
@@ -280,9 +281,14 @@ void
 daemonize_complete(void)
 {
     if (detach) {
-        char c = 0;
+        size_t bytes_written;
+        int error;
+
+        error = write_fully(daemonize_fds[1], "", 1, &bytes_written);
+        if (error) {
+            ovs_fatal(error, "could not write to pipe");
+        }
 
-        ignore(write(daemonize_fds[1], &c, 1));
         close(daemonize_fds[1]);
         setsid();
         if (chdir_) {
-- 
1.6.3.3





More information about the dev mailing list