From: Andreas Steffen Date: Mon, 24 Dec 2012 11:06:07 +0000 (+0100) Subject: deleted newly constructed attributes in send_assessment X-Git-Tag: 5.0.2dr4~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6be6a5240518422349a7c8fb2a218d66288e7ee3;p=thirdparty%2Fstrongswan.git deleted newly constructed attributes in send_assessment --- diff --git a/src/libimcv/imv/imv_msg.c b/src/libimcv/imv/imv_msg.c index 81209ce57f..4ed19dd13f 100644 --- a/src/libimcv/imv/imv_msg.c +++ b/src/libimcv/imv/imv_msg.c @@ -195,6 +195,12 @@ METHOD(imv_msg_t, send_assessment, TNC_Result, char *lang_code = NULL, *uri = NULL; 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 */ if (lib->settings->get_bool(lib->settings, "libimcv.assessment_result", TRUE)) @@ -306,17 +312,6 @@ METHOD(imv_msg_t, receive, TNC_Result, 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*, 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, .receive = _receive, .add_attribute = _add_attribute, - .delete_attributes = _delete_attributes, .create_attribute_enumerator = _create_attribute_enumerator, .get_encoding = _get_encoding, .destroy = _destroy, diff --git a/src/libimcv/imv/imv_msg.h b/src/libimcv/imv/imv_msg.h index 92347934f0..b639712e88 100644 --- a/src/libimcv/imv/imv_msg.h +++ b/src/libimcv/imv/imv_msg.h @@ -84,12 +84,6 @@ struct imv_msg_t { */ 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 * diff --git a/src/libpts/plugins/imv_attestation/imv_attestation.c b/src/libpts/plugins/imv_attestation/imv_attestation.c index 237300f312..3c5488ebaa 100644 --- a/src/libpts/plugins/imv_attestation/imv_attestation.c +++ b/src/libpts/plugins/imv_attestation/imv_attestation.c @@ -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) { - out_msg->delete_attributes(out_msg); state->set_recommendation(state, - TNC_IMV_ACTION_RECOMMENDATION_ISOLATE, + TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION, TNC_IMV_EVALUATION_RESULT_ERROR); result = out_msg->send_assessment(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, TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION, TNC_IMV_EVALUATION_RESULT_ERROR); - out_msg->delete_attributes(out_msg); result = out_msg->send_assessment(out_msg); out_msg->destroy(out_msg); if (result != TNC_RESULT_SUCCESS)