summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2015-11-16 15:45:02 +0100
committerSven Eden <yamakuzure@gmx.net>2017-04-26 12:58:55 +0200
commit2bd94bfa67be6bc52fd525396fd87b4a6f323bed (patch)
tree7dc3f09835e7b4c2e2012a93eb15ba66658954c4 /src
parentfe1d018e7c206a47e6d912b43017a1c056c2c4c9 (diff)
login: ignore JobRemoved of old jobs
If we requeue jobs, we are no longer interested in old jobs. Hence, we better ignore any JobRemoved signals for old jobs and concentrate on our replacements.
Diffstat (limited to 'src')
-rw-r--r--src/login/logind-dbus.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index b9296b5e5..d88636f74 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -2608,11 +2608,8 @@ int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *err
}
session = hashmap_get(m->session_units, unit);
- if (session) {
-
- if (streq_ptr(path, session->scope_job))
- session->scope_job = mfree(session->scope_job);
-
+ if (session && streq_ptr(path, session->scope_job)) {
+ session->scope_job = mfree(session->scope_job);
session_jobs_reply(session, unit, result);
session_save(session);
@@ -2621,7 +2618,9 @@ int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *err
}
user = hashmap_get(m->user_units, unit);
- if (user) {
+ if (user &&
+ (streq_ptr(path, user->service_job) ||
+ streq_ptr(path, user->slice_job))) {
if (streq_ptr(path, user->service_job))
user->service_job = mfree(user->service_job);