[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, master, updated. v0.9.16-test6-58-g39e4652

Lennart Poettering gitmailer-noreply at 0pointer.de
Tue Sep 1 19:05:27 PDT 2009


This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.

The master branch has been updated
      from  470e9a878740b826acaa89d856ba1c7a9d5635b3 (commit)

- Log -----------------------------------------------------------------
39e4652 daemon: drop polkit code from git repo we weren't using anymore
767c7c7 core-util: call dbus_connection_set_exit_on_disconnect() on shared busses to make sure dbus_shutdown() isn't fatal
-----------------------------------------------------------------------

Summary of changes:
 src/daemon/polkit.c       |  172 ---------------------------------------------
 src/daemon/polkit.h       |   27 -------
 src/pulsecore/core-util.c |   10 +++
 3 files changed, 10 insertions(+), 199 deletions(-)
 delete mode 100644 src/daemon/polkit.c
 delete mode 100644 src/daemon/polkit.h

-----------------------------------------------------------------------

commit 767c7c7cf42463c591edaa5e5cdc7930fa0f6026
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 2 04:03:18 2009 +0200

    core-util: call dbus_connection_set_exit_on_disconnect() on shared busses to make sure dbus_shutdown() isn't fatal

diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c
index 9034dc3..eeb81a6 100644
--- a/src/pulsecore/core-util.c
+++ b/src/pulsecore/core-util.c
@@ -612,6 +612,11 @@ static int set_scheduler(int rtprio) {
         return -1;
     }
 
+    /* We need to disable exit on disconnect because otherwise
+     * dbus_shutdown will kill us. See
+     * https://bugs.freedesktop.org/show_bug.cgi?id=16924 */
+    dbus_connection_set_exit_on_disconnect(bus, FALSE);
+
     r = rtkit_make_realtime(bus, 0, rtprio);
     dbus_connection_unref(bus);
 
@@ -680,6 +685,11 @@ static int set_nice(int nice_level) {
         return -1;
     }
 
+    /* We need to disable exit on disconnect because otherwise
+     * dbus_shutdown will kill us. See
+     * https://bugs.freedesktop.org/show_bug.cgi?id=16924 */
+    dbus_connection_set_exit_on_disconnect(bus, FALSE);
+
     r = rtkit_make_high_priority(bus, 0, nice_level);
     dbus_connection_unref(bus);
 

commit 39e4652a78850c3ece3ada2e3cdb2266668dba45
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Sep 2 04:05:41 2009 +0200

    daemon: drop polkit code from git repo we weren't using anymore

diff --git a/src/daemon/polkit.c b/src/daemon/polkit.c
deleted file mode 100644
index 9799e09..0000000
--- a/src/daemon/polkit.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/***
-  This file is part of PulseAudio.
-
-  Copyright 2004-2006 Lennart Poettering
-  Copyright 2006 Pierre Ossman <ossman at cendio.se> for Cendio AB
-
-  PulseAudio is free software; you can redistribute it and/or modify
-  it under the terms of the GNU Lesser General Public License as published
-  by the Free Software Foundation; either version 2.1 of the License,
-  or (at your option) any later version.
-
-  PulseAudio is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with PulseAudio; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-  USA.
-***/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <inttypes.h>
-
-#include <dbus/dbus.h>
-#include <polkit-dbus/polkit-dbus.h>
-
-#include <pulse/i18n.h>
-
-#include <pulsecore/log.h>
-#include <pulsecore/macro.h>
-
-#include "polkit.h"
-
-int pa_polkit_check(const char *action_id) {
-    int ret = -1;
-    DBusError dbus_error;
-    DBusConnection *bus = NULL;
-    PolKitCaller *caller = NULL;
-    PolKitAction *action = NULL;
-    PolKitContext *context = NULL;
-    PolKitError *polkit_error = NULL;
-    PolKitSession *session = NULL;
-    PolKitResult polkit_result;
-
-    dbus_error_init(&dbus_error);
-
-    if (!(bus = dbus_bus_get(DBUS_BUS_SYSTEM, &dbus_error))) {
-        pa_log_error(_("Cannot connect to system bus: %s"), dbus_error.message);
-        goto finish;
-    }
-
-    /* There seems to be a bug in some versions of D-Bus that causes
-     * dbus_shutdown() to call exit() when a connection without this
-     * flag disabled was created during runtime.*/
-    dbus_connection_set_exit_on_disconnect(bus, FALSE);
-
-    if (!(caller = polkit_caller_new_from_pid(bus, getpid(), &dbus_error))) {
-        pa_log_error(_("Cannot get caller from PID: %s"), dbus_error.message);
-        goto finish;
-    }
-
-    /* This function is called when PulseAudio is called SUID root. We
-     * want to authenticate the real user that called us and not the
-     * effective user we gained through being SUID root. Hence we
-     * overwrite the UID caller data here explicitly, just for
-     * paranoia. In fact PolicyKit should fill in the UID here anyway
-     * -- an not the EUID or any other user id. */
-
-    if (!(polkit_caller_set_uid(caller, getuid()))) {
-        pa_log_error(_("Cannot set UID on caller object."));
-        goto finish;
-    }
-
-    if (!(polkit_caller_get_ck_session(caller, &session))) {
-        pa_log_error(_("Failed to get CK session."));
-        goto finish;
-    }
-
-    /* We need to overwrite the UID in both the caller and the session
-     * object */
-
-    if (!(polkit_session_set_uid(session, getuid()))) {
-        pa_log_error(_("Cannot set UID on session object."));
-        goto finish;
-    }
-
-    if (!(action = polkit_action_new())) {
-        pa_log_error(_("Cannot allocate PolKitAction."));
-        goto finish;
-    }
-
-    if (!polkit_action_set_action_id(action, action_id)) {
-        pa_log_error(_("Cannot set action_id"));
-        goto finish;
-    }
-
-    if (!(context = polkit_context_new())) {
-        pa_log_error(_("Cannot allocate PolKitContext."));
-        goto finish;
-    }
-
-    if (!polkit_context_init(context, &polkit_error)) {
-        pa_log_error(_("Cannot initialize PolKitContext: %s"), polkit_error_get_error_message(polkit_error));
-        goto finish;
-    }
-
-    for (;;) {
-
-        polkit_result = polkit_context_is_caller_authorized(context, action, caller, TRUE, &polkit_error);
-
-        if (polkit_error_is_set(polkit_error)) {
-            pa_log_error(_("Could not determine whether caller is authorized: %s"), polkit_error_get_error_message(polkit_error));
-            goto finish;
-        }
-
-        if (polkit_result == POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_KEEP_SESSION ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_KEEP_ALWAYS ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_ADMIN_AUTH_ONE_SHOT ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_SELF_AUTH ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_SELF_AUTH_KEEP_SESSION ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_SELF_AUTH_KEEP_ALWAYS ||
-            polkit_result == POLKIT_RESULT_ONLY_VIA_SELF_AUTH_ONE_SHOT
-        ) {
-
-            if (polkit_auth_obtain(action_id, 0, getpid(), &dbus_error)) {
-                polkit_result = POLKIT_RESULT_YES;
-                break;
-            }
-
-            if (dbus_error_is_set(&dbus_error)) {
-                pa_log_error(_("Cannot obtain auth: %s"), dbus_error.message);
-                goto finish;
-            }
-        }
-
-        break;
-    }
-
-    if (polkit_result != POLKIT_RESULT_YES && polkit_result != POLKIT_RESULT_NO)
-        pa_log_warn(_("PolicyKit responded with '%s'"), polkit_result_to_string_representation(polkit_result));
-
-    ret = polkit_result == POLKIT_RESULT_YES;
-
-finish:
-
-    if (caller)
-        polkit_caller_unref(caller);
-
-    if (action)
-        polkit_action_unref(action);
-
-    if (context)
-        polkit_context_unref(context);
-
-    if (bus)
-        dbus_connection_unref(bus);
-
-    dbus_error_free(&dbus_error);
-
-    if (polkit_error)
-        polkit_error_free(polkit_error);
-
-    return ret;
-}
diff --git a/src/daemon/polkit.h b/src/daemon/polkit.h
deleted file mode 100644
index 018f6ef..0000000
--- a/src/daemon/polkit.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef foopolkithfoo
-#define foopolkithfoo
-
-/***
-  This file is part of PulseAudio.
-
-  Copyright 2007 Lennart Poettering
-
-  PulseAudio is free software; you can redistribute it and/or modify
-  it under the terms of the GNU Lesser General Public License as published
-  by the Free Software Foundation; either version 2.1 of the License,
-  or (at your option) any later version.
-
-  PulseAudio is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with PulseAudio; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-  USA.
-***/
-
-int pa_polkit_check(const char *action);
-
-#endif

-- 
hooks/post-receive
PulseAudio Sound Server



More information about the pulseaudio-commits mailing list