PolicyKit: Branch 'master'

David Zeuthen david at kemper.freedesktop.org
Tue Oct 18 10:14:04 PDT 2011


 data/org.freedesktop.PolicyKit1.service.in |    2 +-
 src/polkitd/main.c                         |   27 ++++++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 2 deletions(-)

New commits:
commit 3811e51b81320a574bb31aa64b6af56340012527
Author: David Zeuthen <davidz at redhat.com>
Date:   Tue Oct 18 13:13:16 2011 -0400

    Add --no-debug option and use this for D-Bus activation
    
    Signed-off-by: David Zeuthen <davidz at redhat.com>

diff --git a/data/org.freedesktop.PolicyKit1.service.in b/data/org.freedesktop.PolicyKit1.service.in
index 5a54ca1..b6cd02b 100644
--- a/data/org.freedesktop.PolicyKit1.service.in
+++ b/data/org.freedesktop.PolicyKit1.service.in
@@ -1,4 +1,4 @@
 [D-BUS Service]
 Name=org.freedesktop.PolicyKit1
-Exec=@libexecdir@/polkitd
+Exec=@libexecdir@/polkitd --no-debug
 User=root
diff --git a/src/polkitd/main.c b/src/polkitd/main.c
index 33ea511..b21723f 100644
--- a/src/polkitd/main.c
+++ b/src/polkitd/main.c
@@ -22,6 +22,9 @@
 #include "config.h"
 
 #include <signal.h>
+
+#include <glib-unix.h>
+
 #include <polkit/polkit.h>
 #include <polkitbackend/polkitbackend.h>
 
@@ -33,8 +36,10 @@ static PolkitBackendAuthority *authority = NULL;
 static gpointer                registration_id = NULL;
 static GMainLoop              *loop = NULL;
 static gboolean                opt_replace = FALSE;
+static gboolean                opt_no_debug = FALSE;
 static GOptionEntry            opt_entries[] = {
-  {"replace", 0, 0, G_OPTION_ARG_NONE, &opt_replace, "Replace existing daemon", NULL},
+  {"replace", 'r', 0, G_OPTION_ARG_NONE, &opt_replace, "Replace existing daemon", NULL},
+  {"no-debug", 'n', 0, G_OPTION_ARG_NONE, &opt_no_debug, "Don't print debug information", NULL},
   {NULL }
 };
 
@@ -120,6 +125,26 @@ main (int    argc,
       goto out;
     }
 
+  /* If --no-debug is requested don't clutter stdout/stderr etc.
+   */
+  if (opt_no_debug)
+    {
+      gint dev_null_fd;
+      dev_null_fd = open ("/dev/null", O_RDWR);
+      if (dev_null_fd >= 0)
+        {
+          dup2 (dev_null_fd, STDIN_FILENO);
+          dup2 (dev_null_fd, STDOUT_FILENO);
+          dup2 (dev_null_fd, STDERR_FILENO);
+          close (dev_null_fd);
+        }
+      else
+        {
+          g_warning ("Error opening /dev/null: %m");
+        }
+    }
+
+
   loop = g_main_loop_new (NULL, FALSE);
 
   sigint_id = _g_posix_signal_watch_add (SIGINT,


More information about the hal-commit mailing list