From 9b82af4b039d3b0c411e14daad17e561c11ecfda Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 3 Mar 2009 11:41:15 +0000 Subject: libxen: fix a problem preventing use of xen_event_register(). The conversion of input parameter xen_string_set to XML format creates a XML "struct" tag instead of "array". The patch sets the XML tag for SET now to "array". Signed-off-by: Lutz Dube --- tools/libxen/src/xen_common.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'tools/libxen') diff --git a/tools/libxen/src/xen_common.c b/tools/libxen/src/xen_common.c index 10dd156e94..f9da712741 100644 --- a/tools/libxen/src/xen_common.c +++ b/tools/libxen/src/xen_common.c @@ -90,6 +90,8 @@ add_param(xmlNode *, const char *, const char *); static xmlNode * add_param_struct(xmlNode *); static xmlNode * +add_param_array(xmlNode *); +static xmlNode * add_struct_array(xmlNode *, const char *); static xmlNode * add_nested_struct(xmlNode *, const char *); @@ -1292,7 +1294,7 @@ make_body_add_type(enum abstract_typename typename, abstract_value *v, const struct abstract_type *member_type = v->type->child; arbitrary_set *set_val = v->u.struct_val; abstract_value v; - xmlNode *data_node = add_param_struct(params_node); + xmlNode *data_node = add_param_array(params_node); for (size_t i = 0; i < set_val->size; i++) { @@ -1611,6 +1613,16 @@ add_param_struct(xmlNode *params_node) } +static xmlNode * +add_param_array(xmlNode *params_node) +{ + xmlNode *param_node = add_container(params_node, "param"); + xmlNode *value_node = add_container(param_node, "value"); + + return xmlNewChild(value_node, NULL, BAD_CAST "array", NULL); +} + + static void add_struct_member(xmlNode *struct_node, const char *name, const char *type, const char *value) -- cgit v1.2.3