core: Rename Job.subscribed field to Job.clients

This reflects how this field will be used, to not only track where
to send signals, but also which callers (other than root) are allowed
to call DBus methods on the Job.
This commit is contained in:
Stef Walter 2014-08-06 11:53:00 +02:00
parent 2ea31e5b13
commit b39a2770ba
5 changed files with 21 additions and 15 deletions

View file

@ -132,7 +132,7 @@ void bus_job_send_change_signal(Job *j) {
j->in_dbus_queue = false;
}
r = bus_foreach_bus(j->manager, j->subscribed, j->sent_dbus_new_signal ? send_changed_signal : send_new_signal, j);
r = bus_foreach_bus(j->manager, j->clients, j->sent_dbus_new_signal ? send_changed_signal : send_new_signal, j);
if (r < 0)
log_debug("Failed to send job change signal for %u: %s", j->id, strerror(-r));
@ -176,7 +176,7 @@ void bus_job_send_removed_signal(Job *j) {
if (!j->sent_dbus_new_signal)
bus_job_send_change_signal(j);
r = bus_foreach_bus(j->manager, j->subscribed, send_removed_signal, j);
r = bus_foreach_bus(j->manager, j->clients, send_removed_signal, j);
if (r < 0)
log_debug("Failed to send job remove signal for %u: %s", j->id, strerror(-r));
}

View file

@ -758,13 +758,13 @@ int bus_unit_queue_job(
return r;
if (bus == u->manager->api_bus) {
if (!j->subscribed) {
r = sd_bus_track_new(bus, &j->subscribed, NULL, NULL);
if (!j->clients) {
r = sd_bus_track_new(bus, &j->clients, NULL, NULL);
if (r < 0)
return r;
}
r = sd_bus_track_add_sender(j->subscribed, message);
r = sd_bus_track_add_sender(j->clients, message);
if (r < 0)
return r;
}

View file

@ -1048,8 +1048,8 @@ static void destroy_bus(Manager *m, sd_bus **bus) {
m->subscribed = sd_bus_track_unref(m->subscribed);
HASHMAP_FOREACH(j, m->jobs, i)
if (j->subscribed && sd_bus_track_get_bus(j->subscribed) == *bus)
j->subscribed = sd_bus_track_unref(j->subscribed);
if (j->clients && sd_bus_track_get_bus(j->clients) == *bus)
j->clients = sd_bus_track_unref(j->clients);
/* Get rid of queued message on this bus */
if (m->queued_message_bus == *bus) {

View file

@ -90,8 +90,8 @@ void job_free(Job *j) {
sd_event_source_unref(j->timer_event_source);
sd_bus_track_unref(j->subscribed);
strv_free(j->deserialized_subscribed);
sd_bus_track_unref(j->clients);
strv_free(j->deserialized_clients);
free(j);
}
@ -937,7 +937,7 @@ int job_serialize(Job *j, FILE *f, FDSet *fds) {
if (j->begin_usec > 0)
fprintf(f, "job-begin="USEC_FMT"\n", j->begin_usec);
bus_track_serialize(j->subscribed, f);
bus_track_serialize(j->clients, f);
/* End marker */
fputc('\n', f);
@ -1043,7 +1043,7 @@ int job_deserialize(Job *j, FILE *f, FDSet *fds) {
} else if (streq(l, "subscribed")) {
if (strv_extend(&j->deserialized_subscribed, v) < 0)
if (strv_extend(&j->deserialized_clients, v) < 0)
return log_oom();
}
}
@ -1056,7 +1056,7 @@ int job_coldplug(Job *j) {
/* After deserialization is complete and the bus connection
* set up again, let's start watching our subscribers again */
r = bus_track_coldplug(j->manager, &j->subscribed, &j->deserialized_subscribed);
r = bus_track_coldplug(j->manager, &j->clients, &j->deserialized_clients);
if (r < 0)
return r;

View file

@ -145,9 +145,15 @@ struct Job {
sd_event_source *timer_event_source;
usec_t begin_usec;
/* There can be more than one client, because of job merging. */
sd_bus_track *subscribed;
char **deserialized_subscribed;
/*
* This tracks where to send signals, and also which clients
* are allowed to call DBus methods on the job (other than
* root).
*
* There can be more than one client, because of job merging.
*/
sd_bus_track *clients;
char **deserialized_clients;
JobResult result;