| Current File : //usr/share/docs/openscap/html/group__OVALAGENT.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>Open SCAP Library: OVALAGENT</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Open SCAP Library
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#files">Files</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">OVALAGENT<div class="ingroups"><a class="el" href="group__OVAL.html">OVAL</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>OVAL Agent interface.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:oval__agent__api_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="oval__agent__api_8h.html">oval_agent_api.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:oval__agent__xccdf__api_8h"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="oval__agent__xccdf__api_8h.html">oval_agent_xccdf_api.h</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga7c852f3681ee4aaf6d372facf2e8c016"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c852f3681ee4aaf6d372facf2e8c016"></a>
typedef struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a></td></tr>
<tr class="memdesc:ga7c852f3681ee4aaf6d372facf2e8c016"><td class="mdescLeft"> </td><td class="mdescRight">Agent session consists of connection to system checking engine, definition model, system characteristics model and results model. <br /></td></tr>
<tr class="separator:ga7c852f3681ee4aaf6d372facf2e8c016"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga95ae0116101dc2db3bd01675aba0492d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga95ae0116101dc2db3bd01675aba0492d"></a>
typedef int(* </td><td class="memItemRight" valign="bottom"><b>agent_reporter</b>) (const struct <a class="el" href="structoval__result__definition.html">oval_result_definition</a> *res_def, void *arg)</td></tr>
<tr class="separator:ga95ae0116101dc2db3bd01675aba0492d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4d564b70b0282fa0bcdcb86aecddafc5"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a>( </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga4d564b70b0282fa0bcdcb86aecddafc5">xccdf_policy_eval_rule_cb_t</a>) (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *rule_id, const char *id, struct xccdf_value_binding_iterator *it, void *usr)</td></tr>
<tr class="separator:ga4d564b70b0282fa0bcdcb86aecddafc5"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga363376feb3dc45839611dbf7ae149934"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga363376feb3dc45839611dbf7ae149934">oval_agent_new_session</a> (struct <a class="el" href="structoval__definition__model.html">oval_definition_model</a> *model, const char *name)</td></tr>
<tr class="memdesc:ga363376feb3dc45839611dbf7ae149934"><td class="mdescLeft"> </td><td class="mdescRight">Create new session for OVAL agent from OVAL definition model. <a href="#ga363376feb3dc45839611dbf7ae149934">More...</a><br /></td></tr>
<tr class="separator:ga363376feb3dc45839611dbf7ae149934"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5356ae518e8f7944d7c4e4a4d6320c79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5356ae518e8f7944d7c4e4a4d6320c79"></a>
struct <a class="el" href="structoval__definition__model.html">oval_definition_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga5356ae518e8f7944d7c4e4a4d6320c79">oval_agent_get_definition_model</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga5356ae518e8f7944d7c4e4a4d6320c79"><td class="mdescLeft"> </td><td class="mdescRight">Retrieves OVAL definition model associated with given session. <br /></td></tr>
<tr class="separator:ga5356ae518e8f7944d7c4e4a4d6320c79"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4c6cd8133b213a14271d61c1058801c8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga4c6cd8133b213a14271d61c1058801c8">oval_agent_set_product_name</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *, char *)</td></tr>
<tr class="memdesc:ga4c6cd8133b213a14271d61c1058801c8"><td class="mdescLeft"> </td><td class="mdescRight">Set a product name for the provided agent session. <a href="#ga4c6cd8133b213a14271d61c1058801c8">More...</a><br /></td></tr>
<tr class="separator:ga4c6cd8133b213a14271d61c1058801c8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf73eb2fb4162b9293f166ea02dd889ab"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#gaf73eb2fb4162b9293f166ea02dd889ab">oval_agent_eval_definition</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *, const char *)</td></tr>
<tr class="memdesc:gaf73eb2fb4162b9293f166ea02dd889ab"><td class="mdescLeft"> </td><td class="mdescRight">Probe the system and evaluate specified definition. <a href="#gaf73eb2fb4162b9293f166ea02dd889ab">More...</a><br /></td></tr>
<tr class="separator:gaf73eb2fb4162b9293f166ea02dd889ab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9a88f1166593f63aa0f7cdc080685c1d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga9a88f1166593f63aa0f7cdc080685c1d">oval_agent_get_definition_result</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *, const char *, <a class="el" href="group__OVALRES.html#ga585abe0825db03426e1994ba335dc4bf">oval_result_t</a> *)</td></tr>
<tr class="memdesc:ga9a88f1166593f63aa0f7cdc080685c1d"><td class="mdescLeft"> </td><td class="mdescRight">Get the OVAL result of a definition from an agent session. <a href="#ga9a88f1166593f63aa0f7cdc080685c1d">More...</a><br /></td></tr>
<tr class="separator:ga9a88f1166593f63aa0f7cdc080685c1d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga59b66b81fe4d2aedfe1255420fab709a"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structoval__result__definition.html">oval_result_definition</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga59b66b81fe4d2aedfe1255420fab709a">oval_agent_get_result_definition</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess, const char *id)</td></tr>
<tr class="memdesc:ga59b66b81fe4d2aedfe1255420fab709a"><td class="mdescLeft"> </td><td class="mdescRight">Get the OVAL result definition from an agent session. <a href="#ga59b66b81fe4d2aedfe1255420fab709a">More...</a><br /></td></tr>
<tr class="separator:ga59b66b81fe4d2aedfe1255420fab709a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1b0b775e52aff1452ff4423f897c5825"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1b0b775e52aff1452ff4423f897c5825"></a>
int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga1b0b775e52aff1452ff4423f897c5825">oval_agent_reset_session</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga1b0b775e52aff1452ff4423f897c5825"><td class="mdescLeft"> </td><td class="mdescRight">Clean resuls that were generated in this agent session. <br /></td></tr>
<tr class="separator:ga1b0b775e52aff1452ff4423f897c5825"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7b465c077aa0ade17135dc1826b4465c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7b465c077aa0ade17135dc1826b4465c"></a>
int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga7b465c077aa0ade17135dc1826b4465c">oval_agent_abort_session</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga7b465c077aa0ade17135dc1826b4465c"><td class="mdescLeft"> </td><td class="mdescRight">Abort a running probe session. <br /></td></tr>
<tr class="separator:ga7b465c077aa0ade17135dc1826b4465c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4e56e46262872dea08c12cf9fdf10d74"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga4e56e46262872dea08c12cf9fdf10d74">oval_agent_eval_system</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess, agent_reporter cb, void *arg)</td></tr>
<tr class="memdesc:ga4e56e46262872dea08c12cf9fdf10d74"><td class="mdescLeft"> </td><td class="mdescRight">Probe and evaluate all definitions from the content, call the callback functions upon single evaluation. <a href="#ga4e56e46262872dea08c12cf9fdf10d74">More...</a><br /></td></tr>
<tr class="separator:ga4e56e46262872dea08c12cf9fdf10d74"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga46b7afeb2b281141e4722f219a7a438a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga46b7afeb2b281141e4722f219a7a438a"></a>
struct <a class="el" href="structoval__results__model.html">oval_results_model</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga46b7afeb2b281141e4722f219a7a438a">oval_agent_get_results_model</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga46b7afeb2b281141e4722f219a7a438a"><td class="mdescLeft"> </td><td class="mdescRight">Get a result model from agent session. <br /></td></tr>
<tr class="separator:ga46b7afeb2b281141e4722f219a7a438a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga891f69cec678e572518603f482e54877"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga891f69cec678e572518603f482e54877"></a>
const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga891f69cec678e572518603f482e54877">oval_agent_get_filename</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga891f69cec678e572518603f482e54877"><td class="mdescLeft"> </td><td class="mdescRight">Get a filename under which was created. <br /></td></tr>
<tr class="separator:ga891f69cec678e572518603f482e54877"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga301f466948c1844837208f917b3e2025"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga301f466948c1844837208f917b3e2025"></a>
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga301f466948c1844837208f917b3e2025">oval_agent_destroy_session</a> (<a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> *ag_sess)</td></tr>
<tr class="memdesc:ga301f466948c1844837208f917b3e2025"><td class="mdescLeft"> </td><td class="mdescRight">Finish OVAL agent session. <br /></td></tr>
<tr class="separator:ga301f466948c1844837208f917b3e2025"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaac9da992a174551ba8b76d647ebd6032"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#gaac9da992a174551ba8b76d647ebd6032">oval_agent_eval_rule</a> (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *rule_id, const char *id, const char *href, struct xccdf_value_binding_iterator *it, struct <a class="el" href="structxccdf__check__import__iterator.html">xccdf_check_import_iterator</a> *check_import_it, void *usr)</td></tr>
<tr class="memdesc:gaac9da992a174551ba8b76d647ebd6032"><td class="mdescLeft"> </td><td class="mdescRight">Internal OVAL Agent Callback that can be used to evaluate XCCDF content. <a href="#gaac9da992a174551ba8b76d647ebd6032">More...</a><br /></td></tr>
<tr class="separator:gaac9da992a174551ba8b76d647ebd6032"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga86f153582f6e48986aaac82efcb064ae"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#ga86f153582f6e48986aaac82efcb064ae">oval_agent_resolve_variables</a> (struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> *session, struct xccdf_value_binding_iterator *it)</td></tr>
<tr class="memdesc:ga86f153582f6e48986aaac82efcb064ae"><td class="mdescLeft"> </td><td class="mdescRight">Resolve variables from XCCDF Value Bindings and set their values to OVAL Variables. <a href="#ga86f153582f6e48986aaac82efcb064ae">More...</a><br /></td></tr>
<tr class="separator:ga86f153582f6e48986aaac82efcb064ae"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gacd87da61a584f365001a6a9a1f4a5c13"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#gacd87da61a584f365001a6a9a1f4a5c13">oval_agent_export_sysinfo_to_xccdf_result</a> (struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> *session, struct <a class="el" href="structxccdf__result.html">xccdf_result</a> *ritem)</td></tr>
<tr class="separator:gacd87da61a584f365001a6a9a1f4a5c13"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaeee658b7aee3ba20b274248ec024eefc"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__OVALAGENT.html#gaeee658b7aee3ba20b274248ec024eefc">xccdf_policy_model::xccdf_policy_model_register_engine_oval</a> (struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> *model, struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> *sess)</td></tr>
<tr class="memdesc:gaeee658b7aee3ba20b274248ec024eefc"><td class="mdescLeft"> </td><td class="mdescRight">Function to register predefined oval callback for XCCDF evaluation proccess. <a href="#gaeee658b7aee3ba20b274248ec024eefc">More...</a><br /></td></tr>
<tr class="separator:gaeee658b7aee3ba20b274248ec024eefc"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>OVAL Agent interface. </p>
<p>This is a high level API for system probing and OVAL Definition content evaluation. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga4d564b70b0282fa0bcdcb86aecddafc5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a>( xccdf_policy_eval_rule_cb_t) (struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> *policy, const char *rule_id, const char *id, struct xccdf_value_binding_iterator *it, void *usr)</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">policy</td><td>XCCDF Policy that is being evaluated </td></tr>
<tr><td class="paramname">rule_id</td><td>ID of XCCDF Rule </td></tr>
<tr><td class="paramname">id</td><td>ID of OVAL definition </td></tr>
<tr><td class="paramname">it</td><td>XCCDF Value Binding iterator with value bindings </td></tr>
<tr><td class="paramname">usr</td><td>Void pointer to the user data structure </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XCCDF test result type of evaluated rule </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaf73eb2fb4162b9293f166ea02dd889ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int oval_agent_eval_definition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Probe the system and evaluate specified definition. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success; -1 error; 1 warning </dd></dl>
</div>
</div>
<a class="anchor" id="gaac9da992a174551ba8b76d647ebd6032"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__XCCDF.html#gabf34f4480799efc8e1af5f4706d2666d">xccdf_test_result_type_t</a> oval_agent_eval_rule </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structxccdf__policy.html">xccdf_policy</a> * </td>
<td class="paramname"><em>policy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>rule_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>href</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct xccdf_value_binding_iterator * </td>
<td class="paramname"><em>it</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structxccdf__check__import__iterator.html">xccdf_check_import_iterator</a> * </td>
<td class="paramname"><em>check_import_it</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>usr</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Internal OVAL Agent Callback that can be used to evaluate XCCDF content. </p>
<p>You can either register this function with <a class="el" href="structxccdf__policy.html" title="XCCDF policy structure is abstract (class) structure of Profile element from benchmark. ">xccdf_policy</a> (old fashioned way as described in the example bellow). Alternativelly you can use high level function <a class="el" href="group__OVALAGENT.html#gaeee658b7aee3ba20b274248ec024eefc" title="Function to register predefined oval callback for XCCDF evaluation proccess. ">xccdf_policy_model_register_engine_oval()</a> (recommended) which will register the oval_engine.</p>
<dl class="section user"><dt>Example</dt><dd>Next example shows common use of this function in evaluation proccess of XCCDF file. </dd></dl>
<dl class="section user"><dt></dt><dd><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> struct oval_definition_model * def_model = oval_definition_model_import(oval_file);</div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> struct xccdf_benchmark * benchmark = xccdf_benchmark_import(file);</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> struct xccdf_policy_model * policy_model = xccdf_policy_model_new(benchmark);</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> struct oval_agent_session * sess = oval_agent_new_session(def_model, "name-of-file");</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> ...</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> xccdf_policy_model_register_engine_and_query_callback(policy_model, "http://oval.mitre.org/XMLSchema/oval-definitions-5", oval_agent_eval_rule, (void *) sess, NULL);</div>
</div><!-- fragment --> </dd></dl>
</div>
</div>
<a class="anchor" id="ga4e56e46262872dea08c12cf9fdf10d74"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int oval_agent_eval_system </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td>
<td class="paramname"><em>ag_sess</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">agent_reporter </td>
<td class="paramname"><em>cb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"><em>arg</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Probe and evaluate all definitions from the content, call the callback functions upon single evaluation. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success; -1 error; 1 warning </dd></dl>
</div>
</div>
<a class="anchor" id="gacd87da61a584f365001a6a9a1f4a5c13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void oval_agent_export_sysinfo_to_xccdf_result </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> * </td>
<td class="paramname"><em>session</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structxccdf__result.html">xccdf_result</a> * </td>
<td class="paramname"><em>ritem</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000017">Deprecated:</a></b></dt><dd>Transform OVAL Sysinfo into XCCDF Test Result This function has been deprecated, please use <a class="el" href="group__XCCDF.html#gac9c058475045c84eb007c7ec080b6cff">xccdf_result_fill_sysinfo()</a> instead</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">session</td><td>OVAL Agent session </td></tr>
<tr><td class="paramname">ritem</td><td>XCCDF Result </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga9a88f1166593f63aa0f7cdc080685c1d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int oval_agent_get_definition_result </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__OVALRES.html#ga585abe0825db03426e1994ba335dc4bf">oval_result_t</a> * </td>
<td class="paramname"> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the OVAL result of a definition from an agent session. </p>
<dl class="section return"><dt>Returns</dt><dd>0 on success; -1 error </dd></dl>
</div>
</div>
<a class="anchor" id="ga59b66b81fe4d2aedfe1255420fab709a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structoval__result__definition.html">oval_result_definition</a>* oval_agent_get_result_definition </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td>
<td class="paramname"><em>ag_sess</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the OVAL result definition from an agent session. </p>
<dl class="section return"><dt>Returns</dt><dd>NULL if not found </dd></dl>
</div>
</div>
<a class="anchor" id="ga363376feb3dc45839611dbf7ae149934"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a>* oval_agent_new_session </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structoval__definition__model.html">oval_definition_model</a> * </td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>name</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create new session for OVAL agent from OVAL definition model. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>OVAL Definition model </td></tr>
<tr><td class="paramname">name</td><td>Name of file that can be referenced from XCCDF Benchmark </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ga86f153582f6e48986aaac82efcb064ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int oval_agent_resolve_variables </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> * </td>
<td class="paramname"><em>session</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct xccdf_value_binding_iterator * </td>
<td class="paramname"><em>it</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Resolve variables from XCCDF Value Bindings and set their values to OVAL Variables. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">session</td><td>OVAL Agent Session </td></tr>
<tr><td class="paramname">it</td><td>XCCDF Value Bindng iterator </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 if resolving pass </dd></dl>
<dl class="section user"><dt>Example</dt><dd>Example in <a class="el" href="oval__agent_8c.html" title="Open Vulnerability and Assessment Language. ">oval_agent.c</a> in function oval_agent_eval_rule </dd></dl>
</div>
</div>
<a class="anchor" id="ga4c6cd8133b213a14271d61c1058801c8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void oval_agent_set_product_name </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__OVALAGENT.html#ga7c852f3681ee4aaf6d372facf2e8c016">oval_agent_session_t</a> * </td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set a product name for the provided agent session. </p>
<p>The product name should be used for all newly created OVAL documents. If there already are some models in the session, they are modified as well. </p>
</div>
</div>
<a class="anchor" id="gaeee658b7aee3ba20b274248ec024eefc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool xccdf_policy_model_register_engine_oval </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structxccdf__policy__model.html">xccdf_policy_model</a> * </td>
<td class="paramname"><em>model</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structoval__agent__session.html">oval_agent_session</a> * </td>
<td class="paramname"><em>sess</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Function to register predefined oval callback for XCCDF evaluation proccess. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">model</td><td>XCCDF Policy Model </td></tr>
<tr><td class="paramname">sess</td><td>oval_agent_session_t parameter for passing session data to callback</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if callback registered succesfully, false otherwise </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>