Revert "gdbus: Don't include just added interfaces in GetManagedObjects"
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 11 Aug 2014 14:58:37 +0000 (17:58 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 8 Sep 2014 03:48:48 +0000 (05:48 +0200)
This actually creates a problem since the code now does flush any pending
message on the queue any signal will be send right away before the
actual reply to GetManagedObjects which will not contain those interfaces.

gdbus/object.c

index 13cf9a956aa3d3525ee61e9b43e9ba7b0ba3d807..4d5a64cb7ecc77efe0fb21b9942dc30944a6bf28 100644 (file)
@@ -1088,7 +1088,6 @@ static const GDBusMethodTable introspect_methods[] = {
 static void append_interfaces(struct generic_data *data, DBusMessageIter *iter)
 {
        DBusMessageIter array;
-       GSList *l;
 
        dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
                                DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
@@ -1100,12 +1099,7 @@ static void append_interfaces(struct generic_data *data, DBusMessageIter *iter)
                                DBUS_DICT_ENTRY_END_CHAR_AS_STRING
                                DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &array);
 
-       for (l = data->interfaces; l != NULL; l = l->next) {
-               if (g_slist_find(data->added, l->data))
-                       continue;
-
-               append_interface(l->data, &array);
-       }
+       g_slist_foreach(data->interfaces, append_interface, &array);
 
        dbus_message_iter_close_container(iter, &array);
 }