chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: make GetManagedObjects() work
[elogind.git]
/
src
/
libsystemd-bus
/
sd-bus.c
diff --git
a/src/libsystemd-bus/sd-bus.c
b/src/libsystemd-bus/sd-bus.c
index 795007acc4ae52ccb8199d9faea7efe2aa9e4f33..342af4d1d5c4c7a385364121a5176ac17e6eb35f 100644
(file)
--- a/
src/libsystemd-bus/sd-bus.c
+++ b/
src/libsystemd-bus/sd-bus.c
@@
-2499,6
+2499,7
@@
static int object_manager_serialize_vtable(
static int object_manager_serialize_path(
sd_bus *bus,
sd_bus_message *reply,
static int object_manager_serialize_path(
sd_bus *bus,
sd_bus_message *reply,
+ const char *prefix,
const char *path,
bool require_fallback,
sd_bus_error *error) {
const char *path,
bool require_fallback,
sd_bus_error *error) {
@@
-2509,10
+2510,11
@@
static int object_manager_serialize_path(
assert(bus);
assert(reply);
assert(bus);
assert(reply);
+ assert(prefix);
assert(path);
assert(error);
assert(path);
assert(error);
- n = hashmap_get(bus->nodes, p
ath
);
+ n = hashmap_get(bus->nodes, p
refix
);
if (!n)
return 0;
if (!n)
return 0;
@@
-2566,7
+2568,7
@@
static int object_manager_serialize_path_and_fallbacks(
assert(error);
/* First, add all vtables registered for this path */
assert(error);
/* First, add all vtables registered for this path */
- r = object_manager_serialize_path(bus, reply, path, false, error);
+ r = object_manager_serialize_path(bus, reply, path,
path,
false, error);
if (r < 0)
return r;
if (sd_bus_error_is_set(error))
if (r < 0)
return r;
if (sd_bus_error_is_set(error))
@@
-2587,7
+2589,7
@@
static int object_manager_serialize_path_and_fallbacks(
*e = 0;
*e = 0;
- r = object_manager_serialize_path(bus, reply, p, true, error);
+ r = object_manager_serialize_path(bus, reply, p,
path,
true, error);
if (r < 0)
return r;
if (r < 0)
return r;
@@
-2687,7
+2689,13
@@
static int process_get_managed_objects(
return 1;
}
return 1;
}
-static int object_find_and_run(sd_bus *bus, sd_bus_message *m, const char *p, bool require_fallback, bool *found_object) {
+static int object_find_and_run(
+ sd_bus *bus,
+ sd_bus_message *m,
+ const char *p,
+ bool require_fallback,
+ bool *found_object) {
+
struct node *n;
struct vtable_member vtable_key, *v;
int r;
struct node *n;
struct vtable_member vtable_key, *v;
int r;