summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2010-04-30 01:23:45 +0300
committerMarcel Holtmann <marcel@holtmann.org>2010-04-30 00:31:03 +0200
commitd8f0947356f95ff641d2fcdc1eb8dfd09707eaba (patch)
tree9e2799655029b2d8d258854ce0fd76ba384bd2e0
parentf0c4a9640991d4d4803437854105619d8301e66c (diff)
downloadconnman-d8f0947356f95ff641d2fcdc1eb8dfd09707eaba.tar.gz
connman-d8f0947356f95ff641d2fcdc1eb8dfd09707eaba.tar.bz2
connman-d8f0947356f95ff641d2fcdc1eb8dfd09707eaba.zip
Fix parent path introspection data invalidation for multiple levels
In the case that parent path data needs to be invalidated we shouldn't stop at the immediate parent if it doesn't have our own handler registered but should continue upwards in the tree until we reach root or our own handler.
-rw-r--r--gdbus/object.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index 592e2d3c..ff696414 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -308,8 +308,10 @@ static void invalidate_parent_data(DBusConnection *conn, const char *child_path)
goto done;
if (!dbus_connection_get_object_path_data(conn, parent_path,
- (void *) &data))
+ (void *) &data)) {
+ invalidate_parent_data(conn, parent_path);
goto done;
+ }
if (!data)
goto done;