gdbus: invaldate_parent_data: walk the whole path down

Assume there is only one object registerd at "/". If we add a new
object at "/foo/bar" the introspection of "/" has to be updated. A new
node has to be added at "/".

invalidate_parent_data stops invaldating the whole path because the
boolean return value of dbus_connection_get_object_path_data is used
wrong.

If we get a TRUE just go on down in the path, if FALSE is return
dbus_connection_get_object_path_data has run out of memory.
This commit is contained in:
Daniel Wagner 2011-01-14 16:14:20 +01:00 committed by Marcel Holtmann
parent 754be710d5
commit 28ec0e2174
1 changed files with 4 additions and 3 deletions

View File

@ -475,12 +475,13 @@ static void invalidate_parent_data(DBusConnection *conn, const char *child_path)
if (!strlen(parent_path))
goto done;
if (!dbus_connection_get_object_path_data(conn, parent_path,
(void *) &data)) {
invalidate_parent_data(conn, parent_path);
if (dbus_connection_get_object_path_data(conn, parent_path,
(void *) &data) == FALSE) {
goto done;
}
invalidate_parent_data(conn, parent_path);
if (data == NULL)
goto done;