X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fbusname.c;h=9b6bf07d9f55d1facaf870d8a79a9aa8b5b72c07;hb=d14ab08b29d5b0b3ead6e63ac8be472f273011f9;hp=49a43feb376f3b4afb2580e84f62bfb787168751;hpb=2f671520ebade4877cbf6aca3572a5f8c4e1871d;p=elogind.git diff --git a/src/core/busname.c b/src/core/busname.c index 49a43feb3..9b6bf07d9 100644 --- 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); + busname_unwatch_fd(n); + if (n->starter_fd <= 0) return; @@ -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); + + /* Flush all queued activation reqeuest by closing and reopening the connection */ + + busname_close_fd(n); + busname_enter_listening(n); return; } @@ -577,7 +584,6 @@ const UnitVTable 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 = {