tree-wide: make bus_map_all_properties return a proper sd_bus_error
And then show it, to make things a bit friendlier to the user if we fail acquiring some props. In fact, this fixes a number of actual bugs, where we used an error structure for output that we actually never got an error in.
This commit is contained in:
@@ -1116,9 +1116,9 @@ static int map_basic(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_
|
||||
int bus_message_map_all_properties(
|
||||
sd_bus_message *m,
|
||||
const struct bus_properties_map *map,
|
||||
sd_bus_error *error,
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
@@ -1156,9 +1156,9 @@ int bus_message_map_all_properties(
|
||||
|
||||
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, error, v);
|
||||
else
|
||||
r = map_basic(sd_bus_message_get_bus(m), member, m, &error, v);
|
||||
r = map_basic(sd_bus_message_get_bus(m), member, m, error, v);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1184,6 +1184,7 @@ int bus_message_map_all_properties(
|
||||
int bus_message_map_properties_changed(
|
||||
sd_bus_message *m,
|
||||
const struct bus_properties_map *map,
|
||||
sd_bus_error *error,
|
||||
void *userdata) {
|
||||
|
||||
const char *member;
|
||||
@@ -1192,7 +1193,7 @@ int bus_message_map_properties_changed(
|
||||
assert(m);
|
||||
assert(map);
|
||||
|
||||
r = bus_message_map_all_properties(m, map, userdata);
|
||||
r = bus_message_map_all_properties(m, map, error, userdata);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -1222,10 +1223,10 @@ int bus_map_all_properties(
|
||||
const char *destination,
|
||||
const char *path,
|
||||
const struct bus_properties_map *map,
|
||||
sd_bus_error *error,
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
int r;
|
||||
|
||||
assert(bus);
|
||||
@@ -1239,13 +1240,13 @@ int bus_map_all_properties(
|
||||
path,
|
||||
"org.freedesktop.DBus.Properties",
|
||||
"GetAll",
|
||||
&error,
|
||||
error,
|
||||
&m,
|
||||
"s", "");
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return bus_message_map_all_properties(m, map, userdata);
|
||||
return bus_message_map_all_properties(m, map, error, userdata);
|
||||
}
|
||||
|
||||
int bus_connect_transport(BusTransport transport, const char *host, bool user, sd_bus **ret) {
|
||||
|
||||
Reference in New Issue
Block a user