Attestion IMV provides recommendation only once

This commit is contained in:
Andreas Steffen 2013-07-08 17:06:51 +02:00
parent ea6ab9fb49
commit 3dfa7a9eae
2 changed files with 12 additions and 1 deletions

View File

@ -304,6 +304,12 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
session = state->get_session(state);
imv_id = this->agent->get_id(this->agent);
/* exit if a recommendation has already been provided */
if (state->get_action_flags(state) & IMV_ATTESTATION_FLAG_REC)
{
return TNC_RESULT_SUCCESS;
}
/* send an IETF attribute request if no platform info was received */
if (!platform_info &&
!(state->get_action_flags(state) & IMV_ATTESTATION_FLAG_ATTR_REQ))
@ -443,6 +449,8 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
TNC_IMV_EVALUATION_RESULT_ERROR);
result = out_msg->send_assessment(out_msg);
out_msg->destroy(out_msg);
state->set_action_flags(state, IMV_ATTESTATION_FLAG_REC);
if (result != TNC_RESULT_SUCCESS)
{
return result;
@ -458,6 +466,8 @@ METHOD(imv_agent_if_t, batch_ending, TNC_Result,
{
result = out_msg->send_assessment(out_msg);
out_msg->destroy(out_msg);
state->set_action_flags(state, IMV_ATTESTATION_FLAG_REC);
if (result != TNC_RESULT_SUCCESS)
{
return result;

View File

@ -41,7 +41,8 @@ typedef enum imv_meas_error_t imv_meas_error_t;
enum imv_attestation_flag_t {
IMV_ATTESTATION_FLAG_ATTR_REQ = (1<<0),
IMV_ATTESTATION_FLAG_ALGO = (1<<1),
IMV_ATTESTATION_FLAG_FILE_MEAS = (1<<2)
IMV_ATTESTATION_FLAG_FILE_MEAS = (1<<2),
IMV_ATTESTATION_FLAG_REC = (1<<3)
};
/**