#include "bus-map-properties.h"
#include "alloc-util.h"
+#include "bus-util.h"
#include "strv.h"
#include "bus-message.h"
r = sd_bus_message_read_array(m, SD_BUS_TYPE_BYTE, &v, &n);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
if (n == 0)
*p = SD_ID128_NULL;
r = sd_bus_message_read_strv_extend(m, &l);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
r = strv_extend_strv(p, l, false);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
strv_sort(*p);
return 0;
r = sd_bus_message_peek_type(m, &type, NULL);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
switch (type) {
r = sd_bus_message_read_basic(m, type, &s);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
if (isempty(s))
s = NULL;
r = sd_bus_message_read_strv_extend(m, &l);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
return strv_extend_strv(p, l, false);
}
r = sd_bus_message_read_basic(m, type, &b);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
if (flags & BUS_MAP_BOOLEAN_AS_BOOL)
*(bool*) userdata = b;
r = sd_bus_message_read_basic(m, type, &u);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
*p = u;
return 0;
r = sd_bus_message_read_basic(m, type, &t);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
*p = t;
return 0;
r = sd_bus_message_read_basic(m, type, &d);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
*p = d;
return 0;
r = sd_bus_message_enter_container(m, SD_BUS_TYPE_ARRAY, "{sv}");
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
while ((r = sd_bus_message_enter_container(m, SD_BUS_TYPE_DICT_ENTRY, "sv")) > 0) {
const struct bus_properties_map *prop;
r = sd_bus_message_read_basic(m, SD_BUS_TYPE_STRING, &member);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
for (i = 0, prop = NULL; map[i].member; i++)
if (streq(map[i].member, member)) {
if (prop) {
r = sd_bus_message_peek_type(m, NULL, &contents);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
r = sd_bus_message_enter_container(m, SD_BUS_TYPE_VARIANT, contents);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
v = (uint8_t *)userdata + prop->offset;
if (map[i].set)
else
r = map_basic(sd_bus_message_get_bus(m), member, m, flags, error, v);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
r = sd_bus_message_exit_container(m);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
} else {
r = sd_bus_message_skip(m, "v");
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
}
r = sd_bus_message_exit_container(m);
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
}
if (r < 0)
- return r;
+ return bus_log_parse_error_debug(r);
+
+ r = sd_bus_message_exit_container(m);
+ if (r < 0)
+ return bus_log_parse_error_debug(r);
- return sd_bus_message_exit_container(m);
+ return r;
}
int bus_map_all_properties(