oval_probe_session_t *oval_probe_session_new(struct oval_syschar_model *model) { oval_probe_session_t *sess; void *handler_arg; register size_t i; sess = oscap_talloc(oval_probe_session_t); sess->ph = oval_phtbl_new(); sess->sys_model = model; sess->flg = 0; sess->pext = oval_pext_new(); sess->pext->model = &sess->sys_model; sess->pext->sess_ptr = sess; __init_once(); dD("__probe_meta_count = %zu", OSCAP_GSYM(__probe_meta_count)); for (i = 0; i < OSCAP_GSYM(__probe_meta_count); ++i) { handler_arg = NULL; if (OSCAP_GSYM(__probe_meta)[i].flags & OVAL_PROBEMETA_EXTERNAL) handler_arg = sess->pext; oval_probe_handler_set(sess->ph, OSCAP_GSYM(__probe_meta)[i].otype, OSCAP_GSYM(__probe_meta)[i].handler, handler_arg); } oval_probe_handler_set(sess->ph, OVAL_SUBTYPE_ALL, oval_probe_ext_handler, sess->pext); /* special case for reset */ return(sess); }
oval_subtype_t oval_str_to_subtype(const char *str) { oval_subtypedsc_t *d; __init_once(); d = oscap_bfind(OSCAP_GSYM(__n2s_tbl), __n2s_tbl_count, sizeof(oval_subtypedsc_t), (void *)str, (int(*)(void *, void *))__n2s_tbl_cmp); return (d == NULL ? OVAL_SUBTYPE_UNKNOWN : d->type); }
const char *oval_subtype_to_str(oval_subtype_t subtype) { oval_subtypedsc_t *d; __init_once(); d = oscap_bfind(OSCAP_GSYM(__s2n_tbl), __s2n_tbl_count, sizeof(oval_subtypedsc_t), &subtype, (int(*)(void *, void *))__s2n_tbl_cmp); return (d == NULL ? NULL : d->name); }