static int oval_result_definition_parse(xmlTextReaderPtr reader, struct oval_parser_context *context, void *usr) { int return_code = 0; xmlChar *localName = xmlTextReaderLocalName(reader); struct oval_result_system *sys = oval_result_definition_get_system((struct oval_result_definition *) usr); if (strcmp((const char *)localName, "criteria") == 0) { return_code = oval_result_criteria_node_parse (reader, context, sys, (oscap_consumer_func) _oval_result_definition_consume_criteria, usr); } else if (strcmp((const char *)localName, "message") == 0) { return_code = oval_message_parse_tag (reader, context, (oscap_consumer_func) _oval_result_definition_consume_message, usr); } oscap_free(localName); return return_code; }
static int _oval_result_test_parse(xmlTextReaderPtr reader, struct oval_parser_context *context, void **args) { int return_code = 0; xmlChar *localName = xmlTextReaderLocalName(reader); if (strcmp((const char *)localName, "message") == 0) { return_code = oval_message_parse_tag(reader, context, (oscap_consumer_func) _oval_test_message_consumer, TEST); } else if (strcmp((const char *)localName, "tested_item") == 0) { return_code = oval_result_item_parse_tag(reader, context, SYSTEM, (oscap_consumer_func) _oval_test_item_consumer, args); } else if (strcmp((const char *)localName, "tested_variable") == 0) { return_code = _oval_result_test_binding_parse(reader, context, args); } else { dW( "Unhandled tag: <%s>.\n", localName); oval_parser_skip_tag(reader, context); } oscap_free(localName); return return_code; }