فهرست منبع

os-posix: use global daemon_pipe instead of cryptic fds[1]

When asked to -daemonize, we fork a child and setup a pipe between
it and parent to pass exit status.  os-posix.c used global fds[2]
array for that, but actually only the writing side of the pipe is
needed to be global, and this name is really too generic.  Use
just one interger for the writing side of the pipe, and name it
daemon_pipe to be more understandable than cryptic fds[1].

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Michael Tokarev 10 سال پیش
والد
کامیت
0be5e436ff
1فایلهای تغییر یافته به همراه6 افزوده شده و 4 حذف شده
  1. 6 4
      os-posix.c

+ 6 - 4
os-posix.c

@@ -47,7 +47,7 @@
 static struct passwd *user_pwd;
 static struct passwd *user_pwd;
 static const char *chroot_dir;
 static const char *chroot_dir;
 static int daemonize;
 static int daemonize;
-static int fds[2];
+static int daemon_pipe;
 
 
 void os_setup_early_signal_handling(void)
 void os_setup_early_signal_handling(void)
 {
 {
@@ -205,6 +205,7 @@ void os_daemonize(void)
 {
 {
     if (daemonize) {
     if (daemonize) {
         pid_t pid;
         pid_t pid;
+        int fds[2];
 
 
         if (pipe(fds) == -1) {
         if (pipe(fds) == -1) {
             exit(1);
             exit(1);
@@ -236,7 +237,8 @@ void os_daemonize(void)
             }
             }
 
 
         close(fds[0]);
         close(fds[0]);
-        qemu_set_cloexec(fds[1]);
+        daemon_pipe = fds[1];
+        qemu_set_cloexec(daemon_pipe);
 
 
         setsid();
         setsid();
 
 
@@ -263,7 +265,7 @@ void os_setup_post(void)
         ssize_t len;
         ssize_t len;
 
 
     again1:
     again1:
-        len = write(fds[1], &status, 1);
+        len = write(daemon_pipe, &status, 1);
         if (len == -1 && (errno == EINTR)) {
         if (len == -1 && (errno == EINTR)) {
             goto again1;
             goto again1;
         }
         }
@@ -296,7 +298,7 @@ void os_pidfile_error(void)
 {
 {
     if (daemonize) {
     if (daemonize) {
         uint8_t status = 1;
         uint8_t status = 1;
-        if (write(fds[1], &status, 1) != 1) {
+        if (write(daemon_pipe, &status, 1) != 1) {
             perror("daemonize. Writing to pipe\n");
             perror("daemonize. Writing to pipe\n");
         }
         }
     } else
     } else