From 32e30f15cb02e5d654d3e44e0c085376cf7f2aac Mon Sep 17 00:00:00 2001 From: Andreas Steffen Date: Mon, 10 Sep 2012 00:07:54 +0200 Subject: [PATCH] use base IMC ID if src IMC ID is not supported --- src/libimcv/plugins/imc_scanner/imc_scanner.c | 6 ++++-- src/libimcv/plugins/imc_test/imc_test.c | 6 ++++-- src/libpts/plugins/imc_attestation/imc_attestation.c | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/libimcv/plugins/imc_scanner/imc_scanner.c b/src/libimcv/plugins/imc_scanner/imc_scanner.c index 7f8b04799b..58533eabf7 100644 --- a/src/libimcv/plugins/imc_scanner/imc_scanner.c +++ b/src/libimcv/plugins/imc_scanner/imc_scanner.c @@ -282,6 +282,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, imc_state_t *state; enumerator_t *enumerator; TNC_Result result; + TNC_UInt32 target_imc_id; bool fatal_error; if (!imc_scanner) @@ -305,6 +306,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, { return result; } + target_imc_id = (dst_imc_id == TNC_IMCID_ANY) ? imc_id : dst_imc_id; /* preprocess any IETF standard error attributes */ fatal_error = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg); @@ -321,7 +323,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, ietf_attr_assess_result_t *ietf_attr; ietf_attr = (ietf_attr_assess_result_t*)attr; - state->set_result(state, dst_imc_id, + state->set_result(state, target_imc_id, ietf_attr->get_result(ietf_attr)); } } @@ -334,7 +336,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, } /* if no assessment result is known then repeat the measurement */ - return state->get_result(state, dst_imc_id, NULL) ? + return state->get_result(state, target_imc_id, NULL) ? TNC_RESULT_SUCCESS : send_message(connection_id); } diff --git a/src/libimcv/plugins/imc_test/imc_test.c b/src/libimcv/plugins/imc_test/imc_test.c index 6283309c45..ee8e5b2065 100644 --- a/src/libimcv/plugins/imc_test/imc_test.c +++ b/src/libimcv/plugins/imc_test/imc_test.c @@ -284,6 +284,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, imc_state_t *state; enumerator_t *enumerator; TNC_Result result; + TNC_UInt32 target_imc_id; bool fatal_error = FALSE; if (!imc_test) @@ -307,6 +308,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, { return result; } + target_imc_id = (dst_imc_id == TNC_IMCID_ANY) ? imc_id : dst_imc_id; /* preprocess any IETF standard error attributes */ fatal_error = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg); @@ -322,7 +324,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, ietf_attr_assess_result_t *ietf_attr; ietf_attr = (ietf_attr_assess_result_t*)attr; - state->set_result(state, dst_imc_id, + state->set_result(state, target_imc_id, ietf_attr->get_result(ietf_attr)); } else if (attr_type.vendor_id == PEN_ITA) @@ -354,7 +356,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, } /* if no assessment result is known then repeat the measurement */ - return state->get_result(state, dst_imc_id, NULL) ? + return state->get_result(state, target_imc_id, NULL) ? TNC_RESULT_SUCCESS : send_message(state, dst_imc_id, src_imv_id); } diff --git a/src/libpts/plugins/imc_attestation/imc_attestation.c b/src/libpts/plugins/imc_attestation/imc_attestation.c index c3df278667..7cb2a0671f 100644 --- a/src/libpts/plugins/imc_attestation/imc_attestation.c +++ b/src/libpts/plugins/imc_attestation/imc_attestation.c @@ -189,6 +189,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, imc_attestation_state_t *attestation_state; enumerator_t *enumerator; TNC_Result result; + TNC_UInt32 target_imc_id; if (!imc_attestation) { @@ -212,6 +213,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, { return result; } + target_imc_id = (dst_imc_id == TNC_IMCID_ANY) ? imc_id : dst_imc_id; /* preprocess any IETF standard error attributes */ result = pa_tnc_msg->process_ietf_std_errors(pa_tnc_msg) ? @@ -252,7 +254,7 @@ static TNC_Result receive_message(TNC_IMCID imc_id, ietf_attr_assess_result_t *ietf_attr; ietf_attr = (ietf_attr_assess_result_t*)attr; - state->set_result(state, dst_imc_id, + state->set_result(state, target_imc_id, ietf_attr->get_result(ietf_attr)); } } -- 2.47.3