return r;
if (pid == 0) {
- r = sd_bus_get_owner_pid(bus, sd_bus_message_get_sender(message), &pid);
+ _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
+
+ r = sd_bus_query_sender_creds(message, SD_BUS_CREDS_PID, &creds);
+ if (r < 0)
+ return r;
+
+ r = sd_bus_creds_get_pid(creds, &pid);
if (r < 0)
return r;
}
SD_BUS_PROPERTY("Tainted", "s", property_get_tainted, 0, 0),
BUS_PROPERTY_DUAL_TIMESTAMP("FirmwareTimestamp", offsetof(Manager, firmware_timestamp), 0),
BUS_PROPERTY_DUAL_TIMESTAMP("LoaderTimestamp", offsetof(Manager, loader_timestamp), 0),
- BUS_PROPERTY_DUAL_TIMESTAMP("KernelTimestamp", offsetof(Manager, firmware_timestamp), 0),
+ BUS_PROPERTY_DUAL_TIMESTAMP("KernelTimestamp", offsetof(Manager, kernel_timestamp), 0),
BUS_PROPERTY_DUAL_TIMESTAMP("InitRDTimestamp", offsetof(Manager, initrd_timestamp), 0),
BUS_PROPERTY_DUAL_TIMESTAMP("UserspaceTimestamp", offsetof(Manager, userspace_timestamp), 0),
BUS_PROPERTY_DUAL_TIMESTAMP("FinishTimestamp", offsetof(Manager, finish_timestamp), 0),
SD_BUS_METHOD("ReloadOrTryRestartUnit", "ss", "o", method_reload_or_try_restart_unit, 0),
SD_BUS_METHOD("KillUnit", "ssi", NULL, method_kill_unit, 0),
SD_BUS_METHOD("ResetFailedUnit", "s", NULL, method_reset_failed_unit, 0),
- SD_BUS_METHOD("SetUnitProperties", "sb", "a(sv)", method_set_unit_properties, 0),
+ SD_BUS_METHOD("SetUnitProperties", "sba(sv)", NULL, method_set_unit_properties, 0),
SD_BUS_METHOD("StartTransientUnit", "ssa(sv)a(sa(sv))", "o", method_start_transient_unit, 0),
SD_BUS_METHOD("GetJob", "u", "o", method_get_job, 0),
SD_BUS_METHOD("CancelJob", "u", NULL, method_cancel_job, 0),
Iterator i;
sd_bus *b;
unsigned n;
- int r;
+ int r, ret;
n = set_size(m->subscribed);
if (n <= 0)
return send_message(d->bus, isempty(d->name) ? NULL : d->name, userdata);
}
+ ret = 0;
+
/* Send to everybody */
SET_FOREACH(b, m->private_buses, i) {
r = send_message(b, NULL, userdata);
if (r < 0)
- return r;
+ ret = r;
}
- if (m->api_bus)
- return send_message(m->api_bus, NULL, userdata);
+ if (m->api_bus) {
+ r = send_message(m->api_bus, NULL, userdata);
+ if (r < 0)
+ ret = r;
+ }
- return 0;
+ return ret;
}
static int send_finished(sd_bus *bus, const char *destination, void *userdata) {
return sd_bus_send_to(bus, message, destination, NULL);
}
-int bus_manager_send_finished(
+void bus_manager_send_finished(
Manager *m,
usec_t firmware_usec,
usec_t loader_usec,
usec_t userspace_usec,
usec_t total_usec) {
+ int r;
+
assert(m);
- return bus_manager_foreach_client(m, send_finished,
- (usec_t[6]) { firmware_usec, loader_usec, kernel_usec, initrd_usec, userspace_usec, total_usec });
+ r = bus_manager_foreach_client(m, send_finished,
+ (usec_t[6]) { firmware_usec, loader_usec, kernel_usec, initrd_usec, userspace_usec, total_usec });
+ if (r < 0)
+ log_debug("Failed to send finished signal: %s", strerror(-r));
}
static int send_reloading(sd_bus *bus, const char *destination, void *userdata) {
return sd_bus_send_to(bus, message, destination, NULL);
}
-int bus_manager_send_reloading(Manager *m, bool active) {
+void bus_manager_send_reloading(Manager *m, bool active) {
+ int r;
+
assert(m);
- return bus_manager_foreach_client(m, send_reloading, INT_TO_PTR(active));
+ r = bus_manager_foreach_client(m, send_reloading, INT_TO_PTR(active));
+ if (r < 0)
+ log_debug("Failed to send reloading signal: %s", strerror(-r));
+
}