dbus: use private connections wherever possible

This commit is contained in:
Lennart Poettering 2010-07-11 02:22:46 +02:00
parent 7740296dcf
commit b574246b4f
4 changed files with 11 additions and 10 deletions

View File

@ -62,7 +62,7 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private, DBusError *
/* If we are root, then let's not go via the bus */
if (geteuid() == 0 && t == DBUS_BUS_SYSTEM) {
if (!(bus = dbus_connection_open("unix:abstract=/org/freedesktop/systemd1/private", error)))
if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", error)))
return -EIO;
if (bus_check_peercred(bus) < 0) {

View File

@ -232,7 +232,7 @@ static void server_done(Server *s) {
close_nointr_nofail(s->epoll_fd);
if (s->bus) {
dbus_connection_set_exit_on_disconnect(s->bus, FALSE);
dbus_connection_close(s->bus);
dbus_connection_unref(s->bus);
}
}
@ -297,14 +297,10 @@ static int server_init(Server *s, unsigned n_sockets) {
s->n_fifos ++;
}
if (!(s->bus = dbus_connection_open("unix:abstract=/org/freedesktop/systemd1/private", &error))) {
if (bus_connect(DBUS_BUS_SYSTEM, &s->bus, NULL, &error) < 0) {
log_error("Failed to get D-Bus connection: %s", error.message);
goto fail;
}
if ((r = bus_check_peercred(s->bus)) < 0) {
log_error("Bus connection failed peer credential check: %s", strerror(-r));
goto fail;
}
return 0;

View File

@ -3056,7 +3056,7 @@ static int talk_upstart(void) {
if (utmp_get_runlevel(&previous, NULL) < 0)
previous = 'N';
if (!(bus = dbus_connection_open("unix:abstract=/com/ubuntu/upstart", &error))) {
if (!(bus = dbus_connection_open_private("unix:abstract=/com/ubuntu/upstart", &error))) {
if (dbus_error_has_name(&error, DBUS_ERROR_NO_SERVER)) {
r = 0;
goto finish;
@ -3120,8 +3120,10 @@ finish:
if (reply)
dbus_message_unref(reply);
if (bus)
if (bus) {
dbus_connection_close(bus);
dbus_connection_unref(bus);
}
dbus_error_free(&error);
@ -3444,8 +3446,10 @@ int main(int argc, char*argv[]) {
finish:
if (bus)
if (bus) {
dbus_connection_close(bus);
dbus_connection_unref(bus);
}
dbus_error_free(&error);

View File

@ -22,6 +22,7 @@
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include "loopback-setup.h"
#include "util.h"