<!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.6"/> <title>Open SCAP Library: OVAL Agent</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="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.6 --> <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> </ul> </div> </div><!-- top --> <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">OVAL Agent<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:ga24d36c3c4be540ce08253abb69c4b842"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga24d36c3c4be540ce08253abb69c4b842"></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:ga24d36c3c4be540ce08253abb69c4b842"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa4616a7375ac4a91ee293d69a5c30481"><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#gaa4616a7375ac4a91ee293d69a5c30481">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:gaa4616a7375ac4a91ee293d69a5c30481"><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="gaa4616a7375ac4a91ee293d69a5c30481"></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"><span class="keyword">struct </span><a class="code" href="structoval__definition__model.html">oval_definition_model</a> * def_model = <a class="code" href="group__OVALDEF.html#ga2931f8a8454c84703fb4e3e60a6c1552">oval_definition_model_import</a>(oval_file);</div> <div class="line"><span class="keyword">struct </span><a class="code" href="structxccdf__benchmark.html">xccdf_benchmark</a> * benchmark = <a class="code" href="group__XCCDF.html#gad71cc690fef5bceb9aa98bed119288f0">xccdf_benchmark_import</a>(file);</div> <div class="line"><span class="keyword">struct </span><a class="code" href="structxccdf__policy__model.html">xccdf_policy_model</a> * policy_model = <a class="code" href="group__XCCDF__POLICY.html#ga4f8f92790770ff3e12e55f3921b77261">xccdf_policy_model_new</a>(benchmark);</div> <div class="line"><span class="keyword">struct </span><a class="code" href="structoval__agent__session.html">oval_agent_session</a> * sess = <a class="code" href="group__OVALAGENT.html#ga363376feb3dc45839611dbf7ae149934">oval_agent_new_session</a>(def_model, <span class="stringliteral">"name-of-file"</span>);</div> <div class="line">...</div> <div class="line">xccdf_policy_model_register_engine_and_query_callback(policy_model, <span class="stringliteral">"http://oval.mitre.org/XMLSchema/oval-definitions-5"</span>, <a class="code" href="group__OVALAGENT.html#gaac9da992a174551ba8b76d647ebd6032">oval_agent_eval_rule</a>, (<span class="keywordtype">void</span> *) 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#_deprecated000005">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.6 </small></address> </body> </html>