deleted newly constructed attributes in send_assessment
This commit is contained in:
@@ -195,6 +195,12 @@ METHOD(imv_msg_t, send_assessment, TNC_Result,
|
|||||||
char *lang_code = NULL, *uri = NULL;
|
char *lang_code = NULL, *uri = NULL;
|
||||||
enumerator_t *e;
|
enumerator_t *e;
|
||||||
|
|
||||||
|
/* Remove any attributes that have already been constructed */
|
||||||
|
while (this->attr_list->remove_last(this->attr_list, (void**)&attr) == SUCCESS)
|
||||||
|
{
|
||||||
|
attr->destroy(attr);
|
||||||
|
}
|
||||||
|
|
||||||
/* Send an IETF Assessment Result attribute if enabled */
|
/* Send an IETF Assessment Result attribute if enabled */
|
||||||
if (lib->settings->get_bool(lib->settings, "libimcv.assessment_result",
|
if (lib->settings->get_bool(lib->settings, "libimcv.assessment_result",
|
||||||
TRUE))
|
TRUE))
|
||||||
@@ -306,17 +312,6 @@ METHOD(imv_msg_t, receive, TNC_Result,
|
|||||||
return TNC_RESULT_SUCCESS;
|
return TNC_RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHOD(imv_msg_t, delete_attributes, void,
|
|
||||||
private_imv_msg_t *this)
|
|
||||||
{
|
|
||||||
pa_tnc_attr_t *attr;
|
|
||||||
|
|
||||||
while (this->attr_list->remove_last(this->attr_list, (void**)&attr) == SUCCESS)
|
|
||||||
{
|
|
||||||
attr->destroy(attr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
METHOD(imv_msg_t, create_attribute_enumerator, enumerator_t*,
|
METHOD(imv_msg_t, create_attribute_enumerator, enumerator_t*,
|
||||||
private_imv_msg_t *this)
|
private_imv_msg_t *this)
|
||||||
{
|
{
|
||||||
@@ -361,7 +356,6 @@ imv_msg_t *imv_msg_create(imv_agent_t *agent, imv_state_t *state,
|
|||||||
.send_assessment = _send_assessment,
|
.send_assessment = _send_assessment,
|
||||||
.receive = _receive,
|
.receive = _receive,
|
||||||
.add_attribute = _add_attribute,
|
.add_attribute = _add_attribute,
|
||||||
.delete_attributes = _delete_attributes,
|
|
||||||
.create_attribute_enumerator = _create_attribute_enumerator,
|
.create_attribute_enumerator = _create_attribute_enumerator,
|
||||||
.get_encoding = _get_encoding,
|
.get_encoding = _get_encoding,
|
||||||
.destroy = _destroy,
|
.destroy = _destroy,
|
||||||
|
|||||||
@@ -84,12 +84,6 @@ struct imv_msg_t {
|
|||||||
*/
|
*/
|
||||||
void (*add_attribute)(imv_msg_t *this, pa_tnc_attr_t *attr);
|
void (*add_attribute)(imv_msg_t *this, pa_tnc_attr_t *attr);
|
||||||
|
|
||||||
/**
|
|
||||||
* Delete all PA-TNC attributes in the send queue
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
void (*delete_attributes)(imv_msg_t *this);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enumerator over PA-TNC attributes contained in the PA-TNC message
|
* Enumerator over PA-TNC attributes contained in the PA-TNC message
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -285,9 +285,8 @@ static TNC_Result receive_message(imv_state_t *state, imv_msg_t *in_msg)
|
|||||||
|
|
||||||
if (fatal_error || result != TNC_RESULT_SUCCESS)
|
if (fatal_error || result != TNC_RESULT_SUCCESS)
|
||||||
{
|
{
|
||||||
out_msg->delete_attributes(out_msg);
|
|
||||||
state->set_recommendation(state,
|
state->set_recommendation(state,
|
||||||
TNC_IMV_ACTION_RECOMMENDATION_ISOLATE,
|
TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION,
|
||||||
TNC_IMV_EVALUATION_RESULT_ERROR);
|
TNC_IMV_EVALUATION_RESULT_ERROR);
|
||||||
result = out_msg->send_assessment(out_msg);
|
result = out_msg->send_assessment(out_msg);
|
||||||
out_msg->destroy(out_msg);
|
out_msg->destroy(out_msg);
|
||||||
@@ -315,7 +314,6 @@ static TNC_Result receive_message(imv_state_t *state, imv_msg_t *in_msg)
|
|||||||
state->set_recommendation(state,
|
state->set_recommendation(state,
|
||||||
TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION,
|
TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION,
|
||||||
TNC_IMV_EVALUATION_RESULT_ERROR);
|
TNC_IMV_EVALUATION_RESULT_ERROR);
|
||||||
out_msg->delete_attributes(out_msg);
|
|
||||||
result = out_msg->send_assessment(out_msg);
|
result = out_msg->send_assessment(out_msg);
|
||||||
out_msg->destroy(out_msg);
|
out_msg->destroy(out_msg);
|
||||||
if (result != TNC_RESULT_SUCCESS)
|
if (result != TNC_RESULT_SUCCESS)
|
||||||
|
|||||||
Reference in New Issue
Block a user