return log_error_errno(r, "Failed to read key '%s': %m", fn);
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
- r = bus_call_method(bus, bus_mgr, "AddSigningKey", &error, /* reply= */ NULL, "sst", fn, pem, UINT64_C(0));
+ r = bus_call_method(bus, bus_mgr, "AddSigningKey", &error, /* ret_reply= */ NULL, "sst", fn, pem, UINT64_C(0));
if (r < 0)
return log_error_errno(r, "Failed to add signing key '%s': %s", fn, bus_error_message(&error, r));
assert_se(fn);
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
- r = bus_call_method(bus, bus_mgr, "RemoveSigningKey", &error, /* reply= */ NULL, "st", fn, UINT64_C(0));
+ r = bus_call_method(bus, bus_mgr, "RemoveSigningKey", &error, /* ret_reply= */ NULL, "st", fn, UINT64_C(0));
if (r < 0)
return log_error_errno(r, "Failed to remove signing key '%s': %s", fn, bus_error_message(&error, r));
container_bus = allocated_bus ?: m->manager->bus;
getty = strjoina("container-getty@", p, ".service");
- r = bus_call_method(container_bus, bus_systemd_mgr, "StartUnit", error, /* reply = */ NULL, "ss", getty, "replace");
+ r = bus_call_method(container_bus, bus_systemd_mgr, "StartUnit", error, /* ret_reply = */ NULL, "ss", getty, "replace");
if (r < 0)
return log_debug_errno(r, "Failed to StartUnit '%s' in container '%s': %m", getty, m->name);
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
int b = *(bool*) userdata;
const char *property,
sd_bus_message *value,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
int b, r;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
/* Defaults to false. */
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
sd_id128_t *id = userdata;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
uint64_t sz = *(size_t*) userdata;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
int64_t l = *(long*) userdata;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
uint64_t ul = *(unsigned long*) userdata;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
const char *is_soft;
struct rlimit *rl;
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
Set **s = ASSERT_PTR(userdata);
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
PidRef *pidref = ASSERT_PTR(userdata);
#include "forward.h"
-int bus_property_get_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_set_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *error);
-int bus_property_get_tristate(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_get_id128(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_set_bool(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *reterr_error);
+int bus_property_get_tristate(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_get_id128(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
#define bus_property_get_usec ((sd_bus_property_get_t) NULL)
#define bus_property_set_usec ((sd_bus_property_set_t) NULL)
#if __SIZEOF_SIZE_T__ == 8
#define bus_property_get_size ((sd_bus_property_get_t) NULL)
#else
-int bus_property_get_size(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_size(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
#endif
#if __SIZEOF_LONG__ == 8
#define bus_property_get_long ((sd_bus_property_get_t) NULL)
#define bus_property_get_ulong ((sd_bus_property_get_t) NULL)
#else
-int bus_property_get_long(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_get_ulong(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_long(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_get_ulong(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
#endif
/* uid_t and friends on Linux 32 bit. This means we can just use the
assert_cc(sizeof(mode_t) == sizeof(uint32_t));
#define bus_property_get_mode ((sd_bus_property_get_t) NULL)
-int bus_property_get_rlimit(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_rlimit(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
-int bus_property_get_string_set(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_string_set(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
-int bus_property_get_pidfdid(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_pidfdid(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
#define BUS_DEFINE_PROPERTY_GET_GLOBAL(function, bus_type, val) \
int function(sd_bus *bus, \
const char *property, \
sd_bus_message *reply, \
void *userdata, \
- sd_bus_error *error) { \
+ sd_bus_error *reterr_error) { \
\
assert(bus); \
assert(reply); \
const char *property, \
sd_bus_message *reply, \
void *userdata, \
- sd_bus_error *error) { \
+ sd_bus_error *reterr_error) { \
\
data_type *data = ASSERT_PTR(userdata); \
\
SD_BUS_PROPERTY(name "Monotonic", "t", bus_property_get_usec, (offset) + offsetof(struct dual_timestamp, monotonic), (flags))
/* For deprecated properties. */
-int bus_property_get_bool_false(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_get_bool_true(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_get_uint64_max(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_bool_false(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_get_bool_true(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_get_uint64_max(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
* within a single struct. */
int bus_call_method_async(
sd_bus *bus,
- sd_bus_slot **slot,
+ sd_bus_slot **ret_slot,
const BusLocator *locator,
const char *member,
sd_bus_message_handler_t callback,
assert(locator);
va_start(ap, types);
- r = sd_bus_call_method_asyncv(bus, slot, locator->destination, locator->path, locator->interface, member, callback, userdata, types, ap);
+ r = sd_bus_call_method_asyncv(bus, ret_slot, locator->destination, locator->path, locator->interface, member, callback, userdata, types, ap);
va_end(ap);
return r;
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
- sd_bus_message **reply,
+ sd_bus_error *reterr_error,
+ sd_bus_message **ret_reply,
const char *types, ...) {
va_list ap;
assert(locator);
va_start(ap, types);
- r = sd_bus_call_methodv(bus, locator->destination, locator->path, locator->interface, member, error, reply, types, ap);
+ r = sd_bus_call_methodv(bus, locator->destination, locator->path, locator->interface, member, reterr_error, ret_reply, types, ap);
va_end(ap);
return r;
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
- sd_bus_message **reply,
+ sd_bus_error *reterr_error,
+ sd_bus_message **ret_reply,
const char *type) {
assert(locator);
- return sd_bus_get_property(bus, locator->destination, locator->path, locator->interface, member, error, reply, type);
+ return sd_bus_get_property(bus, locator->destination, locator->path, locator->interface, member, reterr_error, ret_reply, type);
}
int bus_get_property_trivial(
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
- char type, void *ptr) {
+ sd_bus_error *reterr_error,
+ char type,
+ void *ret) {
assert(locator);
- return sd_bus_get_property_trivial(bus, locator->destination, locator->path, locator->interface, member, error, type, ptr);
+ return sd_bus_get_property_trivial(bus, locator->destination, locator->path, locator->interface, member, reterr_error, type, ret);
}
int bus_get_property_string(
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
char **ret) {
assert(locator);
- return sd_bus_get_property_string(bus, locator->destination, locator->path, locator->interface, member, error, ret);
+ return sd_bus_get_property_string(bus, locator->destination, locator->path, locator->interface, member, reterr_error, ret);
}
int bus_get_property_strv(
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
char ***ret) {
assert(locator);
- return sd_bus_get_property_strv(bus, locator->destination, locator->path, locator->interface, member, error, ret);
+ return sd_bus_get_property_strv(bus, locator->destination, locator->path, locator->interface, member, reterr_error, ret);
}
int bus_set_property(
sd_bus *bus,
const BusLocator *locator,
const char *member,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
const char *type, ...) {
va_list ap;
assert(locator);
va_start(ap, type);
- r = sd_bus_set_propertyv(bus, locator->destination, locator->path, locator->interface, member, error, type, ap);
+ r = sd_bus_set_propertyv(bus, locator->destination, locator->path, locator->interface, member, reterr_error, type, ap);
va_end(ap);
return r;
int bus_match_signal(
sd_bus *bus,
- sd_bus_slot **ret,
+ sd_bus_slot **ret_slot,
const BusLocator *locator,
const char *member,
sd_bus_message_handler_t callback,
assert(locator);
- return sd_bus_match_signal(bus, ret, locator->destination, locator->path, locator->interface, member, callback, userdata);
+ return sd_bus_match_signal(bus, ret_slot, locator->destination, locator->path, locator->interface, member, callback, userdata);
}
int bus_match_signal_async(
sd_bus *bus,
- sd_bus_slot **ret,
+ sd_bus_slot **ret_slot,
const BusLocator *locator,
const char *member,
sd_bus_message_handler_t callback,
assert(locator);
- return sd_bus_match_signal_async(bus, ret, locator->destination, locator->path, locator->interface, member, callback, install_callback, userdata);
+ return sd_bus_match_signal_async(bus, ret_slot, locator->destination, locator->path, locator->interface, member, callback, install_callback, userdata);
}
int bus_message_new_method_call(
sd_bus *bus,
- sd_bus_message **m,
+ sd_bus_message **ret,
const BusLocator *locator,
const char *member) {
assert(locator);
- return sd_bus_message_new_method_call(bus, m, locator->destination, locator->path, locator->interface, member);
+ return sd_bus_message_new_method_call(bus, ret, locator->destination, locator->path, locator->interface, member);
}
/* Shorthand flavors of the sd-bus convenience helpers with destination,path,interface strings encapsulated
* within a single struct. */
-int bus_call_method_async(sd_bus *bus, sd_bus_slot **slot, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, void *userdata, const char *types, ...);
-int bus_call_method(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, sd_bus_message **reply, const char *types, ...);
-int bus_get_property(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, sd_bus_message **reply, const char *type);
-int bus_get_property_trivial(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, char type, void *ptr);
-int bus_get_property_string(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, char **ret);
-int bus_get_property_strv(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, char ***ret);
-int bus_set_property(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *error, const char *type, ...);
-int bus_match_signal(sd_bus *bus, sd_bus_slot **ret, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, void *userdata);
-int bus_match_signal_async(sd_bus *bus, sd_bus_slot **ret, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, sd_bus_message_handler_t install_callback, void *userdata);
-int bus_message_new_method_call(sd_bus *bus, sd_bus_message **m, const BusLocator *locator, const char *member);
+int bus_call_method_async(sd_bus *bus, sd_bus_slot **ret_slot, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, void *userdata, const char *types, ...);
+int bus_call_method(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, sd_bus_message **ret_reply, const char *types, ...);
+int bus_get_property(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, sd_bus_message **ret_reply, const char *type);
+int bus_get_property_trivial(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, char type, void *ret);
+int bus_get_property_string(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, char **ret);
+int bus_get_property_strv(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, char ***ret);
+int bus_set_property(sd_bus *bus, const BusLocator *locator, const char *member, sd_bus_error *reterr_error, const char *type, ...);
+int bus_match_signal(sd_bus *bus, sd_bus_slot **ret_slot, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, void *userdata);
+int bus_match_signal_async(sd_bus *bus, sd_bus_slot **ret_slot, const BusLocator *locator, const char *member, sd_bus_message_handler_t callback, sd_bus_message_handler_t install_callback, void *userdata);
+int bus_message_new_method_call(sd_bus *bus, sd_bus_message **ret, const BusLocator *locator, const char *member);
const char *property,
sd_bus_message *reply,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
_cleanup_free_ char *t = NULL;
int r;
const char *property,
sd_bus_message *value,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
const char *t;
int r;
r = log_level_from_string(t);
if (r < 0)
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid log level '%s'", t);
+ return sd_bus_error_setf(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid log level '%s'", t);
log_info("Setting log level to %s.", t);
log_set_max_level(r);
const char *property,
sd_bus_message *value,
void *userdata,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
LogTarget target;
const char *t;
target = log_target_from_string(t);
if (target < 0)
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid log target '%s'", t);
+ return sd_bus_error_setf(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid log target '%s'", t);
log_info("Setting log target to %s.", log_target_to_string(target));
log_set_target_and_open(target);
int bus_log_control_api_register(sd_bus *bus);
-int bus_property_get_log_level(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_set_log_level(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *error);
+int bus_property_get_log_level(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_set_log_level(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *reterr_error);
-int bus_property_get_log_target(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
-int bus_property_set_log_target(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_log_target(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
+int bus_property_set_log_target(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
-int bus_property_get_syslog_identifier(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error);
+int bus_property_get_syslog_identifier(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error);
#include "string-util.h"
#include "strv.h"
-int bus_map_id128(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
+int bus_map_id128(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata) {
sd_id128_t *p = userdata;
int r;
return 0;
}
-int bus_map_strv_sort(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
+int bus_map_strv_sort(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata) {
char ***p = ASSERT_PTR(userdata);
int r;
return 0;
}
-int bus_map_job_id(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
+int bus_map_job_id(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata) {
uint32_t *p = ASSERT_PTR(userdata);
assert(m);
sd_bus_message *m,
const struct bus_properties_map *map,
unsigned flags,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
void *userdata) {
int r;
v = (uint8_t *)userdata + prop->offset;
if (map[i].set)
- r = prop->set(sd_bus_message_get_bus(m), member, m, error, v);
+ r = prop->set(sd_bus_message_get_bus(m), member, m, reterr_error, v);
else
r = map_basic(m, flags, v);
if (r < 0)
const char *path,
const struct bus_properties_map *map,
unsigned flags,
- sd_bus_error *error,
- sd_bus_message **reply,
+ sd_bus_error *reterr_error,
+ sd_bus_message **ret_reply,
void *userdata) {
- _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
+ _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
int r;
assert(bus);
assert(destination);
assert(path);
assert(map);
- assert(reply || (flags & BUS_MAP_STRDUP));
+ assert(ret_reply || (flags & BUS_MAP_STRDUP));
r = sd_bus_call_method(
bus,
path,
"org.freedesktop.DBus.Properties",
"GetAll",
- error,
- &m,
+ reterr_error,
+ &reply,
"s", "");
if (r < 0)
return r;
- r = bus_message_map_all_properties(m, map, flags, error, userdata);
+ r = bus_message_map_all_properties(reply, map, flags, reterr_error, userdata);
if (r < 0)
return r;
- if (reply)
- *reply = sd_bus_message_ref(m);
+ if (ret_reply)
+ *ret_reply = TAKE_PTR(reply);
return r;
}
#include "forward.h"
-typedef int (*bus_property_set_t) (sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata);
+typedef int (*bus_property_set_t)(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata);
struct bus_properties_map {
const char *member;
BUS_MAP_BOOLEAN_AS_BOOL = 1 << 1, /* If set, each "b" message is written to a bool pointer. If not set, "b" is written to an int pointer. */
};
-int bus_map_id128(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata);
-int bus_map_strv_sort(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata);
-int bus_map_job_id(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata);
+int bus_map_id128(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata);
+int bus_map_strv_sort(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata);
+int bus_map_job_id(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *reterr_error, void *userdata);
-int bus_message_map_all_properties(sd_bus_message *m, const struct bus_properties_map *map, unsigned flags, sd_bus_error *error, void *userdata);
+int bus_message_map_all_properties(sd_bus_message *m, const struct bus_properties_map *map, unsigned flags, sd_bus_error *reterr_error, void *userdata);
int bus_map_all_properties(sd_bus *bus, const char *destination, const char *path, const struct bus_properties_map *map,
- unsigned flags, sd_bus_error *error, sd_bus_message **reply, void *userdata);
+ unsigned flags, sd_bus_error *reterr_error, sd_bus_message **ret_reply, void *userdata);
}
}
-int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret) {
+int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *reterr_error, int *ret) {
int ifindex, r;
assert(message);
return r;
if (ifindex <= 0)
- return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid interface index");
+ return sd_bus_error_set(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid interface index");
*ret = ifindex;
return 0;
}
-int bus_message_read_family(sd_bus_message *message, sd_bus_error *error, int *ret) {
+int bus_message_read_family(sd_bus_message *message, sd_bus_error *reterr_error, int *ret) {
int family, r;
assert(message);
return r;
if (!IN_SET(family, AF_INET, AF_INET6))
- return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %i", family);
+ return sd_bus_error_setf(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Unknown address family %i", family);
*ret = family;
return 0;
}
-int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *error, int *ret_family, union in_addr_union *ret_addr) {
+int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *reterr_error, int *ret_family, union in_addr_union *ret_addr) {
int family, r;
const void *d;
size_t sz;
assert(message);
- r = bus_message_read_family(message, error, &family);
+ r = bus_message_read_family(message, reterr_error, &family);
if (r < 0)
return r;
return r;
if (sz != FAMILY_ADDRESS_SIZE(family))
- return sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid address size");
+ return sd_bus_error_set(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid address size");
if (ret_family)
*ret_family = family;
static int bus_message_read_dns_one(
sd_bus_message *message,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
bool extended,
int *ret_family,
union in_addr_union *ret_address,
if (r <= 0)
return r;
- r = bus_message_read_in_addr_auto(message, error, &family, &a);
+ r = bus_message_read_in_addr_auto(message, reterr_error, &family, &a);
if (r < 0)
return r;
if (!dns_server_address_valid(family, &a)) {
- r = sd_bus_error_set(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid DNS server address");
+ r = sd_bus_error_set(reterr_error, SD_BUS_ERROR_INVALID_ARGS, "Invalid DNS server address");
assert(r < 0);
return r;
}
int bus_message_read_dns_servers(
sd_bus_message *message,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
bool extended,
struct in_addr_full ***ret_dns,
size_t *ret_n_dns) {
uint16_t port;
int family;
- r = bus_message_read_dns_one(message, error, extended, &family, &a, &port, &server_name);
+ r = bus_message_read_dns_one(message, reterr_error, extended, &family, &a, &port, &server_name);
if (r < 0)
goto clear;
if (r == 0)
int bus_message_read_id128(sd_bus_message *m, sd_id128_t *ret);
-int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *error, int *ret);
-int bus_message_read_family(sd_bus_message *message, sd_bus_error *error, int *ret);
-int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *error, int *ret_family, union in_addr_union *ret_addr);
+int bus_message_read_ifindex(sd_bus_message *message, sd_bus_error *reterr_error, int *ret);
+int bus_message_read_family(sd_bus_message *message, sd_bus_error *reterr_error, int *ret);
+int bus_message_read_in_addr_auto(sd_bus_message *message, sd_bus_error *reterr_error, int *ret_family, union in_addr_union *ret_addr);
int bus_message_read_dns_servers(
sd_bus_message *message,
- sd_bus_error *error,
+ sd_bus_error *reterr_error,
bool extended,
struct in_addr_full ***ret_dns,
size_t *ret_n_dns);
int bus_introspect_implementations(
FILE *out,
const char *pattern,
- const BusObjectImplementation* const* bus_objects) {
+ const BusObjectImplementation* const *bus_objects) {
const BusObjectImplementation *impl, *main_impl = NULL;
_cleanup_free_ char *s = NULL;
int bus_introspect_implementations(
FILE *out,
const char *pattern,
- const BusObjectImplementation* const* bus_objects);
+ const BusObjectImplementation* const *bus_objects);
const char *action,
const char **details,
uid_t good_user,
- bool *_challenge,
- sd_bus_error *ret_error) {
+ bool *ret_challenge,
+ sd_bus_error *reterr_error) {
int r;
r = sd_bus_query_sender_privilege(call, -1);
if (r < 0)
return r;
- if (r > 0)
+ if (r > 0) {
+ if (ret_challenge)
+ *ret_challenge = false;
return 1;
+ }
#if ENABLE_POLKIT
_cleanup_(sd_bus_message_unrefp) sd_bus_message *request = NULL, *reply = NULL;
if (r < 0)
return r;
- r = sd_bus_call(call->bus, request, 0, ret_error, &reply);
+ r = sd_bus_call(call->bus, request, 0, reterr_error, &reply);
if (r < 0) {
/* Treat no PK available as access denied */
- if (bus_error_is_unknown_service(ret_error)) {
- sd_bus_error_free(ret_error);
+ if (bus_error_is_unknown_service(reterr_error)) {
+ sd_bus_error_free(reterr_error);
return -EACCES;
}
if (authorized)
return 1;
- if (_challenge) {
- *_challenge = challenge;
+ if (ret_challenge) {
+ *ret_challenge = challenge;
return 0;
}
#endif
LIST_FIELDS(struct AsyncPolkitQueryAction, authorized);
} AsyncPolkitQueryAction;
-static AsyncPolkitQueryAction *async_polkit_query_action_free(AsyncPolkitQueryAction *a) {
+static AsyncPolkitQueryAction* async_polkit_query_action_free(AsyncPolkitQueryAction *a) {
if (!a)
return NULL;
sd_bus_error error; /* the precise error, in case error_action is set */
} AsyncPolkitQuery;
-static AsyncPolkitQuery *async_polkit_query_free(AsyncPolkitQuery *q) {
+static AsyncPolkitQuery* async_polkit_query_free(AsyncPolkitQuery *q) {
if (!q)
return NULL;
return 1;
}
-static int async_polkit_callback(sd_bus_message *reply, void *userdata, sd_bus_error *error) {
+static int async_polkit_callback(sd_bus_message *reply, void *userdata, sd_bus_error *reterr_error) {
AsyncPolkitQuery *q = ASSERT_PTR(userdata);
int r;
const char *action,
const char **details,
PolkitFlags flags,
- sd_bus_error *ret_error) {
+ sd_bus_error *reterr_error) {
assert(q);
assert(action);
return 1; /* Allow! */
if (q->error_action && streq(q->error_action->action, action))
- return sd_bus_error_copy(ret_error, &q->error);
+ return sd_bus_error_copy(reterr_error, &q->error);
if (q->denied_action && streq(q->denied_action->action, action))
return -EACCES; /* Deny! */
uid_t good_user,
PolkitFlags flags,
Hashmap **registry,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
int r;
/* This is a repeated invocation of this function, hence let's check if we've already got
* a response from polkit for this action */
if (q) {
- r = async_polkit_query_check_action(q, action, details, flags, error);
+ r = async_polkit_query_check_action(q, action, details, flags, reterr_error);
if (r != 0) {
log_debug("Found matching previous polkit authentication for '%s'.", action);
return r;
_POLKIT_MASK_PUBLIC = POLKIT_ALLOW_INTERACTIVE | POLKIT_ALWAYS_QUERY, /* polkit accepts these flags verbatim */
} PolkitFlags;
-int bus_test_polkit(sd_bus_message *call, const char *action, const char **details, uid_t good_user, bool *_challenge, sd_bus_error *e);
+int bus_test_polkit(sd_bus_message *call, const char *action, const char **details, uid_t good_user, bool *ret_challenge, sd_bus_error *reterr_error);
-int bus_verify_polkit_async_full(sd_bus_message *call, const char *action, const char **details, uid_t good_user, PolkitFlags flags, Hashmap **registry, sd_bus_error *error);
-static inline int bus_verify_polkit_async(sd_bus_message *call, const char *action, const char **details, Hashmap **registry, sd_bus_error *error) {
- return bus_verify_polkit_async_full(call, action, details, UID_INVALID, 0, registry, error);
+int bus_verify_polkit_async_full(sd_bus_message *call, const char *action, const char **details, uid_t good_user, PolkitFlags flags, Hashmap **registry, sd_bus_error *reterr_error);
+static inline int bus_verify_polkit_async(sd_bus_message *call, const char *action, const char **details, Hashmap **registry, sd_bus_error *reterr_error) {
+ return bus_verify_polkit_async_full(call, action, details, UID_INVALID, 0, registry, reterr_error);
}
int varlink_verify_polkit_async_full(sd_varlink *link, sd_bus *bus, const char *action, const char **details, uid_t good_user, PolkitFlags flags, Hashmap **registry);
bus_message_print_t func,
char **filter,
BusPrintPropertyFlags flags,
- sd_bus_error *reterr) {
+ sd_bus_error *reterr_error) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
int r;
path,
"org.freedesktop.DBus.Properties",
"GetAll",
- reterr,
+ reterr_error,
&reply,
"s", "");
if (r < 0)
int bus_print_property_value(const char *name, const char *expected_value, BusPrintPropertyFlags flags, const char *value);
int bus_print_property_valuef(const char *name, const char *expected_value, BusPrintPropertyFlags flags, const char *fmt, ...) _printf_(4,5);
int bus_message_print_all_properties(sd_bus_message *m, bus_message_print_t func, char **filter, BusPrintPropertyFlags flags, Set **found_properties);
-int bus_print_all_properties(sd_bus *bus, const char *dest, const char *path, bus_message_print_t func, char **filter, BusPrintPropertyFlags flags, sd_bus_error *reterr);
+int bus_print_all_properties(sd_bus *bus, const char *dest, const char *path, bus_message_print_t func, char **filter, BusPrintPropertyFlags flags, sd_bus_error *reterr_error);
const char *prefix,
unsigned n_columns,
OutputFlags flags,
- sd_bus_error *error) {
+ sd_bus_error *reterr_error) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
Hashmap *cgroups = NULL;
bus,
bus_systemd_mgr,
"GetUnitProcesses",
- error,
+ reterr_error,
&reply,
"s",
unit);
#include "forward.h"
-int unit_show_processes(sd_bus *bus, const char *unit, const char *cgroup_path, const char *prefix, unsigned n_columns, OutputFlags flags, sd_bus_error *error);
+int unit_show_processes(sd_bus *bus, const char *unit, const char *cgroup_path, const char *prefix, unsigned n_columns, OutputFlags flags, sd_bus_error *reterr_error);
"Unknown assignment: %s", assignment);
}
-int bus_append_unit_property_assignment_many(sd_bus_message *m, UnitType t, char **l) {
+int bus_append_unit_property_assignment_many(sd_bus_message *m, UnitType t, char * const *l) {
int r;
assert(m);
return 0;
}
-int unit_load_state(sd_bus *bus, const char *name, char **load_state) {
+int unit_load_state(sd_bus *bus, const char *name, char **ret) {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_free_ char *path = NULL;
int r;
"org.freedesktop.systemd1.Unit",
"LoadState",
&error,
- load_state);
+ ret);
if (r < 0)
return log_error_errno(r, "Failed to get load state of %s: %s", name, bus_error_message(&error, r));
r = bus_call_method(f->bus, bus_systemd_mgr,
freeze ? "FreezeUnit" : "ThawUnit",
&error,
- /* reply = */ NULL,
+ /* ret_reply = */ NULL,
"s",
f->name);
if (r < 0) {
int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u);
int bus_append_unit_property_assignment(sd_bus_message *m, UnitType t, const char *assignment);
-int bus_append_unit_property_assignment_many(sd_bus_message *m, UnitType t, char **l);
+int bus_append_unit_property_assignment_many(sd_bus_message *m, UnitType t, char * const *l);
int bus_append_scope_pidref(sd_bus_message *m, const PidRef *pidref, bool allow_pidfd);
int bus_deserialize_and_dump_unit_file_changes(sd_bus_message *m, bool quiet);
-int unit_load_state(sd_bus *bus, const char *name, char **load_state);
+int unit_load_state(sd_bus *bus, const char *name, char **ret);
int unit_info_compare(const UnitInfo *a, const UnitInfo *b);
#include "time-util.h"
#include "uid-classification.h"
-static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
+static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
sd_event *e = ASSERT_PTR(userdata);
assert(m);
return code;
}
-int bus_name_has_owner(sd_bus *c, const char *name, sd_bus_error *error) {
+int bus_name_has_owner(sd_bus *bus, const char *name, sd_bus_error *reterr_error) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *rep = NULL;
int r, has_owner = 0;
- assert(c);
+ assert(bus);
assert(name);
- r = sd_bus_call_method(c,
+ r = sd_bus_call_method(bus,
"org.freedesktop.DBus",
"/org/freedesktop/dbus",
"org.freedesktop.DBus",
"NameHasOwner",
- error,
+ reterr_error,
&rep,
"s",
name);
r = sd_bus_message_read_basic(rep, 'b', &has_owner);
if (r < 0)
- return sd_bus_error_set_errno(error, r);
+ return sd_bus_error_set_errno(reterr_error, r);
return has_owner;
}
SD_BUS_ERROR_TIMED_OUT);
}
-int bus_check_peercred(sd_bus *c) {
+int bus_check_peercred(sd_bus *bus) {
struct ucred ucred;
int fd, r;
- assert(c);
+ assert(bus);
- fd = sd_bus_get_fd(c);
+ fd = sd_bus_get_fd(bus);
if (fd < 0)
return fd;
return 1;
}
-int bus_connect_system_systemd(sd_bus **ret_bus) {
+int bus_connect_system_systemd(sd_bus **ret) {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
int r;
- assert(ret_bus);
+ assert(ret);
r = sd_bus_new(&bus);
if (r < 0)
if (r < 0)
return r;
- *ret_bus = TAKE_PTR(bus);
+ *ret = TAKE_PTR(bus);
return 0;
}
-int bus_connect_user_systemd(sd_bus **ret_bus) {
+int bus_connect_user_systemd(sd_bus **ret) {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
_cleanup_free_ char *ee = NULL;
const char *e;
int r;
- assert(ret_bus);
+ assert(ret);
e = secure_getenv("XDG_RUNTIME_DIR");
if (!e)
if (r < 0)
return r;
- *ret_bus = TAKE_PTR(bus);
+ *ret = TAKE_PTR(bus);
return 0;
}
return bus_set_address_capsule(bus, capsule, "bus", ret_pin_fd);
}
-int bus_connect_capsule_systemd(const char *capsule, sd_bus **ret_bus) {
+int bus_connect_capsule_systemd(const char *capsule, sd_bus **ret) {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
_cleanup_close_ int inode_fd = -EBADF;
int r;
assert(capsule);
- assert(ret_bus);
+ assert(ret);
r = sd_bus_new(&bus);
if (r < 0)
if (r < 0)
return r;
- *ret_bus = TAKE_PTR(bus);
+ *ret = TAKE_PTR(bus);
return 0;
}
-int bus_connect_capsule_bus(const char *capsule, sd_bus **ret_bus) {
+int bus_connect_capsule_bus(const char *capsule, sd_bus **ret) {
_cleanup_(sd_bus_close_unrefp) sd_bus *bus = NULL;
_cleanup_close_ int inode_fd = -EBADF;
int r;
assert(capsule);
- assert(ret_bus);
+ assert(ret);
r = sd_bus_new(&bus);
if (r < 0)
if (r < 0)
return r;
- *ret_bus = TAKE_PTR(bus);
+ *ret = TAKE_PTR(bus);
return 0;
}
BusTransport transport,
const char *host,
RuntimeScope runtime_scope,
- sd_bus **ret_bus) {
+ sd_bus **ret) {
int r;
assert(transport >= 0);
assert(transport < _BUS_TRANSPORT_MAX);
- assert(ret_bus);
+ assert(ret);
switch (transport) {
switch (runtime_scope) {
case RUNTIME_SCOPE_USER:
- r = bus_connect_user_systemd(ret_bus);
+ r = bus_connect_user_systemd(ret);
/* We used to always fall back to the user session bus if we couldn't connect to the
* private manager bus. To keep compat with existing code that was setting
* DBUS_SESSION_BUS_ADDRESS without setting XDG_RUNTIME_DIR, connect to the user
* session bus if DBUS_SESSION_BUS_ADDRESS is set and XDG_RUNTIME_DIR isn't. */
if (r == -ENOMEDIUM && secure_getenv("DBUS_SESSION_BUS_ADDRESS")) {
log_debug_errno(r, "$XDG_RUNTIME_DIR not set, unable to connect to private bus. Falling back to session bus.");
- r = sd_bus_default_user(ret_bus);
+ r = sd_bus_default_user(ret);
}
return r;
/* If we are root then let's talk directly to the system instance, instead of
* going via the bus. */
if (geteuid() == 0)
- return bus_connect_system_systemd(ret_bus);
+ return bus_connect_system_systemd(ret);
- return sd_bus_default_system(ret_bus);
+ return sd_bus_default_system(ret);
default:
assert_not_reached();
case BUS_TRANSPORT_REMOTE:
assert_return(runtime_scope == RUNTIME_SCOPE_SYSTEM, -EOPNOTSUPP);
- return sd_bus_open_system_remote(ret_bus, host);
+ return sd_bus_open_system_remote(ret, host);
case BUS_TRANSPORT_MACHINE:
assert_return(runtime_scope == RUNTIME_SCOPE_SYSTEM, -EOPNOTSUPP);
- return sd_bus_open_system_machine(ret_bus, host);
+ return sd_bus_open_system_machine(ret, host);
case BUS_TRANSPORT_CAPSULE:
assert_return(runtime_scope == RUNTIME_SCOPE_USER, -EINVAL);
- return bus_connect_capsule_systemd(host, ret_bus);
+ return bus_connect_capsule_systemd(host, ret);
default:
assert_not_reached();
return 0;
}
-int bus_reply_pair_array(sd_bus_message *m, char **l) {
+int bus_reply_pair_array(sd_bus_message *m, char * const *l) {
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
int r;
return sd_bus_send(NULL, reply, NULL);
}
-static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdata, sd_bus_error *ret_error) {
+static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdata, sd_bus_error *reterr_error) {
_cleanup_(memstream_done) MemStream m = {};
_cleanup_free_ char *dump = NULL;
_cleanup_close_ int fd = -EBADF;
/* The default install callback will fail and disconnect the bus if it cannot register the match, but this
* is only a debug method, we definitely don't want to fail in case there's some permission issue. */
-static int dummy_install_callback(sd_bus_message *message, void *userdata, sd_bus_error *ret_error) {
+static int dummy_install_callback(sd_bus_message *message, void *userdata, sd_bus_error *reterr_error) {
return 1;
}
int bus_event_loop_with_idle(sd_event *e, sd_bus *bus, const char *name, usec_t timeout, check_idle_t check_idle, void *userdata);
-int bus_name_has_owner(sd_bus *c, const char *name, sd_bus_error *error);
+int bus_name_has_owner(sd_bus *bus, const char *name, sd_bus_error *reterr_error);
bool bus_error_is_unknown_service(const sd_bus_error *error);
bool bus_error_is_connection(const sd_bus_error *error);
-int bus_check_peercred(sd_bus *c);
+int bus_check_peercred(sd_bus *bus);
int bus_set_address_capsule_bus(sd_bus *bus, const char *capsule, int *ret_pin_fd);
-int bus_connect_system_systemd(sd_bus **ret_bus);
-int bus_connect_user_systemd(sd_bus **ret_bus);
-int bus_connect_capsule_systemd(const char *capsule, sd_bus **ret_bus);
-int bus_connect_capsule_bus(const char *capsule, sd_bus **ret_bus);
+int bus_connect_system_systemd(sd_bus **ret);
+int bus_connect_user_systemd(sd_bus **ret);
+int bus_connect_capsule_systemd(const char *capsule, sd_bus **ret);
+int bus_connect_capsule_bus(const char *capsule, sd_bus **ret);
int bus_connect_transport(BusTransport transport, const char *host, RuntimeScope runtime_scope, sd_bus **bus);
int bus_connect_transport_systemd(BusTransport transport, const char *host, RuntimeScope runtime_scope, sd_bus **bus);
return bus_open_system_watch_bind_with_description(ret, NULL);
}
-int bus_reply_pair_array(sd_bus_message *m, char **l);
+int bus_reply_pair_array(sd_bus_message *m, char * const *l);
/* Listen to GetMallocInfo() calls to 'destination' and return malloc_info() via FD */
int bus_register_malloc_status(sd_bus *bus, const char *destination);
return mfree(d);
}
-static int match_disconnected(sd_bus_message *m, void *userdata, sd_bus_error *error) {
+static int match_disconnected(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
assert(m);
log_warning("D-Bus connection terminated while waiting for jobs.");
return 0;
}
-static int match_job_removed(sd_bus_message *m, void *userdata, sd_bus_error *error) {
+static int match_job_removed(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
BusWaitForJobs *d = ASSERT_PTR(userdata);
_cleanup_free_ char *job_found = NULL;
const char *path, *unit, *result;
bool has_failed:1;
} BusWaitForUnits;
-static WaitForItem *wait_for_item_free(WaitForItem *item) {
+static WaitForItem* wait_for_item_free(WaitForItem *item) {
int r;
if (!item)
d->items = hashmap_free(d->items);
}
-static int match_disconnected(sd_bus_message *m, void *userdata, sd_bus_error *error) {
+static int match_disconnected(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
BusWaitForUnits *d = ASSERT_PTR(userdata);
assert(m);
return 0;
}
-static int on_properties_changed(sd_bus_message *m, void *userdata, sd_bus_error *error) {
+static int on_properties_changed(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
WaitForItem *item = ASSERT_PTR(userdata);
const char *interface;
int r;
return 0;
}
-static int on_get_all_properties(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
+static int on_get_all_properties(sd_bus_message *m, void *userdata, sd_bus_error *reterr_error) {
WaitForItem *item = ASSERT_PTR(userdata);
const sd_bus_error *e;
int r;
goto fallback;
}
- r = bus_call_method(bus, bus_login_mgr, "PowerOff", &error, /* reply= */ NULL, "b", false);
+ r = bus_call_method(bus, bus_login_mgr, "PowerOff", &error, /* ret_reply= */ NULL, "b", false);
if (r >= 0) {
log_info("Requested powering off VM through D-Bus.");
return 0;
log_warning_errno(r, "Failed to shutdown VM via logind, ignoring: %s", bus_error_message(&error, r));
sd_bus_error_free(&error);
- r = bus_call_method(bus, bus_systemd_mgr, "PowerOff", &error, /* reply= */ NULL, /* types= */ NULL);
+ r = bus_call_method(bus, bus_systemd_mgr, "PowerOff", &error, /* ret_reply= */ NULL, /* types= */ NULL);
if (r >= 0) {
log_info("Requested powering off VM through D-Bus.");
return 0;