chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
core: Add AppArmor profile switching
[elogind.git]
/
src
/
core
/
busname.c
diff --git
a/src/core/busname.c
b/src/core/busname.c
index 49a43feb376f3b4afb2580e84f62bfb787168751..4c34538c6524843e20b6fe8171fb1851e0c33c94 100644
(file)
--- a/
src/core/busname.c
+++ b/
src/core/busname.c
@@
-197,6
+197,8
@@
static void busname_unwatch_fd(BusName *n) {
static void busname_close_fd(BusName *n) {
assert(n);
static void busname_close_fd(BusName *n) {
assert(n);
+ busname_unwatch_fd(n);
+
if (n->starter_fd <= 0)
return;
if (n->starter_fd <= 0)
return;
@@
-215,7
+217,7
@@
static int busname_watch_fd(BusName *n) {
if (n->event_source)
r = sd_event_source_set_enabled(n->event_source, SD_EVENT_ON);
else
if (n->event_source)
r = sd_event_source_set_enabled(n->event_source, SD_EVENT_ON);
else
- r = sd_event_add_io(UNIT(n)->manager->event,
n->starter_fd, EPOLLIN, busname_dispatch_io, n, &n->event_source
);
+ r = sd_event_add_io(UNIT(n)->manager->event,
&n->event_source, n->starter_fd, EPOLLIN, busname_dispatch_io, n
);
if (r < 0) {
log_warning_unit(UNIT(n)->id, "Failed to watch starter fd: %s", strerror(-r));
busname_unwatch_fd(n);
if (r < 0) {
log_warning_unit(UNIT(n)->id, "Failed to watch starter fd: %s", strerror(-r));
busname_unwatch_fd(n);
@@
-333,6
+335,11
@@
static void busname_enter_running(BusName *n) {
if (unit_stop_pending(UNIT(n))) {
log_debug_unit(UNIT(n)->id, "Suppressing activation request on %s since unit stop is scheduled.", UNIT(n)->id);
if (unit_stop_pending(UNIT(n))) {
log_debug_unit(UNIT(n)->id, "Suppressing activation request on %s since unit stop is scheduled.", UNIT(n)->id);
+
+ /* Flush all queued activation reqeuest by closing and reopening the connection */
+ bus_kernel_drop_one(n->starter_fd);
+
+ busname_enter_listening(n);
return;
}
return;
}
@@
-577,7
+584,6
@@
const UnitVTable busname_vtable = {
.bus_interface = "org.freedesktop.systemd1.BusName",
.bus_vtable = bus_busname_vtable,
.bus_interface = "org.freedesktop.systemd1.BusName",
.bus_vtable = bus_busname_vtable,
- .bus_changing_properties = bus_busname_changing_properties,
.status_message_formats = {
.finished_start_job = {
.status_message_formats = {
.finished_start_job = {