oval_test.c   oval_test.c 
skipping to change at line 332 skipping to change at line 332
{ {
struct oval_test *test = (struct oval_test *)user; struct oval_test *test = (struct oval_test *)user;
char *tagname = (char *)xmlTextReaderLocalName(reader); char *tagname = (char *)xmlTextReaderLocalName(reader);
int return_code = 0; int return_code = 0;
if ((strcmp(tagname, "notes") == 0)) { if ((strcmp(tagname, "notes") == 0)) {
return_code = oval_parser_parse_tag(reader, context, &_oval_ test_parse_notes, test); return_code = oval_parser_parse_tag(reader, context, &_oval_ test_parse_notes, test);
} else if ((strcmp(tagname, "object") == 0)) { } else if ((strcmp(tagname, "object") == 0)) {
char *object_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "object_ref"); char *object_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "object_ref");
if (object_ref != NULL) { if (object_ref != NULL) {
struct oval_definition_model *model = context->defin ition_model; struct oval_definition_model *model = context->defin ition_model;
struct oval_object *object = oval_object_get_new(mod el, object_ref); struct oval_object *object = oval_definition_model_g et_new_object(model, object_ref);
oscap_free(object_ref); oscap_free(object_ref);
object_ref = NULL; object_ref = NULL;
oval_test_set_object(test, object); oval_test_set_object(test, object);
} }
} else if ((strcmp(tagname, "state") == 0)) { } else if ((strcmp(tagname, "state") == 0)) {
char *state_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "state_ref"); char *state_ref = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "state_ref");
if (state_ref != NULL) { if (state_ref != NULL) {
struct oval_definition_model *model = context->defin ition_model; struct oval_definition_model *model = context->defin ition_model;
struct oval_state *state = oval_state_get_new(model, state_ref); struct oval_state *state = oval_definition_model_get _new_state(model, state_ref);
oval_test_add_state(test, state); oval_test_add_state(test, state);
oscap_free(state_ref); oscap_free(state_ref);
state_ref = NULL; state_ref = NULL;
} }
} else { } else {
oscap_dlprintf(DBG_W, "Skipping tag <%s>.\n", tagname); oscap_dlprintf(DBG_W, "Skipping tag <%s>.\n", tagname);
return_code = oval_parser_skip_tag(reader, context); return_code = oval_parser_skip_tag(reader, context);
} }
oscap_free(tagname); oscap_free(tagname);
skipping to change at line 364 skipping to change at line 364
} }
int oval_test_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *usr) int oval_test_parse_tag(xmlTextReaderPtr reader, struct oval_parser_context *context, void *usr)
{ {
int ret = 0; int ret = 0;
char *comm = NULL; char *comm = NULL;
char *version = NULL; char *version = NULL;
struct oval_definition_model *model = context->definition_model; struct oval_definition_model *model = context->definition_model;
char *id = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "id"); char *id = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "id");
struct oval_test *test = oval_test_get_new(model, id); struct oval_test *test = oval_definition_model_get_new_test(model, i d);
oval_subtype_t subtype = oval_subtype_parse(reader); oval_subtype_t subtype = oval_subtype_parse(reader);
if ( subtype == OVAL_SUBTYPE_UNKNOWN) { if ( subtype == OVAL_SUBTYPE_UNKNOWN) {
oscap_dlprintf(DBG_E, "Unknown test %s.\n", id); oscap_dlprintf(DBG_E, "Unknown test %s.\n", id);
ret = -1; ret = -1;
goto cleanup; goto cleanup;
} }
oval_test_set_subtype(test, subtype); oval_test_set_subtype(test, subtype);
oval_existence_t existence = oval_existence_parse(reader, "check_exi
stence", OVAL_AT_LEAST_ONE_EXISTS);
oval_test_set_existence(test, existence);
oval_operator_t ste_operator = oval_operator_parse(reader, "state_op erator", OVAL_OPERATOR_AND); oval_operator_t ste_operator = oval_operator_parse(reader, "state_op erator", OVAL_OPERATOR_AND);
oval_test_set_state_operator(test, ste_operator); oval_test_set_state_operator(test, ste_operator);
oval_check_t check = oval_check_parse(reader, "check", OVAL_CHECK_UN KNOWN); oval_check_t check = oval_check_parse(reader, "check", OVAL_CHECK_UN KNOWN);
oval_test_set_check(test, check); if (check == OVAL_CHECK_NONE_EXIST) {
dW("The 'none exist' CheckEnumeration value has been depreca
ted. "
"Converted to check='none satisfy' and check_existence='n
one exist'.\n");
oval_test_set_check(test, OVAL_CHECK_NONE_SATISFY);
oval_test_set_existence(test, OVAL_NONE_EXIST);
} else {
oval_existence_t existence;
oval_test_set_check(test, check);
existence = oval_existence_parse(reader, "check_existence",
OVAL_AT_LEAST_ONE_EXISTS);
oval_test_set_existence(test, existence);
}
comm = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "comment") ; comm = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "comment") ;
if (comm != NULL) { if (comm != NULL) {
oval_test_set_comment(test, comm); oval_test_set_comment(test, comm);
} }
int deprecated = oval_parser_boolean_attribute(reader, "deprecated", 0); int deprecated = oval_parser_boolean_attribute(reader, "deprecated", 0);
oval_test_set_deprecated(test, deprecated); oval_test_set_deprecated(test, deprecated);
version = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "versio n"); version = (char *)xmlTextReaderGetAttribute(reader, BAD_CAST "versio n");
skipping to change at line 414 skipping to change at line 422
{ {
xmlNode * test_node=NULL; xmlNode * test_node=NULL;
/* skip unknown test */ /* skip unknown test */
oval_subtype_t subtype = oval_test_get_subtype(test); oval_subtype_t subtype = oval_test_get_subtype(test);
if ( subtype == OVAL_SUBTYPE_UNKNOWN ) { if ( subtype == OVAL_SUBTYPE_UNKNOWN ) {
oscap_dlprintf(DBG_E, "Unknown Test %s.\n", oval_test_get_id (test)); oscap_dlprintf(DBG_E, "Unknown Test %s.\n", oval_test_get_id (test));
return test_node; return test_node;
} }
struct oval_state_iterator *ste_itr; /* get test name */
const char *subtype_text = oval_subtype_get_text(subtype); const char *subtype_text = oval_subtype_get_text(subtype);
char test_name[strlen(subtype_text) + 6]; char test_name[strlen(subtype_text) + 6];
*test_name = '\0'; sprintf(test_name, "%s_test", subtype_text);
strcat(strcat(test_name, subtype_text), "_test");
test_node = xmlNewTextChild(parent, NULL, BAD_CAST test_name, NULL);
/* get family URI */
oval_family_t family = oval_test_get_family(test); oval_family_t family = oval_test_get_family(test);
const char *family_text = oval_family_get_text(family); const char *family_text = oval_family_get_text(family);
char family_uri[strlen((const char *)OVAL_DEFINITIONS_NAMESPACE) + s trlen(family_text) + 2]; char family_uri[strlen((const char *)OVAL_DEFINITIONS_NAMESPACE) + s trlen(family_text) + 2];
*family_uri = '\0'; sprintf(family_uri,"%s#%s", OVAL_DEFINITIONS_NAMESPACE, family_text)
strcat(strcat(strcat(family_uri, (const char *)OVAL_DEFINITIONS_NAME ;
SPACE), "#"), family_text);
xmlNs *ns_family = xmlNewNs(test_node, BAD_CAST family_uri, NULL);
xmlSetNs(test_node, ns_family); /* search namespace & create child */
xmlNs *ns_family = xmlSearchNsByHref(doc, parent, BAD_CAST family_ur
i);
test_node = xmlNewTextChild(parent, ns_family, BAD_CAST test_name, N
ULL);
char *id = oval_test_get_id(test); char *id = oval_test_get_id(test);
xmlNewProp(test_node, BAD_CAST "id", BAD_CAST id); xmlNewProp(test_node, BAD_CAST "id", BAD_CAST id);
char version[10]; char version[10];
*version = '\0'; *version = '\0';
snprintf(version, sizeof(version), "%d", oval_test_get_version(test) ); snprintf(version, sizeof(version), "%d", oval_test_get_version(test) );
xmlNewProp(test_node, BAD_CAST "version", BAD_CAST version); xmlNewProp(test_node, BAD_CAST "version", BAD_CAST version);
oval_existence_t existence = oval_test_get_existence(test); oval_existence_t existence = oval_test_get_existence(test);
skipping to change at line 473 skipping to change at line 480
} }
} }
oval_string_iterator_free(notes); oval_string_iterator_free(notes);
struct oval_object *object = oval_test_get_object(test); struct oval_object *object = oval_test_get_object(test);
if (object) { if (object) {
xmlNode *object_node = xmlNewTextChild(test_node, ns_family, BAD_CAST "object", NULL); xmlNode *object_node = xmlNewTextChild(test_node, ns_family, BAD_CAST "object", NULL);
xmlNewProp(object_node, BAD_CAST "object_ref", BAD_CAST oval _object_get_id(object)); xmlNewProp(object_node, BAD_CAST "object_ref", BAD_CAST oval _object_get_id(object));
} }
ste_itr = oval_test_get_states(test); struct oval_state_iterator *ste_itr = oval_test_get_states(test);
while (oval_state_iterator_has_more(ste_itr)) { while (oval_state_iterator_has_more(ste_itr)) {
struct oval_state *state; struct oval_state *state;
state = oval_state_iterator_next(ste_itr); state = oval_state_iterator_next(ste_itr);
xmlNode *state_node = xmlNewTextChild(test_node, ns_family, BAD_CAST "state", NULL); xmlNode *state_node = xmlNewTextChild(test_node, ns_family, BAD_CAST "state", NULL);
xmlNewProp(state_node, BAD_CAST "state_ref", BAD_CAST oval_s tate_get_id(state)); xmlNewProp(state_node, BAD_CAST "state_ref", BAD_CAST oval_s tate_get_id(state));
} }
oval_state_iterator_free(ste_itr); oval_state_iterator_free(ste_itr);
return test_node; return test_node;
 End of changes. 11 change blocks. 
18 lines changed or deleted 29 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/