X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flogin%2Felogind.c;h=5ff9ed7f2139c73c3b8e06b5f2fdc32a53949a71;hb=81c8750d075cba1ffd20cbd4ef18d9078b0d9f08;hp=e76654b6008dd1db0a8319450f150881ff0184b7;hpb=6f2f5118f1ba06b7fd93a0ce6661530ea1f7e7ee;p=elogind.git diff --git a/src/login/elogind.c b/src/login/elogind.c index e76654b60..5ff9ed7f2 100644 --- a/src/login/elogind.c +++ b/src/login/elogind.c @@ -42,7 +42,7 @@ static int signal_agent_released(sd_bus_message *message, void *userdata, sd_bus assert(message); assert(m); - /* only accept org.freedesktop.elogind.Agent from UID=0 */ + /* only accept org.freedesktop.login1.Agent from UID=0 */ r = sd_bus_query_sender_creds(message, SD_BUS_CREDS_EUID, &creds); if (r < 0) return r; @@ -64,6 +64,7 @@ static int signal_agent_released(sd_bus_message *message, void *userdata, sd_bus } /// Add-On for manager_connect_bus() +/// Original: src/core/dbus.c:bus_setup_system() void elogind_bus_setup_system(Manager* m) { int r; @@ -76,9 +77,9 @@ void elogind_bus_setup_system(Manager* m) { m->bus, NULL, "type='signal'," - "interface='org.freedesktop.elogind.Agent'," + "interface='org.freedesktop.login1.Agent'," "member='Released'," - "path='/org/freedesktop/elogind/agent'", + "path='/org/freedesktop.login1/agent'", signal_agent_released, m); if (r < 0) log_warning_errno(r, "Failed to register Released match on system bus: %m"); @@ -87,32 +88,6 @@ void elogind_bus_setup_system(Manager* m) { log_debug("Successfully connected to system bus."); } -static int bus_forward_agent_released(Manager *m, const char *path) { - int r; - - assert(m); - assert(path); - - if (!MANAGER_IS_SYSTEM(m)) - return 0; - - if (!m->bus) - return 0; - - /* If we are running a system instance we forward the agent message on the system bus, so that the user - * instances get notified about this, too */ - - r = sd_bus_emit_signal(m->bus, - "/org/freedesktop/elogind/agent", - "org.freedesktop.elogind.Agent", - "Released", - "s", path); - if (r < 0) - return log_warning_errno(r, "Failed to propagate agent release message: %m"); - - return 1; -} - static int manager_dispatch_cgroups_agent_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata) { Manager *m = userdata; char buf[PATH_MAX+1]; @@ -137,19 +112,19 @@ static int manager_dispatch_cgroups_agent_fd(sd_event_source *source, int fd, ui buf[n] = 0; manager_notify_cgroup_empty(m, buf); - bus_forward_agent_released(m, buf); return 0; } /// Add-On for manager_connect_bus() +/// Original: src/core/manager.c:manager_setup_cgroups_agent() int elogind_setup_cgroups_agent(Manager *m) { static const union sockaddr_union sa = { .un.sun_family = AF_UNIX, .un.sun_path = "/run/systemd/cgroups-agent", }; - int r; + int r = 0; /* This creates a listening socket we receive cgroups agent messages on. We do not use D-Bus for delivering * these messages from the cgroups agent binary to PID 1, as the cgroups agent binary is very short-living, and