aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wpa_supplicant/dbus/dbus_new_introspect.c92
1 files changed, 24 insertions, 68 deletions
diff --git a/wpa_supplicant/dbus/dbus_new_introspect.c b/wpa_supplicant/dbus/dbus_new_introspect.c
index bb084a4..5c2265f 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;
}
-