diff --git a/wpa_supplicant/dbus/dbus_new_introspect.c b/wpa_supplicant/dbus/dbus_new_introspect.c index bb084a4b2..5c2265f04 100644 --- a/wpa_supplicant/dbus/dbus_new_introspect.c +++ b/wpa_supplicant/dbus/dbus_new_introspect.c @@ -41,14 +41,15 @@ struct interfaces { static struct interfaces * extract_interfaces( struct wpa_dbus_object_desc *obj_dsc, xmlNodePtr root_node) { - struct wpa_dbus_method_desc *method_dsc = obj_dsc->methods; - struct wpa_dbus_signal_desc *signal_dsc = obj_dsc->signals; - struct wpa_dbus_property_desc *property_dsc = obj_dsc->properties; + struct wpa_dbus_method_desc *method_dsc; + struct wpa_dbus_signal_desc *signal_dsc; + struct wpa_dbus_property_desc *property_dsc; struct interfaces *head = NULL; struct interfaces *iface, *last; /* extract interfaces from methods */ - while (method_dsc) { + for (method_dsc = obj_dsc->methods; method_dsc; + method_dsc = method_dsc->next) { iface = head; last = NULL; @@ -60,18 +61,12 @@ static struct interfaces * extract_interfaces( last = iface; iface = iface->next; } - if (iface) { - method_dsc = method_dsc->next; + if (iface) continue; - } iface = os_zalloc(sizeof(struct interfaces)); - if (!iface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data"); - method_dsc = method_dsc->next; + if (!iface) continue; - } if (last) last->next = iface; @@ -79,25 +74,19 @@ static struct interfaces * extract_interfaces( head = iface; iface->dbus_interface = os_strdup(method_dsc->dbus_interface); - if (!iface->dbus_interface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data (interface " - "name)"); - method_dsc = method_dsc->next; + if (!iface->dbus_interface) continue; - } iface->interface_node = xmlNewChild(root_node, NULL, BAD_CAST "interface", NULL); xmlNewProp(iface->interface_node, BAD_CAST "name", BAD_CAST method_dsc->dbus_interface); - - method_dsc = method_dsc->next; } /* extract interfaces from signals */ - while (signal_dsc) { + for (signal_dsc = obj_dsc->signals; signal_dsc; + signal_dsc = signal_dsc->next) { iface = head; last = NULL; @@ -109,18 +98,12 @@ static struct interfaces * extract_interfaces( last = iface; iface = iface->next; } - if (iface) { - signal_dsc = signal_dsc->next; + if (iface) continue; - } iface = os_zalloc(sizeof(struct interfaces)); - if (!iface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data"); - signal_dsc = signal_dsc->next; + if (!iface) continue; - } if (last) last->next = iface; @@ -128,25 +111,19 @@ static struct interfaces * extract_interfaces( head = iface; iface->dbus_interface = os_strdup(signal_dsc->dbus_interface); - if (!iface->dbus_interface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data (interface " - "name)"); - signal_dsc = signal_dsc->next; + if (!iface->dbus_interface) continue; - } iface->interface_node = xmlNewChild(root_node, NULL, BAD_CAST "interface", NULL); xmlNewProp(iface->interface_node, BAD_CAST "name", BAD_CAST signal_dsc->dbus_interface); - - signal_dsc = signal_dsc->next; } /* extract interfaces from properties */ - while (property_dsc) { + for (property_dsc = obj_dsc->properties; property_dsc; + property_dsc = property_dsc->next) { iface = head; last = NULL; @@ -158,18 +135,12 @@ static struct interfaces * extract_interfaces( last = iface; iface = iface->next; } - if (iface) { - property_dsc = property_dsc->next; + if (iface) continue; - } iface = os_zalloc(sizeof(struct interfaces)); - if (!iface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data"); - property_dsc = property_dsc->next; + if (!iface) continue; - } if (last) last->next = iface; @@ -178,21 +149,14 @@ static struct interfaces * extract_interfaces( iface->dbus_interface = os_strdup(property_dsc->dbus_interface); - if (!iface->dbus_interface) { - wpa_printf(MSG_ERROR, "Not enough memory to create " - "interface introspection data (interface " - "name)"); - property_dsc = property_dsc->next; + if (!iface->dbus_interface) continue; - } iface->interface_node = xmlNewChild(root_node, NULL, BAD_CAST "interface", NULL); xmlNewProp(iface->interface_node, BAD_CAST "name", BAD_CAST property_dsc->dbus_interface); - - property_dsc = property_dsc->next; } return head; @@ -306,9 +270,8 @@ DBusMessage * wpa_dbus_introspect(DBusMessage *message, ifaces = extract_interfaces(obj_dsc, root_node); /* create methods' nodes */ - method_dsc = obj_dsc->methods; - while (method_dsc) { - + for (method_dsc = obj_dsc->methods; method_dsc; + method_dsc = method_dsc->next) { struct interfaces *iface = ifaces; while (iface) { if (!os_strcmp(iface->dbus_interface, @@ -340,13 +303,11 @@ DBusMessage * wpa_dbus_introspect(DBusMessage *message, BAD_CAST (arg.dir == ARG_IN ? "in" : "out")); } - method_dsc = method_dsc->next; } /* create signals' nodes */ - signal_dsc = obj_dsc->signals; - while (signal_dsc) { - + for (signal_dsc = obj_dsc->signals; signal_dsc; + signal_dsc = signal_dsc->next) { struct interfaces *iface = ifaces; while (iface) { if (!os_strcmp(iface->dbus_interface, @@ -375,13 +336,11 @@ DBusMessage * wpa_dbus_introspect(DBusMessage *message, xmlNewProp(arg_node, BAD_CAST "type", BAD_CAST arg.type); } - signal_dsc = signal_dsc->next; } /* create properties' nodes */ - property_dsc = obj_dsc->properties; - while (property_dsc) { - + for (property_dsc = obj_dsc->properties; property_dsc; + property_dsc = property_dsc->next) { struct interfaces *iface = ifaces; while (iface) { if (!os_strcmp(iface->dbus_interface, @@ -403,8 +362,6 @@ DBusMessage * wpa_dbus_introspect(DBusMessage *message, (property_dsc->access == R ? "read" : (property_dsc->access == W ? "write" : "readwrite"))); - - property_dsc = property_dsc->next; } /* add child nodes to introspection tree; */ @@ -442,4 +399,3 @@ DBusMessage * wpa_dbus_introspect(DBusMessage *message, return reply; } -