Open SCAP Library
|
00001 00016 /* 00017 * Copyright 2009,2010 Red Hat Inc., Durham, North Carolina. 00018 * All Rights Reserved. 00019 * 00020 * This library is free software; you can redistribute it and/or 00021 * modify it under the terms of the GNU Lesser General Public 00022 * License as published by the Free Software Foundation; either 00023 * version 2.1 of the License, or (at your option) any later version. 00024 * 00025 * This library is distributed in the hope that it will be useful, 00026 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00027 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00028 * Lesser General Public License for more details. 00029 * 00030 * You should have received a copy of the GNU Lesser General Public 00031 * License along with this library; if not, write to the Free Software 00032 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00033 * 00034 */ 00035 00036 00037 #ifndef OVAL_AGENT_API_H_ 00038 #define OVAL_AGENT_API_H_ 00039 00040 #include "oval_definitions.h" 00041 #include "oval_system_characteristics.h" 00042 #include "oval_results.h" 00043 #include "oval_variables.h" 00044 #include "oval_probe.h" 00045 #include "reporter.h" 00046 00047 #ifdef ENABLE_XCCDF 00048 #include "xccdf_policy.h" 00049 #endif 00050 00051 struct oval_agent_session; 00052 00058 typedef struct oval_agent_session oval_agent_session_t; 00059 00065 oval_agent_session_t * oval_agent_new_session(struct oval_definition_model * model, const char * name); 00066 00071 int oval_agent_eval_definition(oval_agent_session_t *, const char *); 00072 00077 int oval_agent_get_definition_result(oval_agent_session_t *, const char *, oval_result_t *); 00078 00082 int oval_agent_reset_session(oval_agent_session_t * ag_sess); 00083 00087 int oval_agent_abort_session(oval_agent_session_t *ag_sess); 00088 00093 int oval_agent_eval_system(oval_agent_session_t * ag_sess, oscap_reporter cb, void *arg); 00094 00098 struct oval_results_model * oval_agent_get_results_model(oval_agent_session_t * ag_sess); 00102 const char * oval_agent_get_filename(oval_agent_session_t * ag_sess); 00103 00107 void oval_agent_destroy_session(oval_agent_session_t * ag_sess); 00108 00109 00110 #ifdef ENABLE_XCCDF 00111 00112 /************************************************************/ 00127 typedef xccdf_test_result_type_t (xccdf_policy_eval_rule_cb_t) (struct xccdf_policy * policy, const char * rule_id, 00128 const char * id, struct xccdf_value_binding_iterator * it, void * usr); 00129 00145 xccdf_test_result_type_t oval_agent_eval_rule (struct xccdf_policy * policy, const char * rule_id, 00146 const char * id, const char * href, struct xccdf_value_binding_iterator * it, void * usr); 00147 00156 int oval_agent_resolve_variables(struct oval_agent_session * session, struct xccdf_value_binding_iterator *it); 00157 00158 00166 bool xccdf_policy_model_register_engine_oval(struct xccdf_policy_model * model, struct oval_agent_session * sess); 00167 00173 void oval_agent_export_sysinfo_to_xccdf_result(struct oval_agent_session * session, struct xccdf_result * ritem); 00174 00175 /************************************************************/ 00178 #endif 00179 00184 #endif