diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libimcv/imv/imv_msg.c | 18 | ||||
-rw-r--r-- | src/libimcv/imv/imv_msg.h | 6 | ||||
-rw-r--r-- | src/libpts/plugins/imv_attestation/imv_attestation.c | 4 |
3 files changed, 7 insertions, 21 deletions
diff --git a/src/libimcv/imv/imv_msg.c b/src/libimcv/imv/imv_msg.c index 81209ce57..4ed19dd13 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 92347934f..b639712e8 100644 --- a/src/libimcv/imv/imv_msg.h +++ b/src/libimcv/imv/imv_msg.h @@ -85,12 +85,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 * * @return PA-TNC attribute enumerator diff --git a/src/libpts/plugins/imv_attestation/imv_attestation.c b/src/libpts/plugins/imv_attestation/imv_attestation.c index 237300f31..3c5488eba 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) |